53 votes

Qu'est-ce que l'attribut de rôle XHTML ? A quoi sert-il ?

J'ai lu Page du W3C sur ce sujet, mais c'est toujours aussi vague pour moi. Est-ce que le role le but de l'attribut pour clarifier le code ? Ou sera-t-il interprété par certains navigateurs ou araignées ?

Peut-on l'utiliser comme un sélecteur DOM à l'aide de certaines bibliothèques JavaScript (je pense que c'est le cas puisque l'option id doit être unique, cela pourrait être utilisé pour identifier plusieurs ressources sur une page) ?

50voto

Robert Harvey Points 103562

La version courte :

L'attribut Role peut donner aux futurs navigateurs un moyen de travailler intelligemment avec certains éléments XML de manière indépendante du dispositif. Par exemple, une liste non ordonnée marquée par l'attribut role de "navigation" peut être interprétée intelligemment sur les navigateurs des environnements de bureau et de poche, ce qui permet de l'afficher clairement dans les deux environnements.

La version longue :

L'attribut XHTML Role défini dans cette spécification permet à l'auteur d'annoter les langages XML avec des informations sémantiques extractibles par machine sur le but d'un élément. Les cas d'utilisation comprennent l'accessibilité, l'adaptation des dispositifs, le traitement côté serveur et la description de données complexes.

Cet attribut décrit le(s) rôle(s) que joue l'élément actuel dans le contexte du document. Il peut être utilisé, par exemple, par des applications et des technologies d'assistance pour déterminer la finalité d'un élément . Cela pourrait permettre à un utilisateur de prendre des décisions éclairées sur les actions à entreprendre sur un élément et d'activer l'action sélectionnée dans un système de gestion de l'information. indépendant du dispositif . Il pourrait également être utilisé comme un mécanisme pour annoter des parties d'un document dans une manière spécifique au domaine (par exemple, une taxonomie des termes juridiques).

Exemple :

<ul role="navigation sitemap">
    <li href="downloads">Downloads</li>
    <li href="docs">Documentation</li>
    <li href="news">News</li>
</ul>

Étant donné que le groupe de travail XHTML2 cessera d'exister à la fin de l'année, il n'y a aucune chance que cette spécification atteigne un jour le statut de publication sous une forme qui ressemble à sa forme actuelle. http://www.w3.org/News/2009#entry-6601

32voto

Alohci Points 30645

Le document auquel vous faites référence fait partie des travaux du groupe de travail XHTML 2, aujourd'hui interrompu. Il est effectivement obsolète.

Le HTML5/XHTML5 a également une role attribut. Sa définition est similaire mais un peu plus limitée - son objectif est d'indiquer les rôles ARIA (Accessible Rich Internet Applications), afin que les technologies d'assistance telles que les lecteurs d'écran puissent mieux informer les utilisateurs sur l'objectif des composants de l'interface utilisateur (widgets), et également les aider à naviguer plus facilement dans la page Web.

La liste des rôles valides pour ARIA est disponible à l'adresse suivante http://www.w3.org/TR/wai-aria/#roles

0voto

Alice Wonder Points 322

Peut être utilisé pour l'accessibilité. D'après ce que j'ai compris, l'attribut role doit être évité lorsque la sémantique le permet. Utilisation de <nav role="navigation">...</nav> par exemple, est déconseillé car le nav élément sémantique implique déjà la navigation.

Mais il y a des cas où elle est utile. Une image qui est un lien, par exemple, peut avoir role="link" tabindex="0" afin d'aider les lecteurs d'écran et les autres technologies d'assistance à comprendre qu'il s'agit d'un lien (assurez-vous d'écouter l'événement de frappe de la touche Entrée et l'événement de clic).

Ou sur une image, vous pouvez avoir role="button" pour indiquer que l'image agit comme un bouton.

L'attribut role permet à l'application Web d'ajouter des éléments sémantiques significatifs pour les navigateurs, mais qui ne peuvent pas être transmis dans le balisage sans être spécifiés.

Il existe souvent un moyen sémantiquement correct de le faire sans recourir à l'attribut, mais il est là quand vous en avez besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X