Bugzilla – Bug 18476
Failure to define that a table-caption element is block-level
Last modified: 2012-09-20 08:43:03 UTC
Reported by Peter Moulder
9.2.1 (Block-level elements and block boxes) says:
# [...] The following values of the 'display' property make an
# element block-level: 'block', 'list-item', and 'table'.
In CSS21, an element with display:table-caption is also a block-level element, but this is intentionally not mentioned in 9.2.1 because future levels of CSS are likely to introduce new 'left' and 'right' values of the 'caption-side' property, which will cause the caption box to not be block-level. Rather, the belief expressed in  is that 17.4 defines that table captions are block-level in CSS21, so that this forwards-incompatible information is restricted to the very chapter ("module") that will introduce the breaking change (and simultaneously remove the statement that table captions are block-level) at some future level.
However, 17.4 in fact fails to define table captions to be block-level elements. Rather, it says:
# [...] The caption boxes are block-level boxes [...].
It is not enough to put this down to the familiar box vs element informality in the spec, since both the quoted statement for boxes and the analogous statement for elements are simultaneously true.
17.4 needs to define table captions as block-level elements, since the spec is written under the assumption that the "level" of each element type is known.
Conversation begins: http://lists.w3.org/Archives/Public/www-style/2010Jul/0519.html (middle part)
Bug description: http://lists.w3.org/Archives/Public/www-style/2010Aug/0029.html
A fix to this issue is incorporated into Proposal F (Comment no.6) of Bug 18346 which the WG resolved to accept (Comment no.7 therein).
Specifically, since caption boxes in CSS21 can only arise from caption elements, and since Proposal F states that the caption boxes are necessarily principal block-level boxes, the caption elements become block-level elements because Proposal F defines a block-level element to be an element which generates a principal block-level box.
Hence this issue is resolved with no additional spec changes needed.