region
Le contenu de la page devrait se trouver dans une région landmark
Vérifie que le contenu situé sous <body> est contenu dans une région landmark.
Applicabilité. S’applique à une page dont le <body> a du contenu : en dehors de tout landmark, un élément doté de son propre texte ou d’un aria-label, un <img>, <video>, <audio>, <canvas>, <object> ou <embed>, ou un <input> d’un type autre que type="hidden" ; ou un landmark qui contient quoi que ce soit. Les régions live, les boîtes de dialogue, les boutons, les <svg>, les <iframe>/<frame> et les liens d’évitement résolubles ne sont pas du contenu qui a besoin d’un landmark. Pas tant qu’une boîte de dialogue modale est ouverte : le reste de la page est alors inerte, si bien que l’analyse voit la boîte de dialogue, pas la page. Le contenu ciblé par excludeSelectors (global ou propre à cette règle) est laissé de côté, et une lacune signalée ne l’englobe jamais. 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. Chaque élément de contenu de premier niveau de la page se trouve dans une région landmark (main, navigation, banner, contentinfo, complementary, region, form, search), afin que les utilisateurs de technologies d’assistance qui naviguent par landmarks ne manquent pas un contenu qui n’a jamais été placé dans l’une d’elles.
Exemples
<body><main><p>Everything lives inside a landmark.</p></main></body>
Tout le contenu de la page se trouve dans une région landmark.
<body><p>Stray paragraph, not inside any landmark.</p></body>
Ce paragraphe se trouve directement sous <body>, en dehors de tout landmark.
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.
CONTENT_OUTSIDE_LANDMARK
- Repérez sur la page le contenu indiqué par le rapport (ou l’iframe).
- Ouvrez le panneau Accessibilité des outils de développement, ou la liste des repères d’un lecteur d’écran, et voyez quel repère le contient, s’il y en a un.
- Déterminez s’il a sa place dans un repère existant (header, nav, main, footer, aside) ou s’il est en dehors de tous.
Réussite. Le contenu se trouve dans un repère, ou c’est un élément qui n’en a pas besoin (comme un lien d’évitement ou une boîte de dialogue).
Échec. Du vrai contenu de la page se trouve en dehors de tout repère : les personnes qui naviguent par repères peuvent le manquer (bonne pratique, ARIA11).