- From: Peter Moulder <peter.moulder@monash.edu>
- Date: Fri, 05 Nov 2010 17:51:40 +1100
- To: www-style@w3.org
In previous versions of CSS2.1, the outer table box was anonymous and the (inner) table box was considered the principal box generated by the table. This made it reasonably clear that the outer table box's properties (other margins, 'float' etc. as mentioned in §17.4) were all inherited from the outer table box's parent box or at initial values, as per the fourth-last paragraph of §9.2.1.1. Whereas in the Oct2010 editors' draft, the outer table box is the principal box, implying that it's now the outer table box that gets the background, borders and so on that were the computed values of the table element. The new text in §17.4 isn't clear whether the (inner) table box is anonymous or not; but §9.2.1 is clear that the only elements that "may generate additional boxes in addition to the principal box" are "'list-item' elements". [The current text doesn't actually specify what a "'list-item' element" is, but most people would guess that an element with display:table isn't one.] If property values are to stay the same as in previous versions of the spec, then there needs to be some text saying for each of the two boxes what property values they have. (Or if the implied change to properties was deliberate, then I would suggest drawing explicit attention to this, given that most or all existing user agents assign properties according to the previous versions of the spec.) I believe we need to be explicit that the table box associated with an inline-table element is not "an inline-table". Whether it's an inline-table affects zindex.html, for example. When describing what properties the table box gets, I suggest explicitly stating that its 'display' property has value 'table'. (I'll grant that an implementer who was conscious of the question may well decide that it shouldn't be an inline-table, but without specifying this explicitly, there's a fair chance that it accidentally gets left as inline-table, and the bug would likely not be noticed by testing.) [The technical reason that this is an underspecification bug is that although §17.4 does say that the table box is block-level, the current version of §9.2.2 still has the sometimes/always problem such that being block-level isn't enough to imply that its 'display' value isn't 'inline-table' or 'inline'.] As hinted at above, I suggest that it be made clear whether or not the inner table box is anonymous, and point out that §9.2.1 para 2 may need changing accordingly. I don't know for sure whether it makes a difference whether or not it's anonymous or whether or not it's one of the boxes "generated by" the table element, but it seems safest if we say that it is one of the boxes generated by the table element, and worth the small wording cost in §9.2.1. (The current text doesn't explicitly say that the table box is generated at all, beyond saying that the outer table box contains "the table box".) pjrm.
Received on Friday, 5 November 2010 06:52:11 UTC