Re: [csswg-drafts] [css-rhythm-1] Avoiding accidental double spacing

The CSS Working Group just discussed `CSS Rhythm`.

<details><summary>The full IRC log of that discussion</summary>
&lt;jet> Topic: CSS Rhythm<br>
&lt;astearns> https://groups.google.com/forum/#!msg/mozilla.dev.platform/cnEN_sccXJY/1ddo5XifAwAJ<br>
&lt;fantasai> ScribeNick: fantasai<br>
&lt;fantasai> koji: I'd like dbaron to explain his opinion<br>
&lt;fantasai> dbaron: Current approaches are going to lead to things that are fragile wrt behavior between browsers, or even same browser on different platforms<br>
&lt;fantasai> dbaron: where you get double-spacing of line sin unpredictable situations<br>
&lt;fantasai> dbaron: There are alternative approaches which would not lead to this problem<br>
&lt;fantasai> dbaron: But I'm not interested in focusing on this right now<br>
&lt;fantasai> dauwhe: ?<br>
&lt;fantasai> dbaron: Right now not looking at anything<br>
&lt;fantasai> dbaron: I'm discouraging ppl from implementing this feature because I don't think it's something that should be implemented<br>
&lt;fantasai> dbaron: Same issue as [?]<br>
&lt;astearns> s/[?]/double-spacing/<br>
&lt;fantasai> dbaron: Some of the ways to solve it might be to use an entirely differnet design, whereas github issue is trying to keep the same design and trying to find small fixes for double-spacing<br>
&lt;astearns> s/dbaron: Same/koji: Same/<br>
&lt;fantasai> koji: Your concern is different font metrics causing different ? is the problem?<br>
&lt;fantasai> s/ ? / result /<br>
&lt;dauwhe> s/dauwhe: ?/dauwhe: are you concerned about just the inline step sizing, or all of css rhythm?<br>
&lt;fantasai> koji: Original issue was line-height normal causing problems<br>
&lt;fantasai> Florian: There's a general problem and a specific case of that problem<br>
&lt;fantasai> Florian: general problem is when different font metrics or different ways to implement line height or things of that nature cause the layout to work just fine in one browser<br>
&lt;fantasai> Florian: and to be entirely double-spaced or randomly double-spaced in another browser<br>
&lt;fantasai> Florian: That's the general worry<br>
&lt;dbaron> or different font availability<br>
&lt;fantasai> Florian: within that space, this github issue identifies one case where this happens<br>
&lt;fantasai> Florian: if this is the only case where this happens, maybe dbaron's worry goes away<br>
&lt;fantasai> Florian: If there are more instances of similar worries, we'll need lots of patches<br>
&lt;fantasai> dbaron: Another major case is font availability, where you have a font available on one platform and not on others<br>
&lt;fantasai> koji: I heard one example<br>
&lt;fantasai> koji: but dbaron's concern seems to be a different case<br>
&lt;fantasai> Florian: it's the same<br>
&lt;fantasai> Florian: if line-height-step is a user-defined specific value<br>
&lt;fantasai> Florian: and line-height is a different user-defined value<br>
&lt;fantasai> Florian: then this is generally predictable<br>
&lt;myles_> q+<br>
&lt;fantasai> Florian: if line-height is smaller than line-height-step generally okay<br>
&lt;fantasai> Florian: If there's one line that has a superscript and double spaced that line it's kindof okay<br>
&lt;fantasai> Florian: but double-spacing entire the page is a problem<br>
&lt;fantasai> Florian: If you set [various combinations, varous results]<br>
&lt;fantasai> Florian: Different fonts, different ways to read metrics from the font, different implementations of what 'line-height: normal'<br>
&lt;fantasai> Florian: cause differences<br>
&lt;myles_> q-<br>
&lt;fantasai> dbaron: I'm not sure that even line-height: &lt;number> is predictable, requires testing mix of elements<br>
&lt;dbaron> ... where some have font fallback<br>
&lt;dbaron> fantasai: another case that could cause problems is different line wrapping,e.g., if superscript and subscript end up on the same line<br>
&lt;fantasai> Florian: Point of feature is normalization of line heights so a few lines double-spaced probably okay, but all lines not good<br>
&lt;fantasai> Florian: primary font doesn't have CJK and other font does, then many lines with mix of fonts<br>
&lt;fantasai> Florian: line-height to specific number, it's okay<br>
&lt;fantasai> Florian: but if you have spans in the middle of that, you might trigger problem often<br>
&lt;dbaron> fantasai: it's broken if the author sets something precisely expecting no gaps in the general case; they'll be upset if they see gaps<br>
&lt;dbaron> fantasai: you won't have a case that's extremely painful for the user<br>
&lt;Rossen> fantasai: it's definitely broken if the author didn't expect any gaps but there were some. If there are few gaps there shouldn't be that much of a confusion<br>
&lt;fantasai> astearns: author shouldn't use this if they don't want double spacing<br>
&lt;fantasai> jet: on dev.platform, was a question of whether authors really want this feature<br>
&lt;fantasai> q+<br>
&lt;astearns> s/don't want/can't stand occasional/<br>
&lt;fantasai> jet: Haven't heard demand from authors outside Koji here in this room<br>
&lt;fantasai> jet: Do people want that<br>
&lt;fantasai> Florian: People do want vertical rhythm, absolutely<br>
&lt;myles_> jet++<br>
&lt;fantasai> jet: Chromium has it behind a flag, have people been building websites with it and saying "yes I absolutely want this", haven't really seen that<br>
&lt;astearns> ack fantasai<br>
&lt;jet> fantasai: people want vertical rhythm, but is this the feature that will solve it?<br>
&lt;jet> fantasai: we want this spec to be robust and integrate with the rest of CSS elegantly<br>
&lt;jet> fantasai: I don't think this feature fits that description<br>
&lt;myles_> fantasai++<br>
&lt;tantek> fantasai++<br>
&lt;dauwhe> fantasai+^+^+<br>
&lt;fantasai> fantasai: Our goal for features we design here in the CSSWG is to be flexible, robust, poweful, easy-to-use, and understandable<br>
&lt;fantasai> fantasai: We intend for them to fit within, integrate with, and enhance the CSS system<br>
&lt;fantasai> fantasai: Not be a hacky workaround to some particular issue<br>
&lt;fantasai> fantasai: I don't believe this feature fits that design requirement.<br>
&lt;fantasai> fantasai: Additionally, I don't think it does a good job of addressing the use cases<br>
&lt;fantasai> fantasai: Absolutely, people want control over vertical rhythm<br>
&lt;fantasai> fantasai: But their problems aren't largely about lines within a long wrapped paragaph of text being slightly off-kilter<br>
&lt;fantasai> fantasai: The breaks in rhythm are largely introduced by block-level interjections in the flow of text<br>
&lt;fantasai> fantasai: Things like headings, figures, tables, and block-quotes<br>
&lt;fantasai> fantasai: This feature does not address these use cases<br>
&lt;dauwhe> q+<br>
&lt;fantasai> fantasai: It at best allows a hack of turning these block-level elements into inline-blocks in order to use this feature to control rhythm.<br>
&lt;fantasai> fantasai: I don't believe this feature is well-designed.<br>
&lt;Florian> q+<br>
&lt;fantasai> astearns: I absolutely agree that block-level interjections are also a problem, but I don't agree that they're worse than line box stepping<br>
&lt;dbaron> fantasai: much of the jitter in line boxes is due to...<br>
&lt;tantek> q?<br>
&lt;astearns> ack dauwhe<br>
&lt;fantasai> koji: I thought kobayashi-sensei explanation in Tokyo was more understood<br>
&lt;fantasai> koji: discussion wasn't<br>
&lt;fantasai> koji: what he said was what Alan said<br>
&lt;fantasai> koji: not sure about Latin, but for Japan<br>
&lt;Rossen> q+<br>
&lt;fantasai> koji: what he said was when block-level interjection is big enough he wants other factors wins over getting back to original rhythm<br>
&lt;fantasai> astearns: my impression was that his opinion was that it was acceptable but still not enough<br>
&lt;fantasai> koji: I talked with ppl who attended, ppl agreed with me<br>
&lt;fantasai> koji: maybe translation problem<br>
&lt;fantasai> koji: What he explained was vertical wrhythm when objects intervene<br>
&lt;fantasai> koji: Should be done like justification, so that each text block and image and blockquote are like characters in the "line box" of the page<br>
&lt;fantasai> koji: each space to have equal lenght is more important than returning to the rhythm<br>
&lt;fantasai> koji: line grid can do it,  or maybe other features, but then have to adjust grid after intervening objects<br>
&lt;Rossen> q-<br>
&lt;fantasai> koji: but line-height-step or block-height-step doesn't have this problem<br>
&lt;fantasai> koji: What sensei didn't say, is making block height to step<br>
&lt;fantasai> dauwhe: A couple things, one is that I would love to see some East Asian examples of how this feature fixes problems of East Asian typography<br>
&lt;fantasai> dauwhe: examples have been in Latin, so hard for us to see the goal of this feature as designed<br>
&lt;fantasai> dauwhe: Also want to say that wrt Latin typesetting in general, I agree with fantasai<br>
&lt;fantasai> dauwhe: Last thing we want to change is line height of the blocks. This is the worst result, lowest priority. Prefer to adjust spacing around blocks<br>
&lt;astearns> ack Florian<br>
&lt;fantasai> dauwhe: So I would like to see more targeted use cases for the case of East Asian, since in Latin this is not as appropriate<br>
&lt;fantasai> Florian: In Latin text, you have ascenders and descenders so the visual edges of the line is irregular<br>
&lt;fantasai> Florian: Whereas in CJK if the spacing is irregular, it is very obvious<br>
&lt;Rossen> q?<br>
&lt;fantasai> Florian: So a small superscript that sticks out and slightly shifts the line is really bad<br>
&lt;fantasai> dauwhe: it's pretty bad in Latin, too<br>
&lt;Rossen> q+<br>
&lt;fantasai> Florian: So that is one part<br>
&lt;fantasai> Florian: Another response is to fantasai<br>
&lt;fantasai> Florian: wrt her design goals of CSS<br>
&lt;fantasai> Florian: Early incarnations of this feature were very much not robust<br>
&lt;fantasai> Florian: We have made changes to decrease its powerfulness to increase its robustness<br>
&lt;fantasai> Florian: I don't think it's robust enough yet<br>
&lt;fantasai> Florian: When I'm done with fixing interop on line height, then will look at robustness of this feature<br>
&lt;fantasai> Florian: I'm not sure we can make this feature robust enough, but either way this depends on how we fix interop of line height calculations<br>
&lt;fantasai> koji: We seem to be discussing two topics, one is fundamental design and the other is this problem of oduble spacing<br>
&lt;fantasai> Florian: The design of this feature makes it easy to use in some cases and very broken in others. If we can't fix this, we can't use this feature<br>
&lt;fantasai> koji: Fundamental to vetical rhythm that some authors want to take as much step as font metrics says<br>
&lt;fantasai> koji: if font is taller, want to take more steps, as much as needed to fit font<br>
&lt;fantasai> koji: whereas in some cases we consider accidental<br>
&lt;fantasai> koji: and that happens in line grid, too<br>
&lt;Rossen> q?<br>
&lt;fantasai> astearns: Same concern about accidental double spacing of everything is a problem both for rhythm and for line grid<br>
&lt;fantasai> astearns: and we can't take either of the proposals if accidental double spacing of everything is prevalent enough to be a problem<br>
&lt;fantasai> astearns: Accidental double spacing is prime example of the design flaw<br>
&lt;fantasai> astearns: still talking about double spacing<br>
&lt;fantasai> koji: what if double spacing happens in line grid, too?<br>
&lt;fantasai> myles_: I don't think anyone has made the argument that line grid should ship instead of this<br>
&lt;fantasai> myles_: people are simply objecting to this feature on its own merits<br>
&lt;astearns> ack Rossen<br>
&lt;fantasai> (or lack thereof)<br>
&lt;fantasai> Rossen: First comment about jet's comments<br>
&lt;fantasai> Rossen: What jet mentioned earlier about lack of examples / requests, we've had a lot of requests internally<br>
&lt;fantasai> Rossen: mostly ppl building multicol based layouts<br>
&lt;fantasai> Rossen: fairly impossible to make things align in terms of line breaks<br>
&lt;fantasai> Rossen: To that point, what fantasai said earlier whas right on the money<br>
&lt;fantasai> Rossen: Most of the problems aren't due to lines, they're mostly due to headings and other blocks that are not multiples of line height<br>
&lt;astearns> headings are not lines?<br>
&lt;fantasai> astearns, no, but I can't explain and minute...<br>
&lt;fantasai> :/<br>
&lt;astearns> (I know they're blocks)<br>
&lt;dbaron> Florian: his comment was looking for evidence that this particular solution addresses the use case, not evidence that the use case was important<br>
&lt;dbaron> s/his/jet's/<br>
&lt;fantasai> Rossen: I was hoping to know, it's been already 1.5-2yrs that we've been working on this<br>
&lt;tantek> q<br>
&lt;tantek> q?<br>
&lt;fantasai> Rossen: It's certainly the case that in CJK the use cases seem to be predominatnly based on just lines and line sof text without that much blocks or other things int he flow that contribute to irregularity<br>
&lt;fantasai> Rossen: in those coases perhaps line grid makes sense, maybe that's the best thing to do there<br>
&lt;fantasai> Rossen: at the same time, most of the objections I hear constantly against it<br>
&lt;tantek> q+ to ask how long has Chrome been shipping it behind a flag? and shouldn't we see at least experimental sites using that in the wild by now?<br>
&lt;fantasai> Rossen: are based on the other sets of requirements<br>
&lt;fantasai> Rossen: which are for multicol block-level stuff we were talking about<br>
&lt;fantasai> fantasai: No, there's two sets of objections one is the block-level concerns the other is the robustness concerns<br>
&lt;TabAtkins> ScribeNick: TabAtkins<br>
&lt;TabAtkins> fantasai: part of the robustness concerns is all this non-interop stuff for line-height in general is part of it<br>
&lt;TabAtkins> fantasai: Other thing is that the way we do line-height calcs in general creates jitter.<br>
&lt;TabAtkins> fantasai: So even if we have line boxes with same height, that doesn't the jitter case that CJK needs us to solve.<br>
&lt;TabAtkins> fantasai: So even without browser variance, even with a strict vertical rhythm, within the linebox the line moves, and line-height-step doesn't fix that.<br>
&lt;myles_> Rossen: Many of the requests that we (Microsoft) has had for this style of feature are caused by interjecting blocks in between many flowing lines of text. [myles: therefore those aren't solved by this particular solution]<br>
&lt;TabAtkins> fantasai: So if your concern is within a paragraph keeping a rhythm, we need to fix interop *and* maintain the baseline-to-baseline height.<br>
&lt;Florian> q+<br>
&lt;TabAtkins> fantasai: Beacuse of the way we center content in the linebox, if the content is slightly larger but doens't spill out of th elinebox, it'll center.<br>
&lt;fantasai> s/center/jitter/<br>
&lt;TabAtkins> koji: If you solve that, even when you do, if the font-size is differnet, you'll still need line-height step.<br>
&lt;TabAtkins> koji: So it doesn't seem to be a reason not to do line-height-step.<br>
&lt;TabAtkins> fantasai: The only case you need l-h-s is if, in the middle of a paragraph, you want to double-size a particular line because it includes larger content.<br>
&lt;fantasai> q+<br>
&lt;astearns> ack tantek<br>
&lt;Zakim> tantek, you wanted to ask how long has Chrome been shipping it behind a flag? and shouldn't we see at least experimental sites using that in the wild by now?<br>
&lt;dbaron> I could bring back line-box-contain with stepping extensions that I think would be more robust, at least for some values of line-box-contain.<br>
&lt;TabAtkins> tantek: How long has Chrome been shipping this behidn a flag?<br>
&lt;TabAtkins> koji: a year or so<br>
&lt;TabAtkins> tantek: For a feature we all agree conceptually there's demand for, we should have seen at least a handful of experimental demo sites using them.<br>
&lt;TabAtkins> tantek: We haven't seen that, or if we have, please provide the urls.<br>
&lt;TabAtkins> tantek: Second is, I'm increasingly concerned with shipping features that *almost* work, but are fragile and easily break.<br>
&lt;TabAtkins> tantek: Having witnessed all the float/columns confusion, having it break easily, that makes people distrust CSS as a whole.<br>
&lt;TabAtkins> tantek: Would be unfortunate to have the whole concept damaged as a result.<br>
&lt;TabAtkins> tantek: So that's why providing the block-level solutions might make it *just* dependenable enough to make it usable in production.<br>
&lt;TabAtkins> tantek: It won't be perfect, but can it be *reliable enough*.<br>
&lt;fantasai> astearns, the reason I'm saying that headings aren't lines isn't that they aren't made up of lines, of course they are. But generally the problem isn't havng each individual line snap to a multiple of the base line height, it's having the heading as a whole snap to that multiple.<br>
&lt;fantasai> astearns, because for headings you don't want to have large line heights or gaps between the lines<br>
&lt;astearns> fantasai: let's talk about this after<br>
&lt;TabAtkins> koji: I tried to talk to some webdevs; my feeling so far is that the experimental flag buidling sites works in US, but not in intl, where pops are smaller and people are less willing to spend effort helping standardization.<br>
&lt;fantasai> astearns, you usually want them quite tightly spaced, in fact, because they are a larger font size<br>
&lt;TabAtkins> koji: So they generally say "we'll try when it ships, but can't spend much time before that".<br>
&lt;fantasai> astearns, but you want space around them, and you want the total space taken up by the heading -- like the total space taken up by a figure or table or blockquote -- to fit into the rhythm<br>
&lt;TabAtkins> koji: For robustness, as far as I understand, your "robustness" is different from fantasai's concept.<br>
&lt;TabAtkins> tantek: Could be.<br>
&lt;TabAtkins> koji: I think you're more about accidental jumping.<br>
&lt;TabAtkins> koji: I think earlier we were talkinga bout, when we get the future stack thing - if it gets off the grid, it accumulates.<br>
&lt;TabAtkins> koji: That part is design - Japanese vertical rhythm is different from Latin's.<br>
&lt;astearns> ack Florian<br>
&lt;TabAtkins> Florian: Earlier fantasai was saying that this feature isn't quite good enough; while it solves locally the size of the line, it doesn't do the position.<br>
&lt;TabAtkins> Florian: Earlier feature did address that, but made it more fragile.<br>
&lt;TabAtkins> astearns: It solved that using the baseline ratio.<br>
&lt;TabAtkins> Florian: So that's a bit of the difficulty with this feature.<br>
&lt;TabAtkins> Florian: I haven't given up hope, but I don't know if at the end of the process it'll still be useful.<br>
&lt;TabAtkins> Florian: Currently kinda useful and kinda fragile; was earlier more usefula nd more fragile; will it be useful at all?<br>
&lt;TabAtkins> Florian: So we have a feature that's either too fragil eand not useful enough, or one that's too difficult to figure out.<br>
&lt;TabAtkins> Florian: Otoh, there's a simple and useful feature that solves the block side of the problem, which we most agree isn't quite enough.<br>
&lt;TabAtkins> Florian: But I don't think anybody thinks the block feature is insufficiently robust, or not useful.<br>
&lt;TabAtkins> Florian: So I recommend people start on that, rather than being stuck.<br>
&lt;TabAtkins> Florian: As to whether this is still useful when it's robust, dunno.<br>
&lt;TabAtkins> Florian: IN parallel, I think it would be nice to try and make line-grid simpler in terms of impl.<br>
&lt;TabAtkins> Florian: Nobody's been willing to bite the bullet yet.<br>
&lt;TabAtkins> Florian: If someone can find a magic solution, prizes!<br>
&lt;TabAtkins> fantasai: I don't think that finding the third solution is as impossible as you think.<br>
&lt;dbaron> q+<br>
&lt;TabAtkins> fantasai: First, we need to solve the jitter problem.<br>
&lt;TabAtkins> fantasai: We're wasting our time if we don't solve that.<br>
&lt;TabAtkins> fantasai: Requirement for any solution, and it's not specific to l-h-s or line-grid<br>
&lt;TabAtkins> fantasai: We just need to fix line layout.<br>
&lt;TabAtkins> fantasai: We need to continue and prioritize the work that florian has been doing, to fix line layout.<br>
&lt;TabAtkins> fantasai: Second, we need examples of where this specific feature is a solution to a problem.<br>
&lt;astearns> ack fantasai<br>
&lt;TabAtkins> fantasai: I think this is solving a problem of fixing line-heights within a wrapped paragraph, by doubling the spacing of that line, and I dont' think anyone wants taht in general.<br>
&lt;astearns> ack dbaron<br>
&lt;TabAtkins> dbaron: I think one thing we should look at to address this is having whatever the solution is be a bit more of a mode switch than what we're looking at.<br>
&lt;TabAtkins> dbaron: To some degree line-grid is such a mode switch.<br>
&lt;TabAtkins> dbaron: 14 years ago I had a proposal for line-box-contain, in the ED for linebox for a decade, shipping in Safari for a bit...<br>
&lt;TabAtkins> dbaron: That tried to add all the detail for how to consider what should affect the linebox.<br>
&lt;TabAtkins> dbaron: But to a good extent there's only three values that are important.<br>
&lt;TabAtkins> dbaron: One is what we do in quirks mode, one is what the specs say, one is what devs actually want.<br>
&lt;TabAtkins> dbaron: it's a little complicated, but it's in the spec, hard to find.<br>
&lt;TabAtkins> astearns: So in addition to box-sizing, we should have line-sizing?<br>
&lt;TabAtkins> dbaron: Not where I was going.<br>
&lt;TabAtkins> dbaron: One of the things is that you have a property that says "i want a line grid at a certain size". Whether it's a full-fledged grid or a slightly weaker thing.<br>
&lt;TabAtkins> dbaron: I suggest that, once that grid is established and for all the blocks that use it (presuming you can turn it off for some descendants), we switch line layout to another mode.<br>
&lt;TabAtkins> dbaron: WE stop stupid things, like honoring line-height on inlines.<br>
&lt;fantasai> dbaron+++++++++++++++++++++++++++++++++++++<br>
&lt;TabAtkins> myles_: +++++<br>
&lt;dauwhe> tell it, brother!<br>
&lt;TabAtkins> dbaron: Only honor line-height on boxes. Honor border or margin-box size on inlines, so if they actually overflow the line, they make it bigger.<br>
&lt;TabAtkins> dbaron: But if you're at line-height:1.25, you don't get the 1.25 buffer on them.<br>
&lt;TabAtkins> dbaron: And from there we can figure out baseline alignment to the grid.<br>
&lt;TabAtkins> dbaron: So I think having a non-inherited proeprty that establishes a line grid or step-sizing space, is better than an inherited mode switch, like line-box-contain was, because it serves another purpose as wlel.<br>
&lt;TabAtkins> dbaron: While it has some mode-switching purposes, mode-switches aren't that great. Doesn't cascade well.<br>
&lt;gsnedders> dbaron++++++++<br>
&lt;TabAtkins> dbaron: Has some of the effects of a mode switch, but not all of them.<br>
&lt;TabAtkins> iank_: A new inline layout...<br>
&lt;TabAtkins> dbaron: Not that different. Still doing inline layout.<br>
&lt;TabAtkins> dbaron: line-box-contain had a bunch of values that were like "block", "inline", "replaced", "text", "ruby", "glyphs"...<br>
&lt;TabAtkins> dbaron: When you did your linebox height calc, you looked at the list and only considered those.<br>
&lt;TabAtkins> dbaron: The standard behavior is "block inline repalced" i think<br>
&lt;Bert> https://www.w3.org/Style/Group/css3-src/css3-linebox/#LineStacking<br>
&lt;TabAtkins> dbaron: Quirks mode is more like "text replaced" or something<br>
&lt;TabAtkins> dbaron: But people don't really want inlines considered at all, you just don't want glyphs to overlap by default.<br>
&lt;TabAtkins> dbaron: The principle isn't complicated, it's just a new step in line layout that controls what you consider.<br>
&lt;TabAtkins> dbaron: The mode switch would be about changing what you consider in that step.<br>
&lt;TabAtkins> myles_: I think it's still in WK prefixed...<br>
&lt;TabAtkins> iank_: It's removed from Blink.<br>
&lt;TabAtkins> astearns: See if it helps enough for this use-case?<br>
&lt;TabAtkins> myles_: Which? ^_^<br>
&lt;Florian> q+<br>
&lt;fantasai> s/Which/Which use case/<br>
&lt;TabAtkins> Florian: Having discussed a variant of this for several times, I think coming back in a few months with the same discsussion isn't helpful.<br>
&lt;TabAtkins> Florian: I think it's clear that koji and fantasai disagree on whether robustness is important/etc.<br>
&lt;TabAtkins> Florian: I think it's important if koji could show sites using this feature in ways that trigger double-spacing, and say "yes, this is what the author wants".<br>
&lt;TabAtkins> fantasai: No, you want sites using the feature that show why this is good, and the other alternatives aren't necessary.<br>
&lt;TabAtkins> astearns: We want to evaluate the shipping solution, to see if it addresses the use-case.<br>
&lt;TabAtkins> astearns: We have a shipping solution, we should have evidence that it's enough for some set of people.<br>
&lt;TabAtkins> Florian: And specifically, I want to see these examples hit the conrer cases, without authors getting bad results.<br>
&lt;TabAtkins> astearns: Whether the extant examples hit the corners or not, we can use them to push them into the corners.<br>
&lt;fantasai> s/aren't necessary/can't solve it/<br>
&lt;TabAtkins> Florian: Other than that, I don't think it'll be useful to have elika tell koji it's not useful, and koji saying it is...<br>
&lt;TabAtkins> koji: I'm saying tha trobustness is different between Latin and CJK.<br>
&lt;TabAtkins> Florian: Sure, I'm not trying to rephrase; it's just that rehashing the same discussion without new info isn't useful.<br>
&lt;TabAtkins> Florian: In the meantime there are concrete things we can work on, like improving lineboxes. Maybe dbaron's stuff<br>
&lt;TabAtkins> Florian: In the meantime just rehashing is harmful, it blocks us from doing similar things.<br>
&lt;TabAtkins> tantek: I think this conversation has brought up some new stuff.<br>
&lt;TabAtkins> fantasai: My and dbaron's points were brought up in Tokyo.<br>
&lt;Bert> (A public link: https://www.w3.org/TR/2001/WD-css3-box-20010726/#the-line-box-contain )<br>
&lt;gregwhitworth> Decent amount of vertical rhythm libs in CSS &amp; JS: http://kyleshevlin.github.io/shevy/<br>
&lt;TabAtkins> tantek: I think some new stuff, like eamples that use it<br>
&lt;TabAtkins> astearns: And I think line-box-contain is new.<br>
&lt;TabAtkins> tantek: So I think it's not fair to say it's a complete rehash.<br>
&lt;TabAtkins> astearns: But I agree we need examples, "this community won't turn on a flag" isn't a good enough response.<br>
&lt;TabAtkins> koji: Why doesn't printed material show this?<br>
&lt;TabAtkins> astearns: We need examples of *this particular solution* trying to solve things.<br>
&lt;TabAtkins> Florian: Looking at print doesn't help here; it illustrates there is a problem to solve, but not that this solution in particular solves the problem.<br>
&lt;TabAtkins> koji: Word isn't print - if you look at a word doc with different installed fonts, you get a similar problem.<br>
&lt;TabAtkins> Florian: Usually that happens because of switching between Word and OpenOffice, and people hate it.<br>
&lt;TabAtkins> Florian: I'm saying that showing examples of *other* things doesn't help us see if *your* solution solves stuff.<br>
&lt;TabAtkins> koji: If you require that of every i18n feature, we'll never get it done...<br>
&lt;TabAtkins> Florian: We're not asking for everything, just for controversial things.<br>
&lt;TabAtkins> myles_: And there's another possible solution - dbaron's l-b-c.<br>
&lt;TabAtkins> astearns: Even without another, this particular solution has enough controversy that we want to see successful use of it in the wild.<br>
&lt;myles_> I meant line-grid in addition do dbaron's idea<br>
&lt;TabAtkins> astearns: Anything else to go into?<br>
&lt;gregwhitworth> worth noting -webkit-line-grid is on chromestatus<br>
&lt;gregwhitworth> none of the rhythmic sizing props are<br>
&lt;TabAtkins> github: https://github.com/w3c/csswg-drafts/issues/938<br>
&lt;gregwhitworth> ^not sure if chromestatus shows experimental flag items or not<br>
&lt;TabAtkins> koji: Yeah. There are mutliple issues in here.<br>
&lt;TabAtkins> koji: ONe issue has a proposed solution, shane and tab came up with.<br>
&lt;TabAtkins> koji: It's about avoiding accidental jumps.<br>
&lt;TabAtkins> koji: I undersatand it doesn't solve all, but I want people to udnerstand the proposal and see if it solves part of the problem.<br>
&lt;fantasai> TabAtkins: So the ultimate problem is that when line-height is normal, it's unpredictable<br>
&lt;fantasai> TabAtkins: So if you set a line-height-step anywhere near the normal value, might look good on your screen not on others'<br>
&lt;fantasai> TabAtkins: proposal is that if lineh-height is normal and result of that would give you a light-height stlightly over your normal line-height<br>
&lt;fantasai> TabAtkins: based on some UA threshold of fuzziness<br>
&lt;fantasai> TabAtkins: Instead of doubling spacing, reduce to line-height-step<br>
&lt;fantasai> TabAtkins: It should hopefully correct any accidental slight overlap that you run into<br>
&lt;fantasai> astearns: why UA-defined squishiness<br>
&lt;fantasai> TabAtkins: figure out the right value later<br>
&lt;fantasai> TabAtkins: if we can agree on one later, great, but otherwise don't want to sink the proposal by arguing over value right now<br>
&lt;fantasai> Florian: I believe I understand the proposal but don't understand why it helps<br>
&lt;fantasai> Florian: If one browser normal is slightly smaller than step, and in toher browser slightly larger, then it helps<br>
&lt;fantasai> Florian: But if in your browser it's slightly larger than normal, but in other browser it's even more larger than normal<br>
&lt;fantasai> Florian: then you get single spacing in yours and double sizing in the other<br>
&lt;fantasai> Florian: So it changes the numbers that trigger the problem, but it doesn't make the problem go away<br>
&lt;fantasai> TabAtkins: Think set of cases that get fixed are goingto be more common than set of things that get broken<br>
&lt;fantasai> TabAtkins: In order tog et broken as you say, you need to set line-height-step smaller than your line-height<br>
&lt;fantasai> fantasai: Line height normal is unpredictable though<br>
&lt;fantasai> Florian: Line height: normal isnt' between 1-1.2, it comes form the font. It might be 2.7<br>
&lt;myles_> q+<br>
&lt;fantasai> Florian: within i18n contexts it varies a lot, even though you don't see it that much in Latin (aside from fantasy fonts)<br>
&lt;koji> q+<br>
&lt;fantasai> TabAtkins: Ignoring fantasy fonts and Zapfino<br>
&lt;astearns> ack Florian<br>
&lt;fantasai> fantasai: i18n<br>
&lt;fantasai> TabAtkins: You said there's larger variation in the consequences of the line box size due to non-Latin character set default fonts<br>
&lt;fantasai> Florian: I believe so, and I think Koji claimed that before I did<br>
&lt;astearns> ack myles_<br>
&lt;fantasai> fantasai: I suspect you're more likely ot get that variation in Tibetan and Thai and other fonts that have lots of diacritics<br>
&lt;fantasai> myles_: I agree that fuzzy matching is a good way to solve language problem<br>
&lt;fantasai> myles_: Implementation knows exactly where all the lines go, so implementation has all the information it needs<br>
&lt;fantasai> myles_: rather more than the author even, cuz author doesn't have font metrics<br>
&lt;fantasai> myles_: so reasonable to have implementation make lines fit well<br>
&lt;fantasai> myles_: previous conversation needs to be resolved before we take this though<br>
&lt;astearns> ack koji<br>
&lt;fantasai> TabAtkins: might want to evaluate solution with this in mind tho<br>
&lt;fantasai> koji: I agree with myles that the accidental jump issue has needs to deal with some heuristics<br>
&lt;fantasai> koji: because in some cases we want to squash really tall fonts<br>
&lt;fantasai> koji: implementation can experiment and maybe a few years later we find very good values and want to standardize it but at this point better to experiment and get feedback<br>
&lt;fantasai> astearns: your experimental implementation, if you can get people to use you can get data on utility of squishiness<br>
&lt;fantasai> koji: Does that solve previous concerns?<br>
&lt;fantasai> astearns: Would anyone object to objecting with this?<br>
&lt;fantasai> astearns: 2nd, would squishiness as described make anyone more interested in this feature?<br>
&lt;fantasai> myles_: not for us<br>
&lt;astearns> s/objecting/experimenting/<br>
&lt;fantasai> astearns: So this squishiness doesn't help other implementers be interested in line-height-step, but seem to be no objections to Google experimenting with it<br>
&lt;fantasai> Florian: No objection to experimentation, less certain about adding it to the spec<br>
&lt;fantasai> koji: If not in the spec, we can't ship it<br>
&lt;fantasai> Florian: I don't want to ship this without a flag unless we have strong evidence that it is less dangerous than people have expressed worries about<br>
&lt;fantasai> Florian: changes to the spec discussed so far don't make me convinced<br>
&lt;fantasai> koji: Why can't you at least suspect it helps?<br>
&lt;fantasai> Florian: I suspect it does not<br>
&lt;fantasai> Florian: I expect it breaks some fixes some and it's a wash<br>
&lt;fantasai> Florian: If it fixes lots and breaks few, pls demonstrate<br>
&lt;fantasai> myles_: Do we need a resolution for Chrome to experiment behind a flag?<br>
&lt;fantasai> Florian: No, they want it in the spec so they can ship it without a flag<br>
&lt;fantasai> astearns: They don't need our permission to experiment, would need permission to add it to the spec even though the consensus of the group is not that the feature is at a point that is OK to ship without a flag<br>
&lt;fantasai> koji: Issue was browsers hard-coded differences in line height calculations triggering different steps, we're trying to solve that, so Chrome doing it doesn't help<br>
&lt;fantasai> astearns: you didn't convince Florian, but myles seems to agree it might help<br>
&lt;fantasai> myles_: please ignore me<br>
&lt;myles_> s/please ignore me//<br>
&lt;fantasai> s/myles_: please ignore me//<br>
&lt;fantasai> dbaron: I agree with Florian's concern that it seems to mostly be moving the threshold and not actually fixing the bug<br>
&lt;fantasai> Florian: I didn't mean that in the long run Chrome should have it and others shouldn't add it, I'm suggesting that the only implementation we have experiment<br>
&lt;fantasai> myles_: 100% of implementations will experiment<br>
&lt;fantasai> Florian: Add squishiness, come back and tell us if it improves the situation<br>
&lt;fantasai> fantasai: Koji's pointing out that we want to find out if there's a problem with interop. Chrome can't find a problem with interop by itself<br>
&lt;fantasai> TabAtkins: To simulate differences in how normal gets interpreted, swap around the font list.<br>
&lt;fantasai> fremy: Or switch from Mac to Windows<br>
&lt;fantasai> astearns: OK, think we're done with rhythm<br>
&lt;fantasai> Meeting closed.<br>
&lt;gsnedders> RRSAgent: stop logging<br>
&lt;RRSAgent> I'm logging. I don't understand 'stop logging', gsnedders.  Try /msg RRSAgent help<br>
&lt;gsnedders> RRSAgent: stop<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/938#issuecomment-320284782 using your GitHub account

Received on Friday, 4 August 2017 15:53:26 UTC