web-dev-qa-db-fra.com

nav role = navigation

Je suis un peu confus avec les rôles. Si j'ai dans ma page une navigation qui est enfermée dans un élément nav et spécifiez un role="navigation".

<nav role="navigation">
    ...
</nav>

N'est-il pas déjà sémantiquement explicite que la section nav est la navigation?

Ou si j'ai d'autres sections de navigation sur ma page et que je spécifie le rôle pour une seule d'entre elles, cette section devient la plus importante d'une page? Et ceux sans role="navigation" des navigations ennuyeuses?

30
Artem Svirskyi

Il est vrai que la plupart des navigateurs/technologies modernes reconnaissent le HTML5 <nav> élément que la navigation et lui accorder la même attention. Mais en définissant explicitement le role="navigation" L'attribut s'assure simplement que beaucoup plus de technologies peuvent le récupérer.

Par exemple, les lecteurs d'écran et autres technologies pour les utilisateurs handicapés sont très rarement entièrement conformes aux normes (surtout s'ils doivent fonctionner jusqu'à IE6 ou inférieur!). le plus d'utilisateurs possible.

De plus (et ce n'est qu'une supposition), certains des moteurs de recherche moins connus peuvent ne pas encore pleinement reconnaître HTML5, donc l'ajout de ces rôles devrait aider à l'exploration des sites.

29
Mike Parsons

Jetez un oeil à cela du W3C. Ça dit:

Dans la majorité des cas, la définition d'un rôle ARIA et/ou d'un attribut aria- * qui correspond à la sémantique ARIA implicite par défaut est inutile et déconseillé car ces propriétés sont déjà définies par le navigateur.

Ce faisant <main role="main"> est inutile et déconseillé . Cela dit, les exemples de la barre de navigation de Bootstrap (que tout le monde, y compris moi, copiez-collez) sont fournis avec <nav role="navigation">.

Pour être honnête, je ne sais pas ce qui est correct.

16
Albert Vila Calvo

Le W3C recommande: "Cependant, afin de rendre la structure plus accessible aux agents utilisateurs qui prennent en charge ARIA et de garantir que les agents utilisateurs qui ne prennent pas en charge HTML5 peuvent également comprendre la structure, l'ajout du rôle ARIA =" navigation "est conseillé. " https://www.w3.org/WAI/GL/wiki/Using_HTML5_nav_element

4
Hans Grimm