Re: [css-ruby] Leading/trailing whitespace rules are weird

On 07/31/2014 12:05 PM, Boris Zbarsky wrote:
> Consider these three testcases:
>
> 1)  abcd<span style="ruby-base-container"> BASE</span>
>          <span style="ruby-text">TEXT</text>
>
> 2)  abcd<span style="ruby-base-container"> <span>BASE</span></span>
>          <span style="ruby-text">TEXT</text>
>
> 3)  abcd<span style="ruby-base-container"><span> BASE</span></span>
>          <span style="ruby-text">TEXT</text>
>
> Per the current spec text in http://dev.w3.org/csswg/css-ruby/#anony-gen-trim-space
> the behavior of testcase #3 is clear, I believe: it renders like so:
>
>                 TEXT
>            abcd BASE
>
> with a space between "abcd" and "BASE".
>
> Per the same spec text, the behavior of #2 is also clear, and renders like so:
>
>                TEXT
>            abcdBASE
>
> without a space between "abcd" and "BASE".
>
> The behavior of #1 is not obvious to me from the spec, but a literal reading
> would suggest it should render like #2, since the spec talks about "white
> space", not "inline boxes contatining only white space".
>
> Is this actually the desired behavior?  Naively, I would have expected all
> three of these cases to render like case #3, based on the general principle
> that ruby should act like inlines do as much as possible.

Sorry, took me awhile to get a clear idea of what to do about this.
I think you're right, and I've updated the spec as follows:

   1. Moved the leading/trailing trimming rule after the misparented-wrapping rule.
   2. Reworded it to:

        Any <i>intra-ruby white space</i>
        that is not the sole child of its parent
        and occurs at the beginning or end of
        a <i>ruby container</i>, <i>ruby annotation container</i>, or <i>ruby base container</i>
        is removed, as if it had ''display: none''.

Let me know if that makes sense. I think this should also fix sbowen's issue:

Susanna Bowen wrote:
> Here's another unclear case:
>
> <ruby><rbc></rbc><rtc></rtc>       <rbc></rbc></ruby>
>
> The spec says the whitespace there is inter-segment whitespace, and is
> "effectively a ruby segment of its own." This would suggest treating
> the above case like:
>
> <ruby><rbc></rbc><rtc></rtc><rbc>       </rbc><rbc></rbc></ruby>
>
> (with assumed rtc's for each segment) would be all right. However, once
> the white space gets wrapped in an rbc, it becomes both leading and
> trailing white space, and is deleted as of step 3 in anonymous ruby box
> generation. So the inter-segment white space just becomes a completely
> empty segment (instead of a segment containing white space). This
> doesn't seem right. Is this what the spec intended?


Thanks~
~fantasai

Received on Saturday, 7 February 2015 19:11:16 UTC