Mode sans média : les images ne sont pas affichées, et celles qui sont chargées à la demande ne sont pas téléchargées. Poids de cette page : —.

Vérifier un aria-label et le nom accessible

Collez un extrait HTML : l’outil calcule le nom accessible de chaque bouton, lien, champ et image, et dit s’il vient d’aria-label, d’aria-labelledby, du label ou du contenu.

Un bouton, un lien, un champ, une image… copiés depuis l’inspecteur du navigateur. Le code n’est ni envoyé, ni exécuté.

Résultat

5 éléments analysés : tous ont un nom, sans remarque.

Les noms accessibles ne sont qu’un des points du RGAA. Le pré-audit gratuit vérifie toute une page : contrastes, titres, formulaires, images… Lancer le pré-audit gratuit

  1. Champ de recherche : nom trouvé

    Nom accessible : « Rechercher un article », donné par l’élément label associé.

    <input id="q" type="search" name="q">

  2. Bouton : nom trouvé

    Nom accessible : « Rechercher », donné par le contenu de l’élément.

    <button type="submit">

  3. Lien : nom trouvé

    Nom accessible : « Contact, écrire à l’équipe », donné par l’attribut aria-label.

    <a href="/contact/" aria-label="Contact, écrire à l’équipe">

  4. Bouton : nom trouvé

    Nom accessible : « Fermer le menu », donné par l’attribut aria-label.

    <button type="button" aria-label="Fermer le menu">

  5. Image : nom trouvé

    Nom accessible : « Ouzom », donné par l’attribut alt.

    <img alt="Ouzom">

Outil gratuit Critères 1.1, 1.2, 2.1, 6.1, 6.2, 7.1, 11.1, 11.2 et 11.9

En bref

Il signale les pièges courants : un aria-label qui contredit le texte visible, un aria-label ignoré, un élément sans nom, un aria-labelledby qui vise un id absent.

  • Le nom accessible est ce que lit un lecteur d’écran pour désigner un bouton, un lien, un champ ou une image. Le navigateur le calcule selon un ordre fixé par le W3C : aria-labelledby, puis aria-label, puis le label, l’alt ou le contenu, et title en dernier recours.
  • aria-label remplace le texte de l’élément : sur un lien ou un bouton, son contenu n’est plus lu.
  • Quand un texte est visible, le nom doit le contenir (WCAG 2.5.3, tests 6.1.5, 11.2.5 et 11.9.2 du RGAA) : une personne qui pilote son ordinateur à la voix dit ce qu’elle voit.
  • aria-label n’est pas fiable sur un div ou un span sans rôle : WAI-ARIA 1.2 interdit de nommer ces éléments, et les navigateurs ne transmettent pas tous ce nom.
  • Tout se passe dans votre navigateur : le code collé n’est ni envoyé, ni exécuté, et ses images ne sont pas chargées.

Limites du verdict : l’outil lit le code collé sans sa feuille de style : un texte masqué par une classe CSS (hors des noms courants comme sr-only ou visually-hidden) ou ajouté par ::before et ::after lui échappe, comme un attribut posé par un script. Il applique AccName 1.2 et HTML-AAM ; un navigateur ou un lecteur d’écran peut s’en écarter sur des cas rares. Il dit d’où vient le nom et s’il contient l’intitulé visible, pas s’il est pertinent : c’est à vous d’en juger.

Toute la page à vérifier ? Lancer l’analyseur gratuit

Comment le navigateur calcule le nom accessible

Le W3C fixe l’ordre dans la spécification AccName 1.2, complétée pour chaque élément HTML par HTML-AAM. Le navigateur prend la première source qui donne un texte, et ignore les suivantes :

  1. aria-labelledby : le texte des éléments dont il cite les id, dans l’ordre, même s’ils sont masqués ;
  2. aria-label, s’il n’est pas vide ;
  3. le langage HTML : le label associé à un champ, l’alt d’une image, le value d’un bouton input, la legend d’un fieldset, le caption d’un tableau, le title enfant d’un svg ;
  4. le contenu, pour les rôles qui l’admettent : lien, bouton, case à cocher, onglet, option, titre… Les textes masqués sont sautés, les images y entrent par leur alt ;
  5. l’attribut title, en dernier recours, puis le placeholder pour un champ de saisie.

aria-label passe donc avant le contenu : il ne s’ajoute pas au texte d’un lien ou d’un bouton, il le remplace. WAI-ARIA 1.2 demande d’ailleurs de ne pas l’utiliser quand le texte existe déjà dans la page : un label pour un champ, un texte pour un bouton se voient et se lisent de la même façon pour tout le monde.

Où aria-label n’est pas fiable

WAI-ARIA 1.2 dresse la liste des rôles qui ne peuvent pas être nommés : generic (un div, un span, un lien sans href), paragraph, strong, emphasis, code, caption, deletion, insertion, subscript, superscript et presentation. Les auteurs ne doivent pas nommer ces éléments : selon le navigateur et le lecteur d’écran, un aria-label posé dessus est transmis ou non, on ne peut donc pas compter sur lui. L’outil le signale, comme un aria-labelledby dont aucun id n’existe dans le code collé, que le navigateur ignore.

Le nom doit contenir le texte visible

Une personne qui pilote son ordinateur à la voix dit « cliquer sur Demander un devis » en lisant l’écran. Si le bouton s’appelle « Contactez-nous » pour les technologies d’assistance, rien ne se passe. Le critère de succès 2.5.3 des WCAG (niveau A) demande donc que le nom contienne le texte affiché, et conseille de commencer par lui. Le RGAA le vérifie pour les liens (test 6.1.5), les étiquettes de champs (test 11.2.5), les boutons de formulaire (test 11.9.2) et les composants scripts (test 7.1.3).

