[css3-gcpm] applicability of 'string-set' within display:none

The css3-gcpm spec is quite explicit that 'string-set' still applies
even for elements with 'display:none' (and presumably all descendants of
display:none elements).

Having 'string-set' take effect on elements where 'counter-increment'
doesn't take effect seems a little strange: an author familiar with one
of the two would be surprised by the behaviour of the other.  I'm also
slightly concerned by the fact that it can lead to a page heading that
uses a different section's section number.

At an implementation level, the fact that 'string-set' is said to take
effect even on display:none elements (and presumably all of their
descendants) requires machinery for determining what page each string-set
element within the display:none element falls on.  I'm not aware of any
other feature in CSS that requires retaining placeholders for
display:none elements.  I'd also be concerned about the effect on
anonymous table object processing: presumably these placeholders for
display:none elements would affect anonymous table object creation in the
same way that abspos placeholders do, which I expect would not be a
welcome result.

Without having heard the motivation for having string-set apply despite
display:none, I would suggest that css3-text add a rule saying that
'string-set' has no effect on display:none elements or their descendants
(including elements that are specified as being treated as if they had
display:none, such as children of display:table-column elements).

Authors who want to set a named string while hiding the corresponding
element can hide the heading in other ways than using display:none
(and the hidden heading can be made out of flow if margins are an issue).

pjrm.

Received on Friday, 7 October 2011 04:52:20 UTC