- From: Dael Jackson <daelcss@gmail.com>
- Date: Mon, 13 Oct 2014 16:35:45 -0400
- To: www-style@w3.org
Agenda ------ - This discussion to set the agenda held no technical details. CSS3 Text --------- - RESOLVED: Make control characters visible. (This will be consistent with Unicode, but will break backwards-compatibility on the Web.) - RESOLVED: Text shaping MUST be broken across inline element boundaries when: A. one of margin/border/padding are non-zero B. vertical-align is not 'baseline' C. it is a bidi isolation boundary Text shaping MUST NOT be broken across inline element boundaries when there is no change in formatting. Text shaping SHOULD NOT be broken across inline element boundaries otherwise, if it is reasonable and possible for that case given the limitations of the font technology. http://lists.w3.org/Archives/Public/www-style/2014Aug/0295.html - RESOLVED: No change for issue 59 Display Module -------------- - Plan to defer longhands of 'display' to the next level; this will allow restricting combinations of 'display-inside' and 'display-outside' that are difficult to implement at this time. - Discussed open issues with 'box-suppress', including details that need to be defined for the 'hide' value and how this interacts with 'visibility' and 'speak'. This section needs more work. Backgrounds ----------- - RESOLVED: Accepted Bert's proposed wording for CSS2.1 erratum on interaction of 'display: none' and the root background. ===== FULL MINUTES BELOW ====== Present: Glenn Adams Rossen Atanassov Tab Atkins David Baron Bert Bos Dave Cramer Elika Etemad Daniel Glazman Koji Ishii (Skype) Ian Kilpatrick Philippe Le Hégaret Chris Lilley Peter Linss Edward O'Connor Simon Pieters Florian Rivoal Andrey Rybka Simon Sapin Dirk Schulze Alan Stearns Shane Stephens Greg Whitworth Kazutaka Yamamoto Scribe: fantasai Agenda ------ This discussion to set the agenda held no technical details. CSS3 Text --------- <fantasai> http://dev.w3.org/csswg/css-text-3/issues-lc-2013 <fantasai> http://dev.w3.org/csswg/css-text-3/issues-lc-2013#issue-72 fantasai: We're waiting for MSFT to get back to us on whether we want to make the change. Rossen: We're still waiting to hear on one of the dependency teams we have at Uniscribe/DWrite Rossen: From our POV, shouldn't be a problem. Rossen: Compatibility cost shouldn't be a problem, to basically implement the feature. Rossen: So as of now, tentative OK, unless we hear otherwise from the teams that are lower on the stack. fantasai: So we'll take that, make the edits, and you can come back with "Stop the Presses!" if needed? Rossen: Yep. fantasai: So, resolved to make control characters visible? RESOLVED: Make control characters visible <fantasai> koji and fantasai will make edits <Clilley> presumably not CR and LF? <Clilley> ok, 80 to 96 ones <fantasai> (Unicode category Cc) <Clilley> ty <fantasai> http://dev.w3.org/csswg/css-text-3/issues-lc-2013#issue-70 <fantasai> http://dev.w3.org/csswg/css-text-3/issues-lc-2013#issue-79 <fantasai> http://lists.w3.org/Archives/Public/www-style/2014Aug/0217.html <fantasai> http://lists.w3.org/Archives/Public/www-style/2014Aug/0295.html fantasai: Issue 70 and 79 have the same proposal fantasai: We got a request to clarify when inline joining happens across an inline boundary and when it doesn't. fantasai: There's basically 3 cases: fantasai: MUST NOT break shaping (no style change, no excuse to break) fantasai: MUST break shaping fantasai: RECOMMEND to not break, but depends on font tech dbaron: Seems like number two is two different cases, e.g. no reasonable way to render an fi ligature with one from one font and one from other is clearly nonsensical, dbaron: but Arabic shaping is doable. fantasai: There's cases in the middle that are less clear, e.g. Indic shaping, which can be done by ligatures, contextual forms, etc. fantasai: So while we can say clearly for the fi ligature that it's not possible, and for Arabic forms you can force shapes by using ZWJ/ZWNJ at the edge of runs so that's always technically possible, a lot of things in between we can't say for sure, it depends on exact case. [Therefore didn't want to split hairs.] fantasai: Are people ok with splitting into 1-3? dbaron: Yes, but unsure if SHOULD should be that strong. dbaron: It seems odd to say, e.g., that implementations SHOULD NOT break shaping across changes in font-size. TabAtkins: I want to have more than a may. TabAtkins: "Totally should, probably can't" TabAtkins: Totally should avoid breaking Arabic, but probably can't avoid breaking ligatures fantasai: Cases which are 3, fantasai: Proposed to have 3 cases: A. one of margin/border/padding are non-zero B. vertical-align is not 'baseline' C. it is a bidi isolation boundary [Seem to have agreement on A] fantasai: The second case is is if vertical-align doesn't match fantasai: We thought about matching values, but actually, we want to say if it's not baseline (not matching parent) fantasai: e.g. top and middle won't align baselines anyway. TabAtkins: And definitely don't want adjacent superscripts to join. [fantasai said something about siblings and parent relationships and vert-align not inheriting] astearns: Maybe there are cases where we want two top things to join if they happen to line up? fantasai: I think we want it to be predictable. TabAtkins: We know there are cases where we don't want it to join. TabAtkins: Also, you can always put them into a common parent and vertical-align that, and they will join. florian: Any i18n concerns? fantasai: There's cases where you have different alignment i18n- wise, but that's done with changes in which baseline you align to, not by 'vertical-align'. [Seem to have agreement on B] fantasai: Third case was bidi isolation boundary. fantasai: I can't think of a case where you would want joining across a bidi isolation boundary, fantasai: But this is overloading a bidi control. florian, TabAtkins: It doesn't make sense to join across that boundary... florian, TabAtkins: Not worried about CJK. fantasai: Theoretically, CJK can be written cursively. fantasai: Do you want to break between Japanese and Chinese words in a paragraph? Maybe, maybe not. glenn: Language changes might cause switching of font tables. florian: That would fall under "Should join" if you can pull it off TabAtkins: But definitely it should break on bidi isolation. fantasai: Any other comments on bidi isolation and joining? fantasai: Unicode defines bidi isolation codes, doesn't define them to have any effect on shaping. We probably want to ask them about it, too. fantasai: So, should we put this in the spec and then ask Unicode to comment? glenn: Implementors don't connect over level runs. dbaron: It might just be direction changes, rather than control characters. florian: If you have control characters that keep in the same level? fantasai: The case of 2 embeddings next to each other... fantasai: Do those join? glenn: They would be the same level... so yes, would join florian: ... <dbaron> (probably embedding level changes rather than direction changes, maybe) fantasai: Because embeddings are not fully encapsulated, you can't have rule about boundaries because text can shuffle around/through that boundary fantasai: but for bidi isolation you can, because it fully encapsulates its contents. dbaron: Gecko does ligaturize across an embedding boundary. fantasai: For bidi isolation, you don't shuffle text around/through the boundary, and you can detect the boundary by just looking for it. fantasai: But I'm okay either way on this point. <dbaron> http://lists.w3.org/Archives/Public/www-archive/2014Sep/att-0001/lig.html <dbaron> was my testcase fantasai: As long as we have A and B, most problematic cases should be taken care of. dbaron: I'm fine with saying join across an isolation boundary fantasai: From http://www.unicode.org/reports/tr9/#Shaping "Thus, the characters before and after a directional isolate will not join across the isolate, even if the isolate is empty or overflows the depth limit." fantasai: Looks like Unicode already says you don't break across isolation, so I think we're good on that. <Clilley> if anyone thinks you should not break over an isolation boundary they are welcome to write the opentype feature that implements it <glazou2> it's hard to record a consensus from two opinions... RESOLVED: Accept proposal on text shaping breaks <fantasai> For C, refer to UAX9 <dbaron> http://lists.w3.org/Archives/Public/www-archive/2014Sep/att-0001/lig.html is about level changes, not isolation boundaries <dbaron> ... and only the first example actually has a level change <dbaron> ... the first should not have a ligature, the second and third should be a ligature <zcorpan> dbaron - http://software.hixie.ch/utilities/js/live-dom-viewer/saved/3158 blink only does the ligature for <p>fi dbaron: There's interesting markup in there, but there isn't text inside it dbaron: So the text should just ligaturize <fantasai> http://dev.w3.org/csswg/css-text-3/issues-lc-2013#issue-59 <fantasai> http://lists.w3.org/Archives/Public/www-style/2014Aug/0321.html fantasai: Issue was, do we add inter-character as equivalent to distribute, because people are confused what distribute means. fantasai: Rossen asked to defer to F2F koji: Distribute also has a side-effect of changing text-align-last koji: That behavior is probably confusing. koji: Inter-character and distribute are different use cases and don't want to change fantasai: I think you're thinking of inter-ideograph. koji: No, distribute causes text-align-last to justify, inter-character would be confusing florian: So you're saying that distribute implies an extra bit of magic? <koji> Yes. Bert: Why does it do that? fantasai: The use cases that wanted distribute wanted the last line to justify, so to avoid having to specify 'text- align: justify; text-justify: distribute; text-align- last: justify', we made the 'auto' value of text-align- last account for distribute fantasai: Maybe it would have better to have text-align: distribute; and have that just do the right thing... but have to think about that more. fantasai: We actually have a similar issue with Kashida. fantasai: But we can go over that another time. RESOVLED: No change [round of intros] Display Module -------------- Scribe: Bert <fantasai> http://dev.w3.org/csswg/css-display-3/ fantasai: This discussion doesn't affect the next publication, but the one after. fantasai: We want to limit the number of value combinations. TabAtkins: Keep the longhand-combining syntax of the shorthand. TabAtkins: Some combinations not very popular with implementers, like table cell and flexbox fantasai: We publish today without this change. So that it is recorded. fantasai: We can refer to it when we want to re-add. fantasai: But for now we'll simplify for level 3. florian: I liked them separate... but well. florian: Leave them set to split and mark it at risk? fantasai: No, don't want to do that. TabAtkins: No, because nobody wants to implement a combination like table-cell/flexbox TabAtkins: We publish it to keep the history and may want to visit again later. Rossen: Or call out the combinations that are not supported explicitly? TabAtkins: That's problematic. fantasai: We had originally split them out at this level because we needed noneness to be a separate control. And if we were going to split 'display', we had to split it into whatever our final set of longhands would be. But now that we've realized noneness needs to be an independent control, that is not a longhand of 'display', that constraint no longer exists, and we can split 'display' later just fine. Rossen: We effectively have the split inside/outside internally anyway, TabAtkins: We don't Rossen: I'm partially excited about the possibilities. Better than cram everything in one property. Rossen: Your proposal might be better, but I haven't seen it. fantasai: Danger is that we define now and people use it, that will be that and we cannot change anymore. fantasai: If we add that as syntactic possibility now, it will be forever the same behavior. fantasai: So instead we restrict the syntax so that that is not possible right now. fantasai: Remove things we don't want to support right now by restricting syntax. fantasai: At some point in the future we want to have all combinations, then we can have the longhands. Rossen: OK, in favor of publishing as-is and then change as proposed. TabAtkins: Table internal ones that will not allow a second value. Maybe remove display-inside: auto. fantasai: [Shows section 2.4 from ED] plinss: Confused, can you still [?] plinss: flex inside table row? TabAtkins: Table row generates a wrapper automatically. No change from current. fantasai: We want other combinations in the future, but syntactically restricting them for now. TabAtkins: We proactively want to define some single-value things and say also which can be arbitrarily combined. <fantasai> http://dev.w3.org/csswg/css-display-3/#box-suppress TabAtkins: Also we want feedback on box-suppress naming issues. fantasai: Other ideas are welcome. florian: Property name and values both? TabAtkins: We want just one value that keeps things visible, so it's easy to toggle. Rossen: I'd expect something like 'box-display' SimonSapin: Special case for display:none? TabAtkins: Yes, that is explained in the spec. dbaron: Is the 'hide' well defined? dbaron: It looks like it requires every other feature in CSS not to define if it is hide or not. dbaron: What is intuitive for some is not so for everybody. TabAtkins: Fair point. dbaron: Animations don't count as layout? TabAtkins: Right, animations themselves don't do layout. fantasai: It is only that the timer doesn't stop. dbaron: That is not clear. In FF animations stopped. Recently we changed it. dbaron: Has to do with display:none? That is short. dbaron: Hmm, no, boxes go away when display is none. TabAtkins: We may need to define it better. Rossen: Collapsing? TabAtkins: That counts as layout. dbaron: Anonymous box construction is important to define. dbaron: Hide could be implemented with a new kind of box. dbaron: Anonymous boxes are an interesting case. TabAtkins: ... An anonymous empty flex... TabAtkins: Does hide on a table cell create a table row around it? fantasai: Relates to collapsing behavior we talked about earlier, visibility: collapse. fantasai: We expect same thing to happen for flexbox... fantasai: So how does this behave for collapsing? Or *is* this the collapsing control? fantasai: Outside tables and flex, 'collapse' means 'hidden' fantasai: In tables without spanning cells, it does something sensible wrt collapsing. fantasai: (With spanning cells, it just clips, which is useless.) fantasai: Did we define it for flexbox? Rossen: And grids? <fantasai> I guess box-collapse might be a naming idea. <fantasai> or display-collapse Clilley: Box-suppress can be used for things that do not use box model (such as SVG)? TabAtkins: SVG has a box model, it just has not been defined yet... Clilley: Is this clear in the spec? TabAtkins: No, not clear [that this property applies to SVG] fantasai: We can take an action to say it applies to SVG. SimonSapin: 'box-suppress' makes sense for SVG. The values can have a reasonable interpretation. Clilley: Yes, I just wanted to know if it was meant to apply. fantasai: Does anybody implement 'visibility: collapse' for flex? [several: don't think so] fantasai: In that case, we can just restrict it to tables and define something new for flex here. dbaron: It looks like FF does stuff... dbaron: That's not widely used. plinss: Or a counter proposal: put this under 'visibility' TabAtkins: We still want to support 'display: none' Hober: [missed] plinss: Adding values to 'visibility' is possible. Like 'suppress' fantasai: We need to think about usability. And about the effect on speech. florian: Visibility is not a great word to use with speech... dbaron: Does 'box-suppress: hide' stop speech? fantasai: Currently, no. TabAtkins: Well, speech is a kind of layout... fantasai: Need to discuss the interaction with 'speak'... fantasai: Let us know about issues like this! fantasai: The display-outside issue with counters- TabAtkins: If you hide the box, you also suppress the counter. fantasai: We need to work on that. dbaron: I think animations continue, but counters stop. dbaron: It's a long time since I worked on counters... dbaron: Counters need to be updated dynamically. [discussion about different implementations of counters...] dauwhe: I'm probably the one here who uses counters most, but I don't really have an opinion yet... * zcorpan wonders what happens with display:contents on svg elements Backgrounds ----------- <Bert> http://lists.w3.org/Archives/Public/www-style/2014Jul/0312.html Scribe: fantasai Bert: We decided we needed an erratum for interaction of body, canvas, background, and display: none Bert: Decided if there's no box, then the background is transparent. Bert: I came up with some text for that fantasai: works for me <glazou2> +1 dbaron: This is another interesting case for display: contents. fantasai: Yes, that's why we changed the text. plinss: what about display: contents on the root? fantasai: It computes to block RESOLVED: accept erratum
Received on Monday, 13 October 2014 20:36:13 UTC