HTML5 a un nouvel attribut global hidden
, qui peut être utilisé pour masquer le contenu.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSS a la display:none
règle, qui peut également être utilisée pour masquer le contenu.
article { display:none; }
Visuellement, ils sont identiques. Quelle est la différence sémantiquement? Sur le plan informatique?
Quelles directives dois-je prendre en compte pour savoir quand utiliser l'un ou l'autre?
TIA.
EDIT : Sur la base des réponses de @ newtron (ci-dessous), j'ai fait plus de recherches. L' hidden
attribut a été vivement contesté l'année dernière et (apparemment) à peine entré dans la spécification HTML5. Certains ont fait valoir qu'il était redondant et n'avait aucun but. D'après ce que je peux dire, l'évaluation finale est la suivante: si je cible uniquement les navigateurs Web, il n'y a aucune différence. (Une page a même affirmé que les navigateurs Web avaient l'habitude display:none
d'implémenter l'attribut caché.) Mais si je considère l'accessibilité (par exemple, je m'attends à ce que mon contenu soit lu par des lecteurs d'écran), alors il y a une différence. La règle CSS display:none
peut masquer mon contenu des navigateurs Web, mais une règle Aria correspondante (par exemple,aria-hidden="false"
) pourrait essayer de le lire. Ainsi, je suis maintenant d'accord que la réponse de @ newtron est correcte, bien que peut-être (sans doute) pas aussi claire que je pourrais le souhaiter. Merci @newtron pour votre aide.
la source
hidden
attribut existe, mais certainement une bonne question car l'avoir semble violer la séparation structure / présentation.Réponses:
La principale différence semble être que les
hidden
éléments sont toujours masqués quelle que soit la présentation:http://dev.w3.org/html5/spec/Overview.html#the-hidden-attribute
Puisque le CSS peut cibler différents types de médias / présentations,
display: none
dépendra d'une présentation donnée. Par exemple, certains éléments peuvent êtredisplay: none
affichés dans un navigateur de bureau, mais pas dans un navigateur mobile. Ou, être masqué visuellement mais toujours disponible pour un lecteur d'écran.la source