edubun
Français

Utiliser une page au clavier

Débranche la souris et appuie sur Tab : chaque lien, bouton et champ doit s'allumer à son tour, dans l'ordre où tu lis la page.

Qui utilise le clavier

Beaucoup de gens ne touchent jamais une souris. Certains ne peuvent pas la tenir sans trembler ; d'autres utilisent un contacteur, une baguette buccale ou une reconnaissance vocale qui envoie des frappes ; les utilisateurs de lecteurs d'écran se déplacent eux aussi surtout au clavier. Le critère de succès 2.1.1 Clavier des WCAG 2.2, de niveau A, dit que tout ce qui est sur la page doit fonctionner au clavier. Le critère 2.1.2 Pas de piège au clavier ajoute que si le focus peut entrer dans une partie de la page, il doit pouvoir en ressortir au clavier.

Les touches habituelles. Tab avance, Maj+Tab recule, Entrée suit un lien ou appuie sur un bouton, Espace appuie sur un bouton ou coche une case, les flèches se déplacent dans les groupes de boutons radio et les menus.

Utiliser des éléments qui fonctionnent déjà

Les liens avec un href, button, input, select et textarea peuvent recevoir le focus d'emblée et réagissent aux bonnes touches. Un div avec un gestionnaire de clic, non : on ne peut pas l'atteindre avec Tab, Entrée ne fait rien, et un lecteur d'écran ne l'annonce pas comme un bouton. Le conseil de MDN est simple. N'utilise pas tabindex pour faire jouer à un div le rôle d'un bouton ; utilise l'élément button, qui a déjà son rôle et son comportement au clavier.

L'ordre du focus et tabindex

L'ordre de Tab suit l'ordre des éléments dans le code source HTML. Le critère 2.4.3 Parcours du focus demande que cet ordre préserve le sens et l'utilisation de la page : la façon la plus simple de corriger un ordre étrange est donc de réorganiser le HTML. MDN distingue trois sortes de valeurs de tabindex. Zéro place un élément dans l'ordre normal. Une valeur négative, en général -1, le retire de l'ordre de Tab mais permet encore à un script d'appeler focus() sur lui, ce qui est utile pour une boîte de dialogue ou un message d'erreur. Une valeur positive force l'élément avant tout le reste, et MDN recommande de n'utiliser que 0 et -1, car les valeurs positives rendent l'ordre difficile à suivre.

Voir où l'on se trouve

Les utilisateurs du clavier doivent voir quel élément a le focus. Le critère 2.4.7 Visibilité du focus, de niveau AA, demande un indicateur de focus visible : une règle de style comme outline: none sans rien pour la remplacer est donc un échec. Les WCAG 2.2 ont ajouté deux critères liés. Le critère 2.4.11 Focus non masqué (minimum), de niveau AA, dit que l'élément qui a le focus ne doit pas être entièrement caché derrière quelque chose ajouté par l'auteur, comme un pied de page fixe ou un bandeau de cookies. Le critère 2.5.8 Taille de la cible (minimum), lui aussi AA, demande que ce sur quoi on clique ou on appuie mesure au moins 24 sur 24 pixels CSS, ou ait assez d'espace autour.

Un motif de plus aide énormément : le lien d'évitement. Sur un site au long menu, les utilisateurs du clavier doivent passer avec Tab par chaque élément du menu sur chaque page. Un lien placé en premier dans la page, qui pointe vers le contenu principal, leur permet de sauter le menu en une seule touche. Il peut rester masqué visuellement jusqu'à ce qu'il reçoive le focus.

Le test prend deux minutes. Clique dans la barre d'adresse, puis appuie plusieurs fois sur Tab pour parcourir toute la page. Vérifie que chaque commande est accessible, que l'ordre correspond à l'ordre de lecture, que tu vois toujours où est le focus, et qu'Entrée et Espace font ce que ferait un clic de souris. Appuie ensuite sur Maj+Tab pour revenir. Toute commande impossible à atteindre, ou tout endroit où le focus disparaît, est un bug.