La casse et la ponctuation peuvent différer. Un symbole affiché n’a pas à être repris tel quel : pour un bouton « × », le nom dit la fonction, « Fermer ». L’outil le marque « à vérifier » plutôt qu’en erreur.

Ce que l’outil ne voit pas

  • La feuille de style : un texte masqué par une classe CSS ou ajouté par ::before et ::after change le nom ou le texte visible. L’outil reconnaît hidden, aria-hidden, le style en ligne et les classes courantes (sr-only, visually-hidden, screen-reader-text).
  • Le reste de la page : un aria-labelledby peut viser un élément hors de l’extrait. Collez-le avec.
  • Les scripts : un attribut ajouté après le chargement lui échappe. Copiez le code depuis l’inspecteur du navigateur plutôt que depuis la source.
  • La pertinence : « Bouton » est un nom, mais il ne dit pas ce que fait le bouton. Relisez chaque nom hors de son contexte visuel.

Sources

Accessible Name and Description Computation 1.2 (W3C), en anglais ; WAI-ARIA 1.2, propriété aria-label, en anglais ; WAI-ARIA 1.2, rôles qui ne peuvent pas être nommés, en anglais ; HTML-AAM, calcul du nom accessible par élément HTML, en anglais ; Understanding Success Criterion 2.5.3 Label in Name (W3C), en anglais ; HTML Living Standard (WHATWG), attribut title, en anglais ; RGAA 4.1.2, critère 1.1 (alternative des images) ; RGAA 4.1.2, critère 2.1 (titre des cadres) ; RGAA 4.1.2, critère 6.1 (lien explicite) ; RGAA 4.1.2, critère 6.2 (lien avec un intitulé) ; RGAA 4.1.2, critère 7.1 (composants et scripts) ; RGAA 4.1.2, critère 11.1 (étiquette des champs) ; RGAA 4.1.2, critère 11.2 (étiquette pertinente) ; RGAA 4.1.2, critère 11.9 (intitulé des boutons) .

Page mise à jour le 11 novembre 2026.

Questions fréquentes

Quelle différence entre aria-label et aria-labelledby ?

aria-label porte le nom lui-même, en texte invisible ; aria-labelledby désigne par leur id un ou plusieurs éléments de la page dont le texte devient le nom. aria-labelledby passe en premier quand les deux sont présents. WAI-ARIA 1.2 demande d’utiliser aria-labelledby quand le texte existe déjà dans la page, et de garder aria-label pour les cas où il n’y en a pas, comme un bouton qui n’affiche qu’une icône.

aria-label remplace-t-il le texte d’un bouton ou d’un lien ?

Oui. Dans le calcul du W3C, aria-label passe avant le contenu : un lien « Lire la suite » qui porte aria-label="Article sur le RGAA" est lu « Article sur le RGAA », et la personne qui dit « Lire la suite » à son logiciel de commande vocale ne l’active pas. Le RGAA demande alors que le nom contienne au moins le texte visible (test 6.1.5 pour un lien, 11.9.2 pour un bouton de formulaire).

Peut-on mettre un aria-label sur un div ou un span ?

Pas sans rôle. Un div ou un span a le rôle generic, que WAI-ARIA 1.2 range parmi les rôles qui ne peuvent pas être nommés, avec paragraph, strong, emphasis ou code. Selon le navigateur et le lecteur d’écran, l’aria-label est transmis ou non : il n’est pas fiable. Donnez à l’élément le rôle qui correspond à ce qu’il est (button, img, region…), ou écrivez le texte dans la page.

Le texte visible et l’aria-label peuvent-ils être différents ?

Le nom peut compléter le texte visible, pas le contredire : le critère de succès 2.5.3 des WCAG demande qu’il le contienne, et conseille de commencer par lui. La casse et la ponctuation ne comptent pas. Un symbole affiché, comme × pour fermer ou B pour mettre en gras, est un cas particulier : le nom dit alors la fonction, « Fermer » ou « Mettre en gras ».

aria-label ou title, lequel choisir ?

title n’est utilisé qu’en dernier recours, quand rien d’autre ne donne de nom. La spécification HTML déconseille de s’y fier : beaucoup de navigateurs ne l’affichent qu’en infobulle, au survol de la souris, hors de portée du clavier et du toucher. Pour un champ, préférez un label visible ; pour un bouton à icône, aria-label.

Un audit RGAA, critère par critère

Un outil vérifie un point. L’audit teste à la main les 106 critères sur chaque page de l’échantillon et livre la déclaration d’accessibilité. À partir de 1 500 € HT pour un échantillon de 8 pages.

Voir l’audit RGAA Poser une question

À lire sur le sujet

Outils complémentaires

  • Critères 1.1, 6.2, 7.1 et 11.1 Arbre d’accessibilité d’une page Le rôle, le nom et l’état de chaque élément d’une page, tels que Chromium les transmet aux lecteurs d’écran, et les éléments sans nom.
  • Critères 11.5 et 11.6 Générateur de fieldset et legend Le code d’un groupe de boutons radio, de cases à cocher ou de champs liés, dans un fieldset avec sa légende, prêt à copier.
  • Critère 11.13 Attribut autocomplete HTML La valeur autocomplete d’un champ trouvée par son nom en français, le code du champ, et la vérification d’un formulaire.

Tous les outils gratuits