Re: [css-ruby] Anonymous Box Generation and White Space Handling Rewritten

On 07/02/2014 08:53 AM, Boris Zbarsky wrote:
> On 7/2/14, 9:14 AM, fantasai wrote:
>> Please review and comment on the changes.
>
> 1)  Say I have this:
>
>    <div style="display:ruby"><div style="display: ruby"></div></div>
>
> Stepping through the section 2.2 algorithm, step 3 explicitly
> does nothing in this case, since it excludes "ruby containers".
> Steps 4 and 5 are not relevant since there is no white space.
> Step 6 is not relevant because there are no ruby bases and no
> white space.  Step 7 is not relevant because there are no ruby
> containers (base or annotation) and no white space.
>
> So the upshot is that this box structure is left as-is.  Is
> this actually purposeful?  I would have expected the inner ruby
> container to get wrapped in a ruby base and ruby base container...

   # For the purpose of the rules above, a ruby container directly
   # parented by a ruby container is considered to be a ruby base
   # container. See nested ruby, below.

So, yes, this particular box structure is left as-is. If the structure
were
   <div style="display:ruby">
     <div style="display: ruby"></div>
     <div style="display: ruby-text"></div>
   </div>
then there would be an extra ruby-text-container around the ruby-text
and the ruby-text element would become an annotation over the nested
ruby element.

> 2)  Assuming #1 gets addressed as I suggest, I believe the definition
> of "inter-level whitespace" can be simplified to two patterns:
>
>    I. Next box is ruby annotation container
>    II. Next box is ruby annotation an previous box is ruby annotation
>        container.
>
>    Any intra-ruby white space whose immediately following sibling is a
>    ruby annotation container or whose imme

Not sure what was meant here, got cut off?

> 3)  The table in step 5 doesn't say what happens to intra-ruby white
> space which has a ruby base previous box and ruby base container next
> box (or vice versa).  Either it should classify it (most likely), or
> this white space should be removed as inter-level white space?  Or
> does it just hang around as ruby bases?

Hm, good point. It should be inter-segment white space, because the
base before it would be wrapped in a ruby base container, and two
adjacent ruby base containers would be the degenerate case of two
adjacent ruby segments. I'll fix that.

> 4)  What should happen to whitespace between two consecutive ruby base containers?

Fixed.

> 5)  This markup:
>
>    <div style="display:ruby">
>      <div style="display: ruby-text"></div>
>      <div style="display: ruby-text"></div>
>    </div>
>
> and this markup:
>
>    <div style="display:block">
>      <div style="display: ruby-text"></div>
>      <div style="display: ruby-text"></div>
>    </div>
>
> have quite different behavior per current spec: the former
> ends up with a single ruby annotation container containing both
> kids, while the latter ends up with two ruby containers each of
> which contains a single ruby annotation container containing a
> single ruby annotation.  Is that the desired behavior in this
> case, or a spec bug?  This bit seems related to the issue in
> http://lists.w3.org/Archives/Public/www-style/2014Jun/0451.html

I think this is indeed a case related to the spec not having
very good rules for handling ruby boxes outside a ruby container.
I'll have to think about how to fix that one.

~fantasai

Received on Wednesday, 2 July 2014 20:26:02 UTC