WCAG 2.1.1Clavier (A) : tout fonctionne au clavier
WCAG 2.1.2Pas de piège au clavier (A)
WCAG 2.4.7Visibilité du focus (AA)
WCAG 2.4.11Focus non masqué (minimum), AA, nouveau dans la version 2.2
WCAG 2.5.8Taille de la cible (minimum) : 24 sur 24 px CSS, AA
tabindex="-1"Hors de l'ordre de Tab, peut recevoir le focus par script
L'essentiel
  • Tout doit fonctionner au clavier, sans piège (2.1.1, 2.1.2).
  • Utilise button et a href plutôt que des div cliquables.
  • L'ordre de Tab suit le HTML ; n'utilise que tabindex 0 et -1.
  • Garde le focus visible et non masqué ; des cibles d'au moins 24 sur 24 px CSS.
  1. Quelle touche déplace le focus vers l'élément suivant ?
  2. Un div a un gestionnaire onclick. Qu'est-ce qui ne va pas ?
    • On ne peut ni l'atteindre ni l'activer au clavier
    • Il est trop lent
    • On ne peut pas le mettre en forme
    • Rien
  3. Que fait tabindex="0" ?
    • Il ajoute l'élément à l'ordre de Tab normal
    • Il le place en premier dans l'ordre de Tab
    • Il le retire de l'ordre de Tab
    • Il le désactive
  4. Quelles valeurs de tabindex MDN recommande-t-il ?
    • Seulement 0 et -1
    • N'importe quel nombre positif
    • De 1 à 10
    • Aucune, jamais
  5. Une feuille de style met outline: none sur chaque élément qui a le focus. Quel critère échoue ?
    • 2.4.7 Visibilité du focus
    • 1.1.1 Contenu non textuel
    • 1.4.3 Contraste (minimum)
    • 3.3.2 Étiquettes ou instructions
  6. Quelle taille minimale de cible, en pixels CSS par côté, demande le critère 2.5.8 ?
  7. Un bandeau de cookies fixe recouvre entièrement le bouton qui a le focus. De quel critère des WCAG 2.2 s'agit-il ?
    • 2.4.11 Focus non masqué (minimum)
    • 2.4.3 Parcours du focus
    • 2.1.2 Pas de piège au clavier
    • 1.4.11 Contraste du contenu non textuel
  8. Que fait un lien d'évitement ?
    • Il fait sauter les menus répétés pour aller au contenu principal
    • Il saute la page suivante
    • Il masque les images
    • Il désactive le clavier
  9. Quelle touche coche une case qui a le focus ?
    • Espace
    • Tab
    • Échap
    • Maj
  10. Le focus entre dans un composant et Tab ne permet plus d'en sortir. Quel critère échoue ?
    • 2.1.2 Pas de piège au clavier
    • 2.4.6 En-têtes et étiquettes
    • 1.4.1 Utilisation de la couleur
    • 2.5.8 Taille de la cible
Sources de ce cours (9)
  • W3C, Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation first published 5 October 2023, current edition 12 December 2024 (w3.org/TR/WCAG22/, checked 2026-10-17, rechecked 2026-10-18)
  • W3C WAI, What's new in WCAG 2.2 (w3.org/WAI/standards-guidelines/wcag/new-in-22/, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree/, checked 2026-10-17)
  • W3C, Using ARIA (w3.org/TR/using-aria/, Discontinued Draft 24 February 2026, rules 1 to 4, checked 2026-10-17)
  • W3C WAI-ARIA Authoring Practices Guide, Read Me First, "No ARIA is better than bad ARIA" (w3.org/WAI/ARIA/apg/practices/read-me-first/, checked 2026-10-17)
  • MDN Web Docs, tabindex (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex, checked 2026-10-17)
  • MDN, Heading elements, accessibility notes (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements, checked 2026-10-17)
  • MDN, autocomplete attribute (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete, checked 2026-10-17)
  • Every code exercise was checked with a Playwright probe against a reference solution.

Consulté le: 2026-10-17