HTML5 dispose d'un nouvel attribut global, hidden
qui peut être utilisé pour masquer le contenu.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
Le CSS dispose de la display:none
qui peut également être utilisée pour masquer du contenu.
article { display:none; }
Visuellement, ils sont identiques. Quelle est la différence sur le plan sémantique ? Sur le plan informatique ?
Quelles sont les lignes directrices à prendre en compte pour savoir quand utiliser l'un ou l'autre ?
TIA.
EDITAR : En me basant sur les réponses de @newtron (ci-dessous), j'ai fait plus de recherches. Les hidden
a fait l'objet d'une vive controverse l'année dernière et a (apparemment) à peine été intégré dans la spécification HTML5. Certains ont affirmé qu'il était redondant et qu'il n'avait pas d'utilité. D'après ce que je peux dire, l'évaluation finale est la suivante : Si je vise uniquement les navigateurs web, il n'y a pas de différence. (Une page affirmait même que les navigateurs web utilisaient le format display:none
pour mettre en œuvre l'attribut caché). Mais si je tiens compte de l'accessibilité (par exemple, si je souhaite que mon contenu soit lu par des lecteurs d'écran), il y a une différence. La règle CSS display:none
peut cacher mon contenu aux navigateurs web, mais une règle aria correspondante (par ex, aria-hidden="false"
) pourrait essayer de le lire. Je suis donc d'accord pour dire que la réponse de @newtron est correcte, même si elle n'est peut-être (sans doute) pas aussi claire que je le souhaiterais. Merci @newtron pour votre aide.
6 votes
Je ne savais même pas que le
hidden
existe, mais il s'agit certainement d'une bonne question, car son utilisation semble violer la séparation entre la structure et la présentation.0 votes
Pour ceux qui n'ont pas encore eu la joie de lire la spécification HTML5 sur cet attribut : w3.org/TR/html5/editing.html#l'attribut-caché
0 votes
w3.org/html/wg/wiki/ChangeProposals/removehidden
0 votes
Lisez-le déjà, @Yigit. C'est aussi vieux de plus d'un an. Et hidden est toujours dans la spécification. Cela m'indique que la proposition n'a pas fait de convertis.
0 votes
Merci pour la modification. Désolé, ce n'était pas clair ! Les informations que vous avez ajoutées ci-dessus sont excellentes. +1