[css-display] Splitting display-box

Tab and I were just discussing some feedback on the display-box property,
which currently takes
   display-box: normal | none | contents;

The problem here is that the property that does box-discarding needs to
be independent of the properties that do anything else. That was the
entire point of splitting 'display-box' from 'display'. But the 'contents'
value violates this design goal.

Our proposal is to move the 'contents' value out of 'display-box' and
put it as a value of 'display-outside' and as a value of the shorthand
'display' property. This makes sense, because 'display: contents' is
mutually exclusive with 'display: anything-else'.

   display-outside: block-level | inline-level | none | contents | ...
   display: ... | contents


The second part of the proposal is that 'display-box' would be
restricted, now and in the future, to various ways to hide the box,
and perhaps renamed to make its narrow focus more clear. E.g.

   box-suppress: show | hide | discard

   show - show the box, as normal
   discard - remove the box from the formatting tree, same as the
             'display: none' behavior; 'discard' is much clearer
             about this than 'none'
   hide - visually behaves like 'display: none', except the element
          still maintains animations, increments counters, etc.
          useful for dynamic effects

Note that interactions with Speech and the 'speak' property would
need to be considered.

~fantasai

Received on Wednesday, 2 July 2014 08:22:08 UTC