- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Thu, 22 Jan 2009 09:34:39 -0500
- To: www-style@w3.org
> So, would a rule 4½ added to the anonymous box generation rules
> http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes
> that states
>
> 4½. If a child T of a 'table', 'inline-table', 'table-row-group',
> 'table-header-group', 'table-footer-group', or 'table-row' box
> is an anonymous inline box that contains only white space, then
> it is treated as if it has "display: none".
>
> solve the problem?
>
> ~fantasai
OK, I'm looking at this again. This might solve the problem but
requires either various lookahead when constructing the rendering tree
or creating, analyzing, and then possibly (and in fact probably)
destroying rendering objects. Further, it requires all this in the
common case (HTML tables).
And I'm not even sure whether it solves the problem, because I can't
tell, by reading this rule, what the correct box tree is for:
<div style="display: table-row">
<span>AAA</span>
<span>BBB</span>
</div>
Is there a space between the "AAA" and "BBB" or not?
The more I look at this section and think about implementing it, the
more poorly-thought-out it seems. So I would like to propose alternate
anonymous box generation rules (loose phrasing; can write up formally if
desired):
1) Suppress all "misnested" boxes except 'table-row' inside 'table'.
2) Wrap runs of 'table-row' inside 'table' in a 'table-row-group'
(needed to deal with XHTML's not requiring a <tbody>).
It feels like this would be much simpler to implement. Interoperability
on this section is already quite poor, so making this change might
actually get us to CR faster. The only question is whether it'll cause
website compat issues.... Are sites relying on the
currently-interoperable behavior? If so, can we loosen the "suppress
everything" condition enough to allow those sites to keep operating
while still keeping the overall thing somewhat sane?
-Boris
Received on Thursday, 22 January 2009 14:35:24 UTC