Previous discussion:

On Wed, Apr 30, 2014 at 6:01 AM, Anne van Kesteren <> wrote:

> >> <div hidden></div>
> >>
> >> Per spec, the div should be shown right? I imagine there is no way back
> on
> >> that?
> We could change the specification to use display-box instead. That might
> work.

It's too bad that display-box also has multiple uses--it doesn't only
display or hide the content, it has a third "contents" mode.  That means
the same problem would happen as soon as you set "display-box: contents" on
something--it would override [hidden].  What we really need is a CSS
property that only sets whether the element is visible or not and nothing
else, like "visible: false".  That way, the only way [hidden] gets
overridden is if you're actually setting the visibility style.

I assume it's too late to change the style [hidden] uses, though.  Lots of
pages do things like "d =; = "block";
width =; = d;" to work around
offset* being 0 while hidden, and if [hidden] changes to some other style
(or to !important) that code will break.

I always just put [hidden] { display: none !important; } in my stylesheets
to work around this.  That sucks, since it makes [hidden] in pages and
scripts I write incompatible with everyone else, who may be writing scripts
that don't understand this (such as the above pattern), or may work around
it in some other way.

Glenn Maynard

Reply via email to