- From: Dael Jackson <daelcss@gmail.com>
- Date: Fri, 13 Jun 2014 10:19:40 -0400
- To: www-style@w3.org
CSS 3 Text ---------- - RESOLVED: text-align is shorthand for text-align-last and text-align-all - RESOLVED: Defer text-align-first and text-align: start-end to level 4 - The wasn't any solution of a new name for grapheme clusters (currently called characters). The editors will come up with something until someone comes up with something better. - RESOLVED: Require which lines are justified even if the justification method is not defined - Arabic letters connecting between elements with display: inline will continue on the mailing list - Issue 72 about control characters will be tested a bit more, but likely will result in no change. - RESOLVED: No further splits to CSS3 Text Though this is a process that's been done before with other specs (including this one), it was felt that the most interesting to implement pieces of CSS3 Text were all in the unstable list. Given that and the fact that there is no clear logical division of properties either, it shouldn't be split. ==== FULL MINUTES BELOW ====== Agenda: http://wiki.csswg.org/planning/seoul-2014#agenda Scribe: dael CSS 3 Text ========== glazou: Let's start even if Bert isn't here. glazou: First is CSS 3 Text glazou: And we have 5 sub items. First is text-align shorthanding. Relationship of text-align and text-align-last ---------------------------------------------- fantasai: We discussed this at Paris F2F fantasai: We currently have a text-align property and we have a text-align-last property. fantasai: They're currently independent and we think that we can make text-align-last a longhand for text-align. clilley: With making it take an optional 2nd value? fantasai: That's one possibility. fantasai: In most cases, people want text-align-last as either auto or justify; the latter means justify the last line because it's not by default. dauwhe: We call this forced justification in my work. fantasai: In Japanese people will set text-align: justify, text-justify: distribute and text-align-last: justify. fantasai: We eliminated that last step by special-casing 'auto' to make it easier. fantasai: We were going to tie text-align-last to have it apply only if justification is happening. clilley: So you mean that you can set text-align-last to justify and only the last line will justify? fantasai: Yeah. fantasai: The proposal on the table was to have text-align as a shorthand of text-align-last and text-align-all, which would take the other values. fantasai: We also have cases where people would want the ::first-line aligned for poetry or something. fantasai: Currently we have an issue noted in the spec where we need a name for that and we'll drop it if we can't find a name. TabAtkins: Can you apply text-align to the ::first-line? fantasai: I don't know. I think you could. TabAtkins: They don't cascade together. fantasai: The cascading is a bit of a problem. fantasai: I think it is. fantasai: Do we want to switch text-align to a shorthand and potentially add text-align-first? dbaron: I think you had explained a case where the first and last lines should work differently in cascade terms? fantasai: When you set first different from all you want to make sure that you're resetting all the alignment in the next declaration. fantasai: The question was, do we want text-align as a shorthand? fantasai: Should/would that obliterate a previous text-align-align? dbaron: I think it is where -last applies to anything before a break. dauwhe: That's something that's tripped me on text-align-last, that it applies after a forced line break. dbaron: I remember there's something not symmetric and you convinced me they should cascade separately. <SteveZ> As I recall, "text-align-last" applies to paragraphs that have only one line glazou: Can we use text-align on the first and last line pseudo? fantasai: It won't cascade correctly. If later in the cascade you want things to center, your 'text-align' declaration won't work because the pseudo is more specific. fantasai: That's a problem that shows up in various situations since the cascade on an element doesn't reset things that are set on a pseudo. TabAtkins: I wouldn't call that killer, but it's a down side. TabAtkins: Bold-ing the first line differently happens quite a bit. We use ::first-line for a lot of things that fall into a similar bucket and we're okay with making those not cascade. dbaron: I think text-align-last wouldn't work with a ::last-line pseudo. dauwhe: I wish it was the last line. It would solve a lot of my problems. dbaron: You want the opposite too. fantasai: You want a property for both things? No one has brought that up before. dauwhe: I can work up examples, but we run into problems where we're trying to force a line break. In inDesign there's a lot of ways to do a line break and you can't do that in CSS because it'll force justify the last line even if it only has two characters fantasai: Okay. * liam notes that cascading is generally less important for people generating print from their own content (!) or for epub fantasai: I think I need to work on reloading the previous discussions into my brain. Unless there's something else to point out, I'll do that as we discuss other things. * liam compares http://www.w3.org/TR/2012/WD-xslfo20-20120117/#text-align-last liam: We added a bunch of stuff for XSL-FO for this. We have a bunch more values there and I'd have to look at how they interact. <liam> [xsl-fo text-align-last has relative | start | center | end | justify | inside | outside | left | right | inherit ] <liam> http://www.w3.org/TR/2012/WD-xslfo20-20120117/#text-align-last glazou: Okay. <fantasai> http://lists.w3.org/Archives/Public/www-style/2013Aug/0391.html fantasai: Most recent proposal was text-align and a shorthand for -all and -last where they take the same values except -last takes auto. fantasai: The text-align shorthand takes one or two keywords, second one setting text-align-last. Alternately a justify-all keyword. So you can set to justify: justify but it reads better. fantasai: So in most cases, the authors only need one keyword. fantasai: I guess we should go to the next issue while I find old minutes where we discussed this. dbaron: I could be mis-remembering. fantasai: It was something about when you set text-align-last and you set the rest of it, if you want the rest of it to...um... fantasai: If you only have one line it'll be text-align-first takes priority, followed by -last, followed by -therest SteveZ: I don't understand how -first takes priority because it would be wrong for Western. fantasai: If it's not justify. SteveZ: Is that why text-align-last took priority? fantasai: I think -first takes auto or start because there's no use case for another value. SteveZ: What's auto mean? fantasai: Do same as text-align-all. SteveZ: There's 4 components? -all, -first, -last and...? fantasai: And the shorthand text-align. SteveZ: I still think -first doesn't work because -all will want to be, in Western you want all but the last line justified. fantasai: You leave first as auto. SteveZ: But if it's priory it's justify. dbaron: Auto says nothing special for the first, keep going. SteveZ: But you have to decide if the first is justified. fantasai: I see what you're saying. Start takes priority but auto doesn't. TabAtkins: It's same as start-self. astearns: But in Western you want to take the text-align-last value if there's only one line. fantasai: dauwhe's problem that he brought about having a different behavior from last line vs after a forced break. It means we'd need another property. fantasai: And if we add that is text-align-last actually the last line, or after breaks. koji: Is there a use case? dauwhe: The use-case is tied into details of hyphenations and justification of text, but we get requests to alter it a lot. dauwhe: If that happens outside the parameters, you do a soft return and than that line is justified. That's desirable for us. dauwhe: We don't want to force that just to the last line usually. dbaron: So we need a mechanism for that. For saying a break should be treated as a non-forced. <liam> +1 dauwhe: Yeah. fantasai: That makes more sense. dauwhe: I know it's an oddball use case. <SteveZ> I agree that a soft break should not be treated as a hard break astearns: I think it comes up where people try and use a break and are confused that it's a paragraph break when they want a soft break. koji: So is the break feeling alright? dauwhe: It feels like a different break character. glenn: Is there a unicode that has that semantic? fantasai: There's a bidi soft break that we don't want to get into here. dbaron: I'm of the opinion that if we can't remember why to separate, we should combine. <dbaron> I found http://lists.w3.org/Archives/Public/www-style/2013Aug/0391.html fantasai: Minutes from last F2F, we were ambivalent, then we heard from digipub and they said it would be better to go short-hand long-hand <dbaron> fantasai is quoting from Minutes 2013-11-12 Tues IV plinss: Unicode does have a line separated vs paragraph separator. fantasai: I think that's the bidi(?) one. fantasai: It's similar to soft break. dbaron: If we agree we want that use case to be from a soft-break, we don't need to do that now. fantasai: So let's agree it'll be solved by a soft-break mechanism. koji: There's two issues in text-align I understand. fantasai: I can defer text-align-first to the next level. We don't have a good way to express it in the shorthand. fantasai: I think we need text-align-all and -last with text-align as the shorthand. fantasai: I think that's what we want to do. We should make that change and then go back to soft-break. dbaron: So text-align is a shorthand and takes one or two values? fantasai: Or the shorthand justify-all. SteveZ: So how do I get western layout to align all but the last line? fantasai: text-align: justify fantasai: Any other comments? RESOLVED: text-align is shorthand for text-align-last and text-align-all SteveZ: My understanding of French poetry is the first line is left-aligned and the rest is right-aligned fantasai: We're defering that to 4 SteveZ: What I'm curious is if I say text-align: right and then say text-align: na and text-align: start that will work. [this question seems to be mis-minuted] fantasai: Yes. dbaron: But that's what's deferred to level 4? [discussing case of text-align: right; text-align-first: left; ] fantasai: Part of the reason is that's fine in general if the browser supports text-align-first, but if it doesn't, your text is all right aligned and that's not the fallback you want. fantasai: We want a way to express first-line alignment in the shorthand so that the declaration that makes the other lines go right gets thrown out by older browsers. fantasai: That gives us a migration forward. No one has come up with a good way to express this in the shorthand. We've asked for keywords and no one has come up with one. fantasai: Unless there's a keyword, we're going to drop it. dbaron: It could be a / to separate the first and the all/last. fantasai: Maybe... but would still not be super-clear. dbaron: I'm fine dropping it. RESOLVED: Defer text-align-first and text-align: start-end to level 4 <fantasai> We are in need of an understandable keyword for start-end behavior Forced Soft Breaks and Alignment/Justification ---------------------------------------------- fantasai: And we have to go back to the soft break. fantasai: Current spec says that text-align-last takes affect after every force break. If we want to say except line separators we can. fantasai: Line separator is intended to be a soft break because it doesn't break the bidi paragraph. dauwhe: I found a unicode where line separator correspond to HTML <br> clilley: But understanding of break is often wrong. fantasai: We did a compatibility check and found that <br> is a actually paragraph separator. The Unicode spec example is wrong. dauwhe: Can we apply a property to break itself? plinss: Didn't we define break as replaced content? fantasai: My one concern is you have a bidi embedded quote... if you're doing a hard break it's a semantic break. fantasai: If you have a multi-line quote in poetry and you might have an embedding and you don't want to break the embedding on the line breaks. dauwhe: I'll send out what I've been testing for this unicode character. fantasai: I'm not sure a line-separator is a good option for this use case. fantasai: I'm not sure it's not either. koji: Since most of these cases are for a single line, can we consider changing this to be last-line? The point I'm not sure is if we need the options. koji: I'm not sure if it wants to consider <br> as a line. dauwhe: So you might be okay with text-align-last not applying before first line breaks? koji: From major use cases, I'm fine. fantasai: In Japan if you're justifying the very last line, if you happen to have more text you also want to justify all those. fantasai: You'll find use cases where you want to justify all but the last line, but not only the lines that are after a forced break which isn't the last line. fantasai: So having it apply to all is right, though you might want something to restrict and not apply to the last line. dauwhe: I feel I need to mull this over. fantasai: We can leave that there. We need another WD cycle anyway. Grapheme Cluster Terminology ---------------------------- plinss: Grapheme cluster terminology. fantasai: So we've aliased the term character to grapheme cluster so we can just say character. clilley: And this has a lot of problems where people think that character means different things. clilley: Logically you can say right is left, but it's still confusing. fantasai: Character has a lot of meanings and we picked one definition. We're not using a word that has a *different* meaning than the one we're using, we've just narrowed it to one of its definitions. fantasai: This gets word. i18n said people will be confused and you should use the right term. fantasai: Anyway, having heard from James Clark about Thai letter spacing vs line breaking, we have to conclude there's actually two things we're talking about. fantasai: One is the grapheme cluster in regards to spacing and one is wrt line breaking. clilley: And which is unicode? fantasai: Neither. fantasai: Unicode is trying to solve both problems, but targeting mainly line breaking. fantasai: But in order to do correct line breaking, you'll sometimes have to extend the meaning of grapheme cluster. fantasai: Unicode allows for tailoring for this case. They are aiming at the line breaking unit and they define what they have mostly there. fantasai: But then we have spacing where in some cases it's larger than the default grapheme cluster but in Thai it's smaller. fantasai: And some of those cases have to decompose characters to space the cluster correctly. fantasai: So now we don't want character or grapheme cluster. fantasai: So. Does anyone have suggestions? TabAtkins: At this point we're in the foo/bar territory dauwhe: Does first-letter make this more complicated? fantasai: No, I think it mostly uses line breaking definition. koji: We could go with line-break point as grapheme cluster and define spacing as something. clilley: You could define a new term so they have to look it up. clilley: Letter Spacing Break Opportunity is LSBO fantasai: So. Unless there are further suggestions we can move on. SteveZ: One comment. It seems to me the grouping is more important than the breaking aspect. SteveZ: So I didn't like letter spacing break opportunity and preferred talking of the nature of groups. fantasai: Break opportunity is a break between these "things" and we need a name for the "things" fantasai: You could define the behavior in terms of breakpoints, but if you're reading this definition to understand what the property is for, I wanted to have one understandable sentence of what this property does. SteveZ: How about unitary characters? koji: You mentioned using HTML's definition? fantasai: It's completely different. It's not a grapheme cluster. TabAtkins: It's codepoint or scaler value. One or the other. zcorpan: It's both in HTML. It's scaler if it can be, else wise it's codepoint. TabAtkins: Scaler value is a subset of codepoint that excluded the lone surrogate. TabAtkins: It's not relevant since I'm not talking about codepoints. zcorpan: HTML is complicated because it wants scalers and codepoints <fantasai> visually-perceived character and semantically-perceived character? <fantasai> (Unicode calls Grapheme clusters "user-perceived characters") * liam not sure that's appropriate for e.g. Hindi dbaron: So how about creating the term "CSS character"? hober: CSS character would be confusing with the ch. fantasai: I think it's a problem with parsing. TabAtkins: I changed Syntax from character to codepoint. clilley: The reason there was a link to the word character, is that he thought that he would use an existing definition. fantasai: He picked a different definition and didn't realize that. fantasai: Anyways. I'm gonna put up a chart on the whiteboard and over the next break you can add suggestions. koji: No opposition to CSS characters? fantasai: There isn't a dominant one, really. We need two terms. <zcorpan> http://www.whatwg.org/specs/web-apps/current-work/multipage/infrastructure.html#unicode-code-point was what I was thinking about. Not called "character" though. <zcorpan> actually it is "character" text-justify: auto ------------------ <liam> [text-justify - at one point I'd proposed (and the wg accepted) a property to let the user ask for a named justification/line-breaking] algorithm fantasai: What's next? plinss: Defining text-justify: auto <fantasai> http://dev.w3.org/csswg/css-text-3/issues-lc-2013 fantasai: The issue was...(link above) fantasai: I believe this is text-justify: auto being more international one. koji: Issue 57 where there was feedback that we accepted <fantasai> http://dev.w3.org/csswg/css-text-3/issues-lc-2013#issue-57 fantasai: The i18n group wanted us to be more explicit about the UA doing the right thing in all cases fantasai: Current state of implementations is that if you don't spec a language tag on your text it uses western justification. fantasai: This is a problem for CJK texts because there's no spaces. fantasai: Furthermore, we dropped text-justify: inter-ideographic in favor of auto. fantasai: But there's pages out there that use inter-ideographic assuming it's going to work for CJK. fantasai: We said where UA if possible should use the appropriate spacing for the text, but we added a better example. fantasai: [reads example 10 text] fantasai: That will cause CJK pages that set text-align: justify to start justifying, which I hope wouldn't break anything fantasai: We go further saying, if you know the content language you can be more sophisticated. clilley: I like that it includes English as a more specific thing. Can you remind me of the letter definition? fantasai: So it's a grapheme cluster where the base character is from the L or N general categories in Unicode. fantasai: It's not spaces, not punctuation, not whatever the M category was. fantasai: I want to go over this with implementors to see if it's okay or if they want more explicit text, or if they won't justify CJK without a language tag... clilley: This appears to only be for unrecognized languages. So this allows them to do this for any language. So this issue is only about special languages where you don't have something for it. fantasai: We want UA to justify with CJK spacing by default. clilley: And that's testable and I like that. fantasai: So I wanted to hear from implementors what they think. SteveZ: What happens for languages like Arabic which don't put spaces? fantasai: Arabic expands spaces. For Thai if there's a space expand that space and if there isn't one to expand you would expand between clusters. fantasai: This requires a 2-level justification algorithm. clilley: So that algorithm is wrong for Thai? fantasai: Thai spaces between grapheme clusters. fantasai: (clarifies) Word separators in CSS3 Text are actual characters, not implied word boundaries. SteveZ: So it's letter spacing. dbaron: This is when there's no language tag. So it would be useful to have more clear requirements here. dbaron: I think the current text assumes the implementor knows more about world languages than the spec author and that's not usually the case. dbaron: It won't be wide knowledge. dwim: I did text-justify in Blink and I can do English and Korean, but I don't know Arabic and what they prefer. More specific cases are needed. fantasai: If you implement primarily expanding word separators along with secondary expanding between SEA/CJK clusters, you get there. But if we have an implementor that has better knowledge I want them to be able to do better. clilley: So could choose what needs to be changed. This is the minimal version. So a test with a nonsense language is what's needed. dbaron: So it's also useful to say when there's a language specified. fantasai: It's here. dbaron: That's not much. dbaron: I think the spec is unclear enough that it'll be ignored. So if you want it not ignored you should specify more. clilley: You remove the part that says example 10 and you make it non-normative. People with good knowledge of second languages, you let them do that with your second sentence. fantasai: We want the UA to use a universal compromise, but it can be more specific. clilley: So make it normative by saying this is the minimal required. Say from onwards this is the baseline. koji: But then what's minimal? Can you swap secondary and primary? zcorpan: You can also say if you have better, give me feedback? glenn: I like it as is. <fantasai> dbaron, maybe adding "and should, at minimum, adequately handle both Western and non-Western scripts by default" ? zcorpan: Is there a problem with spacing between all characters? fantasai: Yes. If you have a mix of CJK and Latin on the line, you want to space between the CJK characters and not the Latin; you could space between the Latin as a tertiary measure. liam: There's a problem in German. Letter spacing is used for emphasis. liam: A year ago I had an action item, I had sent a proposal to let the author to name which algorithm they want for line breaking and that was for CSS 4 text. liam: I hadn't realized I had that action, I'll rewrite the proposal for advanced line-breaking and some of this could be referred to such a property. <liam> [ proposal from last March - http://lists.w3.org/Archives/Public/www-style/2013Mar/0183.html ] clilley: It could be useful. liam: Maybe you weren't on the call, but the goal was, when you do a better line-breaking a lot of the research has been for print and it goes wrong for screen. liam: If you use the line-breaking algorithm and you edit the text, you insert your pointer and type, but the dynamic justification can makeyour pointer move up and down by a few lines. liam: That's not acceptable. liam: I was going to let you say that you plan to edit this and do that shortly before you start the editing. That would tell the user agent you accept the text as is and don't refine line-breaking. For print you can optimize with just a few lines. liam: Than you get something that's slightly better. Being able to say what's an end is useful for several languages. fantasai: Any further comments on this? koji: This is a compromise that's suboptimal for CJK so IE will have some justification issues for quality. koji: You have something optimal for CJK and now we're removed it. If language isn't specified it's suboptimal for CJK. fantasai: CJK is secondary anyway because if you have a line with a space you just the space. JLREQ says that already. fantasai: I think it compresses instead of expands, though. koji: Compressing is okay. Expanding... Anyway. koji: Since we're talking line breaking changes anyway. <dauwhe> high-end typesetters often have rules that you can only reduce letter- and word-spacing to justify text, never increase space. fantasai: dbaron did you see the IRC text? dbaron: It's so far from what an implementors would write. This spec is saying do a pile of research. clilley: If you want. fantasai: I had more specifics and people said they don't want more specifics. clilley: I was pushing for more specific. fantasai: I can't please both directions. SteveZ: The main comment I wanted to make is whatever you write should be testable and some things I heard didn't sound testable. fantasai: Auto is to "do the right thing" and we don't say what that is. SteveZ: Which makes it hard to test and get interoperability. fantasai: Then I'll need 6 years research to spec the right thing plus a research budget. fantasai: I can't give you the algorithm. dbaron: So how should implementors do it? Rossen: So why is it in the spec? fantasai: Because we need to say a baseline of how to justify. fantasai: I don't have the answers and I've been doing this for 10 years. If you want a correct algorithm appropriate for everyone to implement, I don't have it. fantasai: I don't have any actionable requests here. fantasai: I can answer specific questions, but if you want a step by step algorithm, I can't do that. SteveZ: I thought I heard two things useful. SteveZ: First was clilley's point that we need a nonsense language to test and second was that we need an algorithm that processes that nonsense language which I thought was to prioritize existing spaces or use letter spacing. SteveZ: That's testable. SteveZ: Outside the nonsense language you can't test because people may have heuristics that let them do a better job. fantasai: There's simple cases where we can say you should get this result. fantasai: But we can't say here's the algorithm you must use. fantasai: So we can say here's a paragraph of Latin words with spaces and we can test if it's been handled correctly. And than do 5 CJK characters in a 6em box and then Thai and then etc. We can't test script mixing because people will want to have different priorities. fantasai: So we can test, but we can't spec more than a few outputs on a test case. fantasai: I can say you should have these outputs, but nothing more specific. <dbaron> https://www.rfc-editor.org/rfc/rfc6919.txt has "SHOULD CONSIDER" which seems to match this case dbaron: This sounds hard to justify spending time on because we'll write some code, someone will tell us it's wrong, we have to re-write and on and on and we may as well stick with the Western behavior clilley: That seems worse. Unless you're language is well known you get English justification. TabAtkins: If you're not well known you have to be a special case. clilley: Well the prose is something where here's a good way for spacing in general and if there's special cases you can do that better. * liam wonders if it'd be better to have a set of justification-in- language-X documents? fantasai: What are you asking me to do dbaron ? dbaron: I'm curious what other implementors think they'll do. I'd rather have an algorithm in the spec that's better than what we have and we can move toward and have something where if people say they think we can do better in their language, tell them they should get it in the spec. clilley: Yeah. So people will come with different opinions and this can get consensus of how things can be. plinss: This is sounding like counter-styles. zcorpan: An algorithm in the spec that we know is wrong and can get feedback and improve is more likely to get interoperability. zcorpan: You can put in a bit note saying it's probably wrong. clilley: It's probably sub-optimal. SteveZ: The Japanese layout requirements taskforce is the best group out there to capture what you need and even they recognize that it's all house styles. Don't assume there's a right way. dauwhe: We devote our lives to carefully justifying text. But we do a lot of hand tweaking for results and it's so immensely complicated and we're frustrated we have so little control over it. dbaron: I think browsers have different interoperability than formatters. We care more about interop. dbaron: I don't consider it worth investing in something like this if it's complicated and won't lead to browser interop. I'm curious what others think. Rossen: I think your last sentence summarizes well. We won't put in much effort without an interop result. hober: If we spec something that's simpler to being worse in common cases, sure we could converge, but we don't want to if it's worse. fantasai: I don't think we're proposing you do worse. We're proposing we do better in non-English fantasai: I don't think interoperability of justification is the goal. We want the text to justify and look good, but exactly what it looks like we shouldn't obsess over. That'll vary and that's okay. dauwhe: I have no expectations that every word will maintain across browsers. fantasai: That's true just from different font libraries. dauwhe: If a font version changes it breaks justification. The smallest length can make large changes. plinss: There is an expectation that if I only change the browser, I should get the same thing dauwhe: That doesn't happen today. plinss: People want that. dauwhe: And this isn't text-align: justify, but other values of text-align. dbaron: If we start doing something that we think is better, someone will think it's worse and be furious and it's easier to point to a spec with some research than to say we thought this was better because we talked to the guy over here. fantasai: We want interop on if a line of text has been justified or not. Where space is inserted/removed is less important. fantasai: Right now if you have CJK and you ask to justify, it is left-aligned. fantasai: That's how deep the spec should get. dbaron: Then the spec should require that. dbaron: If that's what you want to solve it should be must level. fantasai: As far as an algorithm, I can do a non-normative appendix, but I don't want people that have a better idea or different performance be locked into a browser- required algorithm. Rossen: That's fair. dauwhe: Plus that might take another 5 years for the algorithm. plinss: Thinking back to counter styles, you mentioned that justification style is a house style so maybe at some point we want to name the prop to control all the properties of justification and do it as an @ rule so people who want to be really specific can. plinss: We can have our list of default parameters for these languages that are good starting points dauwhe: That might be a good way of describing it. fantasai: That's so not going to happen in the next 6 years. plinss: I'm saying somewhere down the road. fantasai: The algorithm will have different kinds of outputs. koji: Are we resolving this as adding a non-normative appendix? fantasai: We're saying require what should be justified. koji: So like the minimum. <jdaggett> frankly, one *could* spec text-justify: auto in infinite detail but as fantasai says, this would take a *lot* of research and probably wouldn't be completely relevant in the end <jdaggett> "ideal" justification is not something easily defined, there's typically "better for this use" <jdaggett> to say that "this has already been done for print" is nonsense, a lot of print typography is manual tweeking up the wazoo <dauwhe> jdaggett: most of the time spent in producing a book is manual adjustment of word, line, and page breaks. <dbaron> jdaggett, but if fantasai is saying that the point of the text in the spec is to ensure that CJK text should be justified inter-ideograph when justify is specified, then the spec should at least require that <jdaggett> dbaron: sure, if specific requirements are being stated those should be detailed, agreed <jdaggett> plus any print justification algorithm is inherently offline and can do infinite automatic adjustments without worrying too much about rendering speed. this isn't true for browsers <liam> [people do worry about formatting speed. Luckily there are very good very fast algorithms, but there are NP-complete corner cases for all of them] <jdaggett> liam: but with browsers those algorithms need to execute in real-time on $25 devices <jdaggett> it ain't the same! <liam> jdaggett, yes, understood. fantasai: These are justification opportunities and if they exist you must do them. Would that work for you? dbaron: I guess so. There's a bunch of things you said about where you know how to prioritize that should be in the spec. dauwhe: And hopefully the simple statements can be tested. RESOLVED: Require which lines are justified even if justification method is not defined Cursive Joining Across Inline Boundaries ---------------------------------------- plinss: Next is Arabic letters connecting between elements. fantasai: So this was people taking a UL and formatting as inline elements and because there wasn't a space, all the Arabic words were jammed together. fantasai: So if you format with no spaces the Arabic elements run up together. We were discussing how to create boundaries at the element boundary. fantasai: We could create a property devoted to it. fnatasai: We could piggyback off of bidi isolation, fantasai: Or if you have non-0 padding or margin, you consider that shaping isolated. fantasai: This is about shaping behavior for scripts like Arabic. glenn: What about Arabic causes the spaces to collapse? TabAtkins: It's not. It's the lack of space causes it to have text on text. TabAtkins: Can you do a zero-width non-joiner? Is that sufficient? fantasai: Yep. I think we can do that. fantasai: Let me pull up the thread. fantasai: I think that would work if author is aware. If we want this in a UA stylesheet or to take affect automatically it wouldn't work, but I'm not sure we need that. fantasai: I can reply to the thread and ask if that's felt to be sufficient. <plh> http://lists.w3.org/Archives/Public/www-style/2014Feb/0302 Control Characters ------------------ fantasai: Okay. Next? koji: Control characters <koji> http://dev.w3.org/csswg/css-text-3/issues-lc-2013#issue-72 fantasai: We got a question from James Clark about why are we ignoring form feed, vertical tab, and new-line characters. TabAtkins: They normalize out. fantasai: You can stick them in the DOM. TabAtkins: Oh...nevermind. fantasai: Then Roc said Mozilla has a control character visibility property, do we want that? plinss: Some word processors let you make spaces visible. fantasai: Then there was a reply saying that there was a section... [missed] zcorpan: But you can put it into the script afterwards. fantasai: But then it won't work in legacy. fantasai: So there's a legacy problem with pages that use control characters. dbaron: But pages that are in UTF-8 can spec these control points. fantasai: Do we need to care in CSS? clilley: No. fantasai: So we say Zach Winburg's comment is out of scope? fantasai: From the original comments, just say there's no reason to. They're formatting. glenn: Sometimes you want to see control codes. If you're doing Arabic you want to see left or right marks and joiners, but not in the default. TabAtkins: Mozilla has a display for invisible characters. zcorpan: That was to catch errors. TabAtkins: Sometimes you want to display them on purpose. glenn: Unicode has a block that has visual depiction symbols and some fonts support those for control groups. fantasai: Wasn't there a property in GCPM? (text-replace) glenn: You don't want to change the character content. clilley: Text transform doesn't. <clilley> text-transform: control-visible TabAtkins: That's a decent idea. fantasai: And you can pick what you want. TabAtkins: We can add a keyword to replace Mozilla's proprietary one. zcorpan: And would that be compatible with showing spaces or tabs? TabAtkins: This is what it would do. zcorpan: I thought it was just control characters, not spaces. fantasai: So any suggestions on responding to this comment other than no change? fantasai: Apparently we conflict with unicode, but I don't think we are, since we are a higher-level protocol. koji: I think the proposal also wants to treat things with whitespace. Is that reasonable to add? koji: He's saying because HTML and Unicode do it's own thing we should. koji: Form-feed character. fantasai: I don't have an opinion. We should do what browsers do which I'm guessing is not to display. koji: Implementors? Rossen: I'm not sure. fantasai: We can write a test. fantasai: It's invisible. fantasai: So I think that's what we're doing. And the spec says don't render. koji: We don't have form feed as whitespace. fantasai: No, it's a control character. fantasai: Any other comments? fantasai: I think that's all the text stuff. [break = 15 min] Splitting CSS3 Text ------------------- koji: The basic issue is some properties are ready but some properties need more work. koji: I'm proposing the split the fast moving ones so they can go to CR while the other ones can stay in a different spec. astearns: I'm all for splitting to different levels. You had proposed at some point different modules? fantasai: My concern is the things we're churning on are the things that are the highest priority, where as the things that are stable, the 2.1 stuff, is fine. So text-justify, line-break and word-break are the things the i18n care about the most and the split would make them go slower. fantasai: I think in this case I'd be against pushing that stuff to the next level. fantasai: That might mean it'll be another 3 to 6 months to CR, but I don't think it'll be more than that. fantasai: We need to do the edits we discussed today, do a new WD and do a few cycles of LC to get comments. fantasai: And that's kinda what we're stuck on right now. koji: The size of the spec is quite large so half the properties we get almost 0 feedback so asking review of all the features every time doesn't makes sense. fantasai: We can say what has changed since last LC and please focus on those things. I think if we split we'll have to do LC/CR for one and work from FPWD for the other and that takes longer. plh: What about marking things as at risk? fantasai: The things that are holding us back are things we don't want to drop. glazou: You said FPWD was hard? fantasai: It would take the focus away from the things that need work to the things that are stable and going well. There's also a certain amount of editorial work to keep the two drafts in sync. fantasai: That won't make things go faster except what's high priority. glazou: This is one level. We don't need everything that's in the other level. It's not versions. glazou: You don't need to copy 3 into 4. 4 is an extension. TabAtkins: You really do. You don't want delta specs. <SteveZ> The AB (some time ago) advised that we do not produce delta specs <SteveZ> Delta specs are not reader friendly fantasai: There's [???] that interact. glazou: That's the purpose of levels! dauwhe: Is there a natural split? I want to have one-stop-shopping for text. fantasai: I think this proposal will just get text-indent and a few others to CR faster. koji: What happened to text-decoration is that the spec went to CR and implementation starts. This will help us focus on the things left in the spec. I can see a lot of benefits. fantasai: If the high priority things were in the stable state I'd agree. koji: But that helps me to move low priority items to other specs. hober: So you're saying that you should move the higher readiness items to CR? glazou: A few years ago we said if there are things that are slow and blocking advancement we should remove them to another level. dbaron: But the ideal is we do that for things that are high priority. fantasai: When we split text-decoration it's because it was long and there was a logical break. It turned out one part was faster, but I was expecting the same speed. fantasai: There is a clear priority here. I want to concentrate on the high priority things. koji: If half the CSS items are things we don't want, why keep them? fantasai: Mostly it was in 2.1, plus a few minor extensions, plus hanging punctuation. I don't think hanging punctuation is worth it. koji: There are 7 properties that are likely to move faster glazou: Bureaucratic isn't bad, it's extra editorial work that's a problem. fantasai: What are the 7 properties? <koji> https://lists.w3.org/Archives/Member/w3c-css-wg/2014AprJun/0121.html [Member Only] <koji> Higher (zero-to-few feedback to the last LC): -text-transform -white-space -tab-size -hyphens -overflow-wrap/word-wrap -text-indent -hanging-punctuation Lower: -word-break -line-break -text-align -text-align-last -text-justify -word-spacing -letter-spacing plh: Are there implementations of several of those higher properties? fantasai: Yes. Of all. The first 2 are in CSS 2.1, the next 2 have implementations, hanging-puntuation is AH and text- indent is in CSS 2.1 fantasai: The lower 4 are high priority for i18n and ebook communities. If it'll take us 6 months or less it'll cause more confusion to split instead of benefit. We won't know why we published two levels in 6 months. glazou: We did that for selectors. fantasai: No, they were many years apart. glazou: We split levels 3 and 4 and we released CR when we did 4. fantasai: But 4 isn't going to CR in multiple years. fantasai: These properties should go in 6 months. I think it should be 6 months. fantasai: Selectors 3 went to PR. Here we have a WD that we're taking to CR and creating a new one to also take to CR. fantasai: We also have implementations of everything that we're planning to defer. fantasai: They all have implementations. Rossen: So how confident are you in the 6 months? fantasai: It depends on how much time I put into it, but koji is also available so as long as we're actively responding, we should be able to. fantasai: We're not getting "re-design this" type of feedback. koji: I think that's optimistic. Last time i18n asked for a 3 month extension to LC. To make CR in 6 months we have to do the WD in one or two months. That's tough. Rossen: So we're talking about longer. koji: That's why I want to reduce the focus. fantasai: I wasn't really working on this for the last 6 months, koji was the only one working on it. koji: I expect a lot of work. dauwhe: Can w3c help focus i18n on this? fantasai: I think that LC was during the holidays. glazou: That's not a valid excuse. They're always late. We've even discussed this during a F2F. fantasai: They're overloaded, I think. clilley: Part of their job is to check every spec everyone produces koji: I can't imagine how one person could make all the test cases for this spec. koji: I don't have an implementation team. plh: If we don't know we can get to rec in 6 months, why aren't we splitting? koji: We said CR. To get to PR I need help from implementors. hober: CR is an official call for implementations. What's stopping us from unofficially asking we'd like people to implement? fantasai: They're implementing already. hober: So then why haven't I heard of a call for implementors? dbaron: And if there was a CR we'd feel more confident. clilley: CR gives a message of stability. There's no patent difference. You can do CR in 0 time. If you have full pass on your test suite you don't have to go to CR if you've met the exit criteria. clilley: You just need a test suite that passes. koji: What happened to text decoration is that once it got to CR it was picked up. I think CR gives a good message. fantasai: dbaron, what on this list would you pick out for impl only once it hit CR? dbaron: I think we would implement the stuff in the lower list. fantasai: I don't see a benefit of taking the higher level stuff to CR. fantasai: text-indent, maybe, but no one is super excited about that. Maybe hanging punctuation for CJK, but that's one property. fantasai: The things people are really waiting on are the things in the lower list. Those are the ones that a transition to CR would make a difference and the split will slow them getting to CR at least somewhat. It will add time. fantasai: Making sure the spec is still all coherent and there's appropriae intro text to each section... fantasai: It's easy to cut out a section. It's harder to pull interleaved things out and make both levels each fit together. That takes time and it's not worth spending without a benefit and I don't think we would get a benefit. clilley: Splitting won't help in any way. I think fantasai gave a good demonstration of that. glazou: Is there consensus? RESOLVED: No change to CSS3 Text
Received on Friday, 13 June 2014 14:20:08 UTC