- From: Kang-Hao (Kenny) Lu <kanghaol@oupeng.com>
- Date: Wed, 13 Nov 2013 07:35:02 +0800
- To: Koji Ishii <kojiishi@gluesoft.co.jp>
- CC: WWW Style <www-style@w3.org>, MURAKAMI Shinyu <murakami@antenna.co.jp>
(Cc+ Murakami-san) (2013/11/12 15:18), Kang-Hao (Kenny) Lu wrote: > (2013/11/12 13:58), Koji Ishii wrote: >> "hangs" in this context is a term defined in this spec; click it to jump >> to the definition. If you understand the term definition, with the figure >> in example 19, I think you agree that the description is what 'force-end' >> tries to do. > > You're right. After I read [1] and notice that there's 'text-align: > justify' in the example. Sorry. No. I am confused again. Suppose now you have the text "我要,吃飯。" to flow into a 3em block container with 'hanging-punctuation: force-end' but *not* 'text-align: justify'. You would get |我要,| |吃飯。| but then, 'hanging-punctuation: force-end' says that the fullwidth comma has zero advance width so the next character could fit into the previous line so it should (probably) go into it: |我要吃| |飯。 | with '吃' on top of the fullwidth comma. But now, the fullwidth comma isn't at the end of the line so this should now go back to the former. Is there an infinite loop here? I see four options to address this: A. Define the model more precisely so that the former is what the spec says. I have a hard time thinking whether the ordering in Appendix A already implies this, but if it does, please enlighten me. I have to assume you can reflow the line after 'hanging-punctuation' so that you get 「|あああ| |あ。 | instead of 「| ああ| |あ。 | B. Define the model more precisely so that the latter is what the spec says. I do not think we want this. I am just listing all the options for the sake of completeness. C. Make this case undefined so that implementation can do either A. or B. I believe the spec as it is is close to this. It might be a good thing to make this 'undefined' explicit. D. Make 'hanging-punctuation: force-end' imply justification in some way. I think it's a bad idea to have 'hanging-punctuation: force-end' not useful by default and you need 'text-align: justify' or other non-'start' value to make it useful. (Not that we don't have a precedent: 'text-overflow'/'overflow', but this is still bad, I think.) We can make 'hanging-punctuation: force-end' imply the effect of 'text-align: justify' if 'text-align' is 'start'. One more point: I think the current model is flawed in that if you are saying 'hanging-punctuation: force-end' + 'text-align: justify' would imply the expected behaivor, would 'hanging-punctuation: first' + 'text-align: justify' imply 「|我 要| |吃飯。| and not 「|我要吃| |飯。 | ? Why and why not? E. Don't do anything because we know that sensible implementors would do A. This seems reasonable too. Also, per [1], I think we should rename the term 'hang' to something else (say, 'hangable'?). Two people have tripped over this already. > [1] http://lists.w3.org/Archives/Public/www-style/2012May/0165 Cheers, Kenny -- Web Specialist, Opera Sphinx Game Force, Oupeng Browser, Beijing Try Oupeng: http://www.oupeng.com/
Received on Tuesday, 12 November 2013 23:35:09 UTC