landmark-no-duplicate-main

La page ne doit pas contenir plus d’un landmark main

manualconfiance : mediumgravité : minoroperable

Vérifie que la page contient au plus un landmark main (role="main" ou <main>).

Applicabilité. S’applique dès que la page contient au moins un landmark main (role="main" explicite, ou <main> implicite). Un élément personnalisé auquel ses ElementInternals donnent un rôle de landmark (this.attachInternals().role), sans attribut role qui en nomme un autre, est un landmark au même titre qu’un élément natif doté de ce rôle.

Attendu. La page contient au plus un landmark main. Décision distincte et atomique par rapport à landmark-one-main (landmark-one-main signale aussi l’absence de main ; la présente règle ne signale que la présence de plusieurs).

Ce que rapporte un constat.

  • count : le nombre de landmarks main que la page expose aux technologies d’assistance, pour une limite de 1.

Ces champs de data.details aident à lire et à reproduire un constat. À part reasonCode et les quelques champs que la page Schéma de sortie donne comme stables, ils ne constituent pas un contrat stable : un champ peut être renommé ou supprimé dans une version mineure, ne vous appuyez donc pas dessus.

Exemples

pass
<body>
<main>Only one</main>
</body>

Il n’existe qu’un seul landmark main.

can't tell
<body>
<main>First</main>
<main>Second</main>
</body>

Deux éléments <main> sont tous deux exposés aux technologies d’assistance comme landmarks main.

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.

LANDMARK_DUPLICATE_MAIN

  1. Ouvrez la liste des repères d’un lecteur d’écran, ou le panneau Accessibilité, et comptez les repères main.
  2. Pour chacun de ceux qu’indique le rapport, déterminez lequel contient le contenu principal de la page.
  3. Vérifiez que tout autre main est masqué (attribut hidden) lorsqu’il ne correspond pas à la vue en cours.

Réussite. Les technologies d’assistance ne trouvent qu’un seul repère main, autour du contenu principal de la page.

Échec. Plusieurs main sont exposés : les utilisateurs ne peuvent pas savoir lequel est le contenu principal, un manquement aux bonnes pratiques selon le rôle WAI-ARIA main et la règle HTML d’un seul main visible.

Règles associées

Voir le code source