Re: [CSS21] Proposal for a replacement for section 17.2.1 (table anonymous objects)

On 7/20/10 8:16 PM, Tab Atkins Jr. wrote:
> Final proposal for issue 110!

Comments follow inline.  You're already aware of my objections to the 
proposed handling of fixed-pos/abspos elements, so I'll focus on other 
issues.

>    |   proper table child
>    |     A 'table-row' box, row group box, 'table-column' box,
>    |     'table-column-group' box, or 'table-caption-box'.

The end there should be "'table-caption' box."

>    |   consecutive
>    |     Two sibling boxes are consecutive if they are both in flow
>    |     (that is, neither are absolute or fixed position)

This doesn't seem correct.  If you mean that they are both not 
"absolutely positioned" (which is the term the spec uses for abspos or 
fixed-pos), then just say that.  Don't introduce confusing stuff about 
"flow" if you don't actually mean what the rest of the spec means by "flow".

>    |     sibling boxes is consecutiveif each box in the sequence is

Missing space before "if".


>    |       1.3 If a child C of a tabular container P is an anonymous
>    |           inline box that contains only white space, and its
>    |           immediately preceding and following siblings, if any,
>    |           are proper table descendants of P

"proper table descendant" is not defined.  It needs to be; without that 
I can't tell whether this step makes sense.

I understand that this text is also trying to make sure leading and 
trailing whitespace is included in the definition, but it's really 
opaque about it.  How about changing the definition of "internal table 
box" to include 'table-caption' boxes (since every single use if of the 
form "internal table box or 'table-caption' box" anyway), and then saying:

   If a child C of a tabular container P is an anonymous inline box that
   contains only whitespace and if the following two conditions both
   apply:
     a) C has no previous sibling or its previous sibling is an internal
        table box.
     b) C has no following sibling or ....

or something?  With the appropriate modifications for whatever the 
proper table descendant part means, of course.

>    |       2.1 If a child C of a 'table' or 'inline-table' box is not a
>    |           proper table child and is not absolute or fixed
>    |           position

Again, the spec has an existing term for "absolute or fixed position". 
Just use it here (with a link to the definition)?  This applies to all 
the items in this stage.

>    |       2.3 If a child C of a 'table-row' box is not a 'table-cell'
>    |           and is not absolute or fixed position, then generate an

"'table-cell' box", right?

>    |        3.1 For each 'table-cell' box C in a sequence of
>    |            consecutive internal table and 'table-caption'
>    |            siblings, if C's parent is not a 'table-row' then
>    |            generate an anonymous 'table-row' box around C and all
>    |            consecutive siblings of C that are 'table-cell' boxes.
>    |            [current rule 1]

What's the "in a sequence" part about?  Why it it needed?

>    |        3.2 For each proper table child C in a sequence of
>    |            consecutive proper table children

And here.

>    |              * A 'table-row' is misparented if its parent is
>    |                neither a row group box or a 'table' or
>    |                'inline-table' box.

neither .... nor.

>    | Note: Absolute and fixed position elements do not participate in
>    | the above algorithm in any way.  The static position of absolute
>    | or fixed position elements who's parent element is a tabular

"whose".

-Boris

Received on Wednesday, 21 July 2010 02:12:29 UTC