bypass-blocks-present

La page doit permettre de contourner les blocs répétés

manualWCAG 2.4.1 (A)confiance : mediumgravité : moderateoperable

Vérifie que la page dispose d’au moins un mécanisme de contournement de blocs reconnu par WCAG 2.4.1 : un repère main, un lien d’évitement fonctionnel, ou un titre.

Applicabilité. Toujours applicable à tout document HTML doté d’un élément <body> : le « contournement de blocs » concerne toute la page, sur le même modèle qu’aria-hidden-body / page-title-present, qui évaluent directement le document plutôt qu’une racine délimitée. 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. Un élément personnalisé auquel ses ElementInternals donnent le rôle main ou heading (this.attachInternals().role) compte comme un <main> ou un titre.

Attendu. Au moins l’une des techniques WCAG 2.4.1 reconnues suivantes est présente : (a) un repère main (<main>, ou un élément dont l’attribut role se résout en main : le premier vrai jeton de rôle, sans tenir compte de la casse), ARIA11 : un utilisateur de lecteur d’écran peut y sauter directement, contournant en une seule étape tout ce qui précède (nav, en-tête, blocs répétés) ; (b) un lien d’évitement fonctionnel, technique G1 : un <a href="#id"> (ou l’ancien <a name="id">) dont le nom se lit comme un lien d’évitement dans l’une des langues fournies (helpers.hasSkipLinkWording, comme pour skip-link) et dont la cible se résout vers un élément réel dans l’arbre du lien lui-même (light DOM ou la même shadow root), en dehors de tout landmark de navigation ou complementary (<nav>, <aside>, ou le rôle) : un lien vers le menu ou une barre latérale ne mène à aucun contenu principal. Il n’a pas besoin d’être placé avant un <nav> ni d’être le premier dans l’ordre du focus clavier ; (c) au moins un titre (<h1>-<h6>, ou un rôle qui se résout en heading) à la fois inclus dans l’arbre d’accessibilité ET visible (ni hors écran, ni découpé, ni en opacity:0, ni de taille nulle avec overflow masqué, ni dessiné entièrement au-dessus du haut de la page ou à gauche de son début, là où aucun défilement n’arrive), et en dehors de tout landmark de navigation ou complementary, technique H69 : la navigation par titres est elle-même un mécanisme de contournement reconnu par les normes (p. ex. la commande « sauter au titre suivant » d’un lecteur d’écran), mais l’Expectation d’ACT 047fe0 exige aussi la visibilité, car un titre réservé aux lecteurs d’écran ne laisse aux personnes voyantes qui naviguent au clavier aucun moyen équivalent de repérer le début du contenu non répété. H69 place des titres au début de chaque section de contenu : un titre à l’intérieur de la navigation coiffe le bloc répété, et y sauter n’évite rien (ACT 047fe0, Failed Example 4).

Exemples

pass
<body>
<nav>Site nav</nav>
<main>Primary content</main>
</body>

Un repère main existe, un mécanisme de contournement reconnu.

can't tell
<body>
<nav>Site nav</nav>
<div>Primary content, no landmark, no heading, no skip link.</div>
</body>

Aucun repère main, lien d’évitement fonctionnel ni titre visible n’a été détecté. C’est une invitation à vérifier, pas un échec, car le moteur ne peut pas confirmer à partir d’un seul instantané que la page n’a réellement aucun mécanisme de contournement.

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.

BYPASS_MECHANISM_ABSENT

  1. Fermez toute boîte de dialogue ou superposition, puis regardez si la page répète des blocs, comme un en-tête ou un menu, présents sur d’autres pages du site.
  2. Cliquez dans la barre d’adresse et appuyez sur Tab : vérifiez si un lien d’évitement apparaît et déplace le focus au-delà des blocs répétés, vers le contenu principal.
  3. Cherchez des titres au début du contenu principal, ou un repère main, dans le panneau Accessibilité ou dans les listes des titres et des repères d’un lecteur d’écran.

Réussite. La page n’a pas de blocs répétés, ou propose un lien d’évitement fonctionnel, un repère main ou des titres qui permettent de les sauter.

Échec. Les blocs répétés ne peuvent pas être sautés : les utilisateurs du clavier et de lecteur d’écran doivent les parcourir sur chaque page, ce qui ne respecte pas le critère WCAG 2.4.1.

Voir le code source