Re: [css-text] 'hanging-punctuation' comments

(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