Question Quel est le but de l'attribut "role" en HTML?


Je continue à voir les attributs de rôle dans le travail de certaines personnes. Je l'utilise aussi, mais je ne suis pas sûr de son effet.

Par exemple:

<header id="header" role="banner">
    Header stuff in here
</header>

Ou:

<section id="facebook" role="contentinfo">
    Facebook stuff in here
</section>

Ou:

<section id="main" role="main">
     Main content stuff in here
</section>

Cet attribut de rôle est-il nécessaire?

Cet attribut est-il meilleur pour la sémantique?

Est-ce que cela améliore le référencement?

Une liste de rôles peut être trouvée ici, mais je vois des gens qui inventent les leurs. Est-ce autorisé ou une utilisation correcte de l'attribut de rôle?

Des pensées à ce sujet?


913
2018-05-01 10:11


origine


Réponses:


La plupart des rôles que vous voyez ont été définis dans le cadre d'ARIA 1.0, puis incorporés ultérieurement dans HTML5. Certains des nouveaux éléments HTML5 (dialog, main, etc.) sont basés sur les rôles ARIA d'origine.

http://www.w3.org/TR/wai-aria/

Il existe deux raisons principales d'utiliser des rôles en plus de votre élément sémantique natif.

Raison # 1. Remplacer le rôle où aucun élément du langage hôte n'est approprié ou, pour diverses raisons, un élément moins sémantiquement approprié a été utilisé.

Dans cet exemple, un lien a été utilisé, même si la fonctionnalité résultante ressemble plus à un bouton qu'à un lien de navigation.

<a href="#" role="button" aria-label="Delete item 1">Delete</a>

Les lecteurs d'écran entendront cela comme un bouton (par opposition à un lien), et vous pouvez utiliser un sélecteur d'attribut CSS pour éviter les erreurs de classe et de div-itis.

*[role="button"] {
  /* style these a buttons w/o relying on a .button class */
}

Raison # 2. Sauvegarde du rôle d'un élément natif pour prendre en charge les navigateurs qui ont implémenté le rôle ARIA mais qui n'ont pas encore implémenté le rôle de l'élément natif.

Par exemple, le rôle "principal" a été pris en charge dans les navigateurs depuis de nombreuses années, mais il s'agit d'un ajout relativement récent au HTML5, de sorte que de nombreux navigateurs ne prennent pas encore en charge la sémantique pour <main>.

<main role="main">…</main>

Ceci est techniquement redondant, mais aide certains utilisateurs et ne nuit à personne. Dans quelques années, cette technique deviendra probablement inutile.

Vous avez également écrit:

Je vois que certaines personnes inventent la leur. Est-ce autorisé ou une utilisation correcte de l'attribut de rôle?

C'est une utilisation valide de l'attribut sauf si un vrai rôle n'est pas inclus. Les navigateurs appliquent le premier rôle reconnu dans la liste des jetons.

<span role="foo link note bar">...</a>

Hors de la liste, seulement link et note sont des rôles valides, et donc le rôle de lien sera appliqué car il vient en premier. Si vous utilisez des rôles personnalisés, assurez-vous qu'ils n'entrent pas en conflit avec un rôle défini dans ARIA ou dans la langue hôte que vous utilisez (HTML, SVG, MathML, etc.)


814
2017-09-06 18:12



Si je comprends bien, les rôles ont été initialement définis par XHTML mais ont été dépréciés. Cependant, ils sont maintenant définis par HTML 5, voir ici: https://www.w3.org/WAI/PF/aria/roles#abstract_roles_header

Le but de l'attribut role est d'identifier dans le logiciel d'analyse la fonction exacte d'un élément (et de ses enfants) dans le cadre d'une application Web. Ceci est principalement une question d'accessibilité pour les lecteurs d'écran, mais je peux également le voir comme étant utile pour les navigateurs intégrés et les scrappeurs d'écran. Pour être utile au client HTML inhabituel, l'attribut doit être défini sur l'un des rôles de la spécification que j'ai liée. Si vous créez le vôtre, cette fonctionnalité «future» ne peut pas fonctionner - un commentaire serait mieux.

Les aspects pratiques ici: http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/


140
2018-05-01 13:10



Cet attribut de rôle est-il nécessaire?

Répondre: Oui.

  • L'attribut de rôle est nécessaire pour prendre en charge les applications Internet riches accessibles. (WAI-ARIA) définir des rôles dans des langages XML, lorsque les langages ne définissent pas leur propre attribut de rôle.
  • Bien que ce soit la raison pour laquelle l'attribut de rôle est publié par le Groupe de travail sur les protocoles et les formats, l'attribut a également des cas d'utilisation plus généraux.

Il vous fournit:

  • Accessibilité
  • Adaptation du périphérique
  • Traitement côté serveur
  • Description des données complexes, ... etc.

9
2017-10-13 07:36