HTML5 verfügt über ein neues globales Attribut, hidden
mit dem Inhalte ausgeblendet werden können.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSS hat die display:none
Regel, mit der auch Inhalte ausgeblendet werden können.
article { display:none; }
Optisch sind sie identisch. Was ist der semantische Unterschied? Computergestützt?
Welche Richtlinien sollte ich beachten, wenn ich die eine oder andere verwenden soll?
TIA.
BEARBEITEN : Basierend auf den Antworten von @ newtron (unten) habe ich mehr gesucht. Das hidden
Attribut wurde letztes Jahr heiß umkämpft und schaffte es (anscheinend) kaum in die HTML5-Spezifikation. Einige argumentierten, es sei überflüssig und habe keinen Zweck. Soweit ich das beurteilen kann, lautet die endgültige Bewertung wie folgt: Wenn ich nur auf Webbrowser abziele, gibt es keinen Unterschied. (Auf einer Seite wurde sogar behauptet, dass Webbrowser display:none
das versteckte Attribut implementiert haben.) Wenn ich jedoch die Barrierefreiheit in Betracht ziehe (z. B. erwarte ich möglicherweise, dass meine Inhalte von Bildschirmlesern gelesen werden), gibt es einen Unterschied. Die CSS-Regel display:none
verbirgt möglicherweise meinen Inhalt vor Webbrowsern, aber eine entsprechende Arienregel (z.aria-hidden="false"
) könnte versuchen, es zu lesen. Daher stimme ich jetzt zu, dass die Antwort von @ newtron richtig ist, obwohl sie vielleicht (wohl) nicht so klar ist, wie ich es gerne hätte. Vielen Dank an @newtron für Ihre Hilfe.
quelle
hidden
Attribut existiert, aber sicherlich eine gute Frage, da es die Trennung von Struktur und Präsentation zu verletzen scheint.Antworten:
Der Hauptunterschied scheint zu sein, dass
hidden
Elemente unabhängig von der Präsentation immer ausgeblendet sind:http://dev.w3.org/html5/spec/Overview.html#the-hidden-attribute
Da CSS auf verschiedene Medien / Präsentationstypen abzielen kann
display: none
, hängt es von einer bestimmten Präsentation ab. Einige Elementedisplay: none
können beispielsweise in einem Desktop-Browser angezeigt werden, jedoch nicht in einem mobilen Browser. Oder visuell versteckt sein, aber dennoch für einen Bildschirmleser verfügbar sein.quelle