lets process your example..
ORIGINAL
P table-row-group
|-T table-cell
'-S button
There is no statement about _when_ the anonymous-table rules are applied or
in what order. So legally spoken you can apply them in random order. I will
process the rules (below) in 2 different orders (VERSION 1 and VERSION 2)
which are both technically correct but will have different results. This
means you don't know what the browser-result will be. The browser may
choose how to render the result. Any interpretation using the specification
and respecting all spec-rules is legally correct.
Legally, I even state that CSS2-conformant browsers don't have to apply
these anonymous rules at all (as long as you never claim or suggest that
the rendered result is a _finished_ result of CSS2). You can state that:
yes, anonymous-rules are being applied, but their applyance is being timed
somewhere in the infinite future. What the browser shows is a 'half-product'.
Hope that helps!
greetings,
Mark Ament
----------------------------------------------------------------------------
-----------------------------
generation of VERSION 1
apply rule 1 ..
VERSION 1 {1}
P table-row-group
|-A table-row
| |-T table-cell
'-S button
apply rule 4 ..
VERSION 1 {1,4}
A table
'-P table-row-group
|-A table-row
| |-T table-cell
'-S button
apply rule 5 ..
VERSION 1 {1,4,5}
A table
'-P table-row-group
|-A table-row
| |-T table-cell
|-A table-row
'-S button
apply rule 6 ..
VERSION 1 {1,4,5,6}
A table
'-P table-row-group
|-A table-row
| |-T table-cell
|-A table-row
|-A table-cell
'-S button
----------------------------------------------------------------------------
-----------------------------
generation of VERSION 2
apply rule 7 ..
VERSION 2 {7}
P table-row-group
|-T table-cell
|-T table-cell
'-S button
apply rule 1 ..
VERSION 2 {7,1}
A table-row-group
'-P table-row
|-T table-cell
|-T table-cell
'-S button
apply rule 2 ..
VERSION 2 {7,1,2}
A table
'-A table-row-group
'-P table-row
|-T table-cell
|-T table-cell
'-S button
----------------------------------------------------------------------------
-----------------------------
At 22:33 20-3-00 -0800, you wrote:
>Consider a case where T = table-cell, P = table-row-group, and T's next
>sibling, S = button. Rule 1 says that a table-row will be generated
>between P and T but doesn't imply that it spans S (since S is not a
>table-cell). Rule 6 says that a table-row will be generate between P and
>T and might imply that it spans S (because S is not a table row).
>
>So, does the table-cell parent that gets generated for S have the same
>table-row parent that gets generated for T or does it get a different
>generated table-row parent? In other words, are T and S in the same row
>or different rows?
>
> 1.If the parent P of a 'table-cell' element T is not a 'table-row',
>an object corresponding to a 'table-row' will be generated between
> P and T. This object will span all consecutive 'table-cell'
>siblings (in the document tree) of T.
> 2.If the parent P of a 'table-row' element T is not a 'table',
>'inline-table', or 'table-row-group' element, an object corresponding to
>a
> 'table' element will be generated between P and T. This object will
>span all consecutive siblings (in the document tree) of T that
> require a 'table' parent: 'table-row', 'table-row-group',
>'table-header-group', 'table-footer-group', 'table-column',
> 'table-column-group', and 'table-caption'.
> 3.If the parent P of a 'table-column' element T is not a 'table',
>'inline-table', or 'table-column-group' element, an object
> corresponding to a 'table' element will be generated between P and
>T. This object will span all consecutive siblings (in the
> document tree) of T that require a 'table' parent: 'table-row',
>'table-row-group', 'table-header-group', 'table-footer-group',
> 'table-column', 'table-column-group', and 'table-caption'.
> 4.If the parent P of a 'table-row-group' (or 'table-header-group',
>'table-footer-group', or 'table-column-group') element T is not a
> 'table' or 'inline-table', an object corresponding to a 'table'
>element will be generated between P and T. This object will span all
> consecutive siblings (in the document tree) of T that require a
>'table' parent: 'table-row', 'table-row-group', 'table-header-group',
> 'table-footer-group', 'table-column', 'table-column-group', and
>'table-caption'.
> 5.If a child T of a 'table' element (or 'inline-table') P is not a
>'table-row-group', 'table-header-group', 'table-footer-group', or
> 'table-row' element, an object corresponding to a 'table-row'
>element will be generated between P and T. This object spans all
> consecutive siblings of T that are not 'table-row-group',
>'table-header-group', 'table-footer-group', or 'table-row' elements.
> 6.If a child T of a 'table-row-group' element (or
>'table-header-group' or 'table-footer-group') P is not a 'table-row'
>element, an
> object corresponding to a 'table-row' element will be generated
>between P and T. This object spans all consecutive siblings of T
> that are not 'table-row' elements.
> 7.If a child T of a 'table-row' element P is not a 'table-cell'
>element, an object corresponding to a 'table-cell' element will be
> generated between P and T. This object spans all consecutive
>siblings of T that are not 'table-cell' elements.
>