[CSS21][css3-content] counters and table-column / table-column-group

The spec has this to say about the behaviour of counters on
display:table-column[-group] elements:

  Section 17.2:

    # Elements with 'display' set to 'table-column' or
    # 'table-column-group' are not rendered (exactly as if they had
    # 'display: none')

  CSS 2.1 section 12.4.3 and css3-content section 8.3:

    # An element that is not displayed ('display' set to 'none') cannot
    # increment or reset a counter.

I think a person could quite reasonably conclude that
display:table-column[-group] elements ignore their
counter-increment/-reset properties, whereas all UAs I've tested
other than Konqueror do process counter-increment (and I assume
counter-reset) for these elements.

Konqueror behaves strangely for counter increments within a table, so I
hesitate to read much into its results; but in my testing, it honoured
counter-increment on table-column-group but not on table-column.

Children of table-column[-group] that are suppressed by the rules of
17.2.1, on the other hand, don't increment counters in any of the UAs
I've tested.

A very tentative proposal would be:

  - Change "are not rendered (exactly as if ...)" to
    "do not generate any boxes"; and be explicit either 
    that 'counter-reset' and 'counter-increment' still have effect,
    or that their behaviour is undefined.

  - Change "that is not displayed (...)" to
    "whose 'display' has value 'none'".

  - In section 17.2.1, be explicit that those suppressed children
    cannot affect counters.

Those first couple of changes are a bit risky to change at this point
in CSS 2.1.  An alternative would be just to add a sentence to each
that deals just with the interaction between counters and
table-column[-group].

pjrm.

Received on Thursday, 19 May 2011 08:57:39 UTC