On Wed, Nov 5, 2014 at 5:07 PM, Bruno Racineux <br...@hexanet.net> wrote: > Those two lines from spec [1] are in conflict: > > "Because this attribute is typically implemented using CSS, it's also > possible to override it using CSS" > > "if something is marked hidden, it is hidden from all presentations" > > The latter is not true as currently implemented. > The former allows a css enabled styled presentation to display a hidden > element, > while browsing with *styles disabled* with have the element hidden (not > displayed) > due to the default browser stylesheet making it so. > > Technically it is therefore *not* hidden form all presentations and > breaks the hidden = aria-hidden accessibility assumptions. I find this > conflicting. > > And allowing a css override, breaks my use case: > > Say, I have a link: <a class="email" hidden>Email</a> . And I only want this > link to > render dynamically and conditionally as a mailto: href with a > 'display:block' style. > I am unable to pre-style my links with a 'display:block', because it cancels > 'hidden', > which makes 'hidden' useless to me here if it wasn't for a *[hidden] { > display: none; } > at the end of my stylesheet. > > I strongly suggest that hidden be made a 'display: none !important' instead > to remedy this confusion. > > [1] https://html.spec.whatwg.org/#the-hidden-attribute
This is intentionally *not* done, so that authors can hide it using whichever technique they wish; in particular, authors need to be able to do a transition of styles when setting/removing 'hidden', like fading it to/from opacity:0. Forcing it to display:none would prevent these kinds of animations. ~TJ