Quel est l'attribut de rôle XHTML? Qu'utilisez vous pour ça?

J'ai lu la page du W3C à ce sujet, mais c'est encore vague pour moi. Le but du role est-il de clarifier le code? Ou sera-t-il interprété par certains navigateurs ou araignées?

Peut-il être utilisé comme sélecteur DOM à l'aide de certaines bibliothèques JavaScript (je pense que l'attribut id doit être unique, cela pourrait être utilisé pour identifier plusieurs ressources sur une page)?

    La version courte:

    L'attribut Rôle peut donner aux futurs navigateurs un moyen de travailler de manière intelligente avec certains éléments XML d'une manière indépendante de l'appareil. Par exemple, une liste non ordonnée qui est marquée avec l'attribut de rôle de "navigation" peut être interprétée de manière intelligente sur les navigateurs dans les environnements de bureau et de poche, ce qui lui permet d'être clairement affiché dans les deux environnements.

    La longue version:

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

    L'attribut décrit le (s) rôle (s) que l'élément actuel joue dans le contexte du document. Cela peut être utilisé, par exemple, par des applications et des technologies d'assistance pour déterminer l'objet d'un élément . Cela pourrait permettre à un utilisateur de prendre des décisions éclairées sur les actions susceptibles d'être prises sur un élément et d'activer l'action sélectionnée de manière indépendante du périphérique . Il pourrait également être utilisé comme mécanisme pour annoter des parties d'un document de manière spécifique au domaine (p. Ex., Une taxonomie juridique).

    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 cette année, il n'y a aucune chance que cette spécification atteigne le statut de publication dans quelque chose qui ressemble à sa forme actuelle. http://www.w3.org/News/2009#entry-6601

    Le document auquel vous vous référez fait partie du travail du groupe de travail XHTML 2, maintenant interrompu. Il est effectivement obsolète.

    HTML5 / XHTML5 possède également un attribut "rôle". Sa définition est similaire, mais un peu plus limitée: son objectif est d'indiquer les rôles des applications Internet riches accessibles (ARIA), de sorte que les technologies d'assistance telles que les lecteurs d'écran peuvent mieux informer les utilisateurs sur le but des composants de l'interface utilisateur (widgets) et les aider à naviguer La page Web plus facilement.

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

    Le rôle peut être utilisé pour l'accessibilité. Je crois savoir que l'attribut du rôle devrait être évité là où les sémantiques le rendent clair. L'utilisation de <nav role="navigation">...</nav> par exemple, est découragée car l'élément sémantique du nav implique déjà la navigation.

    Mais il y a des cas où il est utile. Une image qui est un lien, par exemple, peut avoir un role="link" tabindex="0" pour aider les lecteurs d'écran et d'autres technologies d'assistance à comprendre qu'il agit en tant que lien (assurez-vous d'écouter sur l'événement de dérangement pour entrer la clé de saisie Et sur un événement de clic).

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

    L'attribut de rôle permet à l'application Web d'ajouter une sémantique à l'application Web qui est significative pour les navigateurs mais peut ne pas être transmise dans le balisage sans le spécifier.

    Souvent, il existe une façon sémantiquement correcte de le faire sans recourir à l'attribut, mais il est là quand vous en avez besoin.