empty-heading
Les titres ne doivent pas être vides
Vérifie que les éléments de titre (<h1>-<h6> ou role="heading") ont un nom accessible non vide.
Applicabilité. S’applique aux éléments ayant un rôle de titre : <h1>-<h6> natifs, ou tout élément dont l’attribut role se résout en heading (le premier jeton désignant un rôle connu, sans tenir compte de la casse, donc role="foo heading" compte). Un titre natif garde son rôle lorsqu’aucun jeton n’est un rôle connu, et le perd au profit de tout autre rôle résolu. Un <hx> natif marqué role="none" ou "presentation" reste un titre lorsqu’il peut recevoir le focus ou porte un attribut ARIA global, car la résolution des conflits des rôles de présentation de WAI-ARIA amène alors les navigateurs à ignorer ce rôle. Un élément personnalisé auquel ses ElementInternals donnent le rôle heading (this.attachInternals().role), sans attribut role qui en nomme un autre, compte comme un élément natif doté de ce rôle.
Attendu. Le titre a un nom accessible non vide : aria-label, aria-labelledby, contenu textuel visible non masqué aux technologies d’assistance, ou (en dernier recours) un attribut title. Un titre vide est annoncé comme « titre, niveau N » sans rien d’autre, ce qui est déroutant quand on navigue par titres. Signalé en fail bien qu’aucun critère WCAG ne soit revendiqué : un titre vide est en soi l’obstacle, comme le traite la règle ACT ffd0e9. Un titre dont le nom peut venir d’un contenu qu’aucun script ne peut lire (une shadow root fermée, un contenu imbriqué trop profondément, un élément personnalisé qui se nomme par ses ElementInternals) donne lieu à une question à la place, comme dans les règles *-name-present.
Exemples
<h2>Section title</h2>
Le titre a un contenu textuel visible.
<h2></h2>
Le titre n’a aucun nom accessible : un lecteur d’écran n’a rien à annoncer.
Comment vérifier
Quand cette règle ne peut pas trancher, elle renvoie cantTell et laisse la question à une personne. Chaque question qu’elle peut poser figure ici sous son code de raison, avec les étapes pour y répondre. Un constat porte les mêmes étapes dans howToCheck, dans la langue de l’analyse. Voir Schéma de sortie.
name_closedContent
- Repérez le titre indiqué par le rapport et notez le texte ou l’icône affiché à l’écran.
- Ouvrez le panneau Accessibilité des outils de développement du navigateur et lisez le nom accessible de l’élément, que le navigateur tire d’un contenu qu’aucun script ne peut lire.
- Avec un lecteur d’écran, placez-vous sur l’élément et écoutez le nom annoncé.
Réussite. L’arbre d’accessibilité montre un nom pour le titre, tiré de son contenu, et le lecteur d’écran l’annonce.
Échec. Le titre n’a pas de nom dans l’arbre d’accessibilité, car son contenu n’en donne aucun, ce qui va à l’encontre de la bonne pratique selon laquelle les titres ont un contenu (ACT ffd0e9).
name_contentTooDeep
- Repérez le titre indiqué par le rapport et notez le texte affiché à l’écran.
- Ouvrez le panneau Accessibilité des outils de développement du navigateur et lisez le nom accessible de l’élément, que le navigateur tire de tout son contenu imbriqué.
- Avec un lecteur d’écran, placez-vous sur l’élément et écoutez le nom annoncé.
Réussite. L’arbre d’accessibilité montre un nom pour le titre, tiré de son contenu imbriqué, et le lecteur d’écran l’annonce.
Échec. Le titre n’a pas de nom dans l’arbre d’accessibilité, car son contenu n’en donne aucun, ce qui va à l’encontre de la bonne pratique selon laquelle les titres ont un contenu (ACT ffd0e9).
name_internals
- Inspectez le titre indiqué par le rapport, un élément personnalisé, et notez son rôle.
- Ouvrez le panneau Accessibilité des outils de développement du navigateur et lisez le nom accessible de l’élément.
- Avec un lecteur d’écran, placez-vous sur l’élément et écoutez le nom annoncé.
Réussite. L’arbre d’accessibilité montre un nom pour le titre, défini par ses internals ou autrement, et le lecteur d’écran l’annonce.
Échec. Le titre n’a pas de nom dans l’arbre d’accessibilité et le lecteur d’écran n’annonce que son rôle, ce qui va à l’encontre de la bonne pratique selon laquelle les titres ont un contenu (ACT ffd0e9).