Focus visible : tester une page au clavier
À partir de l’adresse d’une page, l’outil la parcourt à la touche Tab dans un vrai navigateur et relève chaque élément dont la prise de focus ne se voit pas.
Le moteur ferme le bandeau de cookies quand il le reconnaît, puis presse Tab.
Analyse de : comptez de 10 secondes à une minute.
- Ouverture de la page Notre serveur la charge dans un navigateur. À venir
- Fermeture du bandeau de cookies Quand il est reconnu. À venir
- Parcours à la touche Tab Élément par élément, comme au clavier. À venir
- Comparaison avant et après le focus Contour, couleur, contraste. À venir
Résultat
Exemple : relevé d’une page fictive, www.example.org. Saisissez une adresse pour le remplacer.
1 élément sans focus visible détecté sur 18 éléments atteints, et 1 point à vérifier.
Le focus n’est qu’un des points du RGAA. Le pré-audit gratuit vérifie toute la page : contrastes, titres, formulaires, images… Lancer le pré-audit gratuit
Éléments relevés, des défauts aux points à vérifier
- Défaut probable
Passage n° 1 : Lien « Nos services »
a.menu__lienL’élément ne change pas quand il reçoit le focus : ni contour, ni fond, ni bordure, ni soulignement, ni couleur. Exceptions possibles : un indicateur dessiné sur un parent, comme le cadre d’une carte cliquable, par un pseudo-élément, ou animé par une transition CSS que la mesure devance, ce qui peut donner des verdicts différents à des éléments identiques.
Regardez-le au clavier. Si rien ne se voit, cherchez un outline: none qui le vise et donnez-lui un style :focus-visible.
- À vérifier
Passage n° 2 : Bouton « Rechercher »
button.rechercheUn contour apparaît, mais il contraste à 1,62:1 avec le fond mesuré, pour 3:1 demandé. La mesure peut se tromper : le fond mesuré est celui du premier parent coloré, pas une image, un dégradé ni le fond du bouton sous un contour intérieur, et l’anneau de focus natif du navigateur, bicolore, n’est mesuré que sur l’une de ses couleurs. Le test 10.7.1 accepte ce focus natif tant qu’il n’est ni supprimé ni dégradé.
Regardez l’élément au clavier ; si le contour se voit mal, foncez-le ou ajoutez un autre changement, comme un soulignement ou un fond.
Le numéro donne le rang de passage à la touche Tab.
Le moteur ne dit pas s’il a fait le tour de la page : il presse Tab autant de fois qu’il a compté d’éléments, plus cinq, et les liens d’un cadre intégré (iframe : formulaire, carte, vidéo) ou d’un bandeau ajouté après le chargement consomment ces tabulations sans être jugés. Sur une telle page, la fin peut ne pas avoir été atteinte.
Reste à faire au clavier : vérifier que l’ordre de passage suit la logique de la page (critère 12.8), et ouvrir menus et fenêtres pour tester ce qu’ils contiennent (critère 12.11).
Outil gratuit Critère 10.7
En bref
Il sépare les défauts des points à vérifier à l’œil, et les liste dans l’ordre où le clavier les atteint.
- Le critère 10.7 du RGAA demande que la prise de focus soit visible sur chaque élément qui la reçoit : lien, bouton, champ.
- L’outil presse vraiment la touche Tab, autant de fois qu’il compte d’éléments plus cinq (60 au plus), et compare chaque élément au repos et au focus : contour, ombre, fond, bordure, soulignement, couleur.
- Défaut : un focus retiré par script. Défaut probable : aucun changement sur l’élément, sauf indicateur posé sur un parent. À vérifier : un contour sous 3:1 avec le fond mesuré.
- L’adresse est envoyée à notre moteur d’analyse, qui charge la page le temps du parcours.
Limites du verdict : l’outil juge les éléments atteints à la touche Tab au chargement de la page, sur un écran de 1280 px. Il ne voit pas un indicateur dessiné sur un parent, par un pseudo-élément ou animé par une transition, qui peut donner des verdicts différents à des éléments identiques. Il compte comme visible un contour déjà présent au repos, un changement de couleur à peine perceptible, ou un lien d’évitement resté caché ou hors écran au focus. Il mesure mal un contour dessiné à l’intérieur d’un bouton coloré (outline-offset négatif) et l’anneau natif du navigateur. Il ne juge pas le contenu d’un cadre (iframe), qui peut l’empêcher d’atteindre la fin de la page, et ne dit rien de l’ordre de tabulation (critère 12.8) ni des menus et fenêtres qui s’ouvrent après une action (critère 12.11). Un résultat sans défaut ne remplace pas un parcours au clavier.
Toute la page à vérifier ? Lancer l’analyseur gratuit
Ce que demande le critère 10.7
Le critère 10.7 du RGAA 4.1.2 demande que, dans chaque page, la prise de focus soit visible pour chaque élément qui la reçoit. Son test 10.7.1 est validé si le style du focus natif du navigateur n’est pas supprimé ou dégradé, ou si un style défini par l’auteur est visible. La méthodologie précise ce qu’est « visible » : une indication sur le contour, le fond ou les deux, avec un rapport de contraste de 3:1 au moins.
Le critère correspond au 2.4.7 des WCAG 2.1, de niveau AA. Pour le contraste de l’indicateur, les WCAG renvoient au critère 1.4.11, qui demande 3:1 ; le RGAA pose le même seuil dans son critère 3.3 pour un composant d’interface dans ses différents états.
Comment l’outil parcourt la page
Notre moteur ouvre la page dans Chromium, sur un écran de 1280 × 800 px, ferme le bandeau de
cookies s’il le reconnaît, puis note le style de chaque lien, bouton, champ et élément doté
d’un tabindex positif ou nul. Il presse ensuite la touche Tab, autant de fois
qu’il a compté d’éléments plus cinq, 60 fois au plus, et s’arrête quand le focus revient sur
un élément déjà vu. Les liens d’un cadre intégré consomment ces tabulations sans être jugés.
Le résultat dit si le parcours a fait le tour de la page ou s’est arrêté à la limite.
La vraie touche compte : le navigateur n’applique la pseudo-classe :focus-visible que lorsqu’il juge l’indicateur utile, ce qui est le cas au
clavier. Un focus donné par script, sans touche, ferait conclure à tort qu’un site soigné n’a
pas de focus.
À chaque arrêt, l’élément est comparé à son état de repos : contour, ombre portée, fond, bordure, soulignement, couleur du texte, transformation, filtre. Un contour seul doit contraster à 3:1 avec la couleur du premier parent qui a un fond.
Trois niveaux de certitude
Défaut : un script retire le focus à l’élément au moment où il le reçoit. La position du clavier se perd, il n’y a rien à interpréter.
Défaut probable : rien ne change sur l’élément lui-même. C’est le plus souvent un focus
invisible, avec trois exceptions que la mesure ne voit pas : le cadre d’une carte entière
cliquable, dessiné sur un parent avec :focus-within ; un indicateur fait d’un
pseudo-élément ; un changement animé par une transition CSS, mesuré avant qu’il ait eu lieu.
Les cartes d’actualité du site du système de design de l’État et le champ de recherche de
Wikipédia sortent ainsi, alors que leur focus se voit bien.
À vérifier : un contour apparaît, mais contraste à moins de 3:1 avec le fond mesuré. Le fond réel peut être une image ou un dégradé que la mesure ignore, et l’anneau natif du navigateur, bicolore, n’est mesuré que sur l’une de ses couleurs.
Corriger un focus invisible
La cause la plus courante est une règle outline: none posée sur tous les liens
et boutons, que les WCAG classent en échec F78. Gardez le
contour natif, ou remplacez-le par un style réservé au clavier :
:focus-visible {
outline: 3px solid #1d1d1b;
outline-offset: 2px;
} Choisissez une couleur qui contraste à 3:1 avec chaque fond du site, et testez-la avec le contrast checker.
L’ordre de tabulation et les contenus ouverts
Le relevé suit l’ordre réel de la touche Tab. Il ne dit pas si cet ordre est cohérent : le critère 12.8 le fait vérifier en parcourant la page avec Tab puis Maj+Tab, et rappelle que la tabulation n’a pas à suivre l’ordre de lecture tant qu’elle reste cohérente. Son test 12.8.2 porte sur les contenus insérés par script : après l’ouverture d’un panneau, le focus doit être replacé correctement.
Le critère 12.11 demande que les contenus qui apparaissent au survol, au focus ou à l’activation, une infobulle qui contient un lien par exemple, soient atteignables au clavier. L’outil ne clique sur rien : ouvrez vous-même menus, fenêtres et accordéons, et vérifiez le focus à l’intérieur.
Sources
RGAA 4.1.2, critère 10.7 (prise de focus visible) ; RGAA 4.1.2, critère 12.8 (ordre de tabulation cohérent) ; RGAA 4.1.2, critère 12.9 (piège au clavier) ; RGAA 4.1.2, critère 12.11 (contenus additionnels atteignables au clavier) ; RGAA 4.1.2, critère 3.3 (contraste des composants d’interface) ; RGAA 4.1.2, glossaire : Prise de focus ; WCAG 2.1, critère de succès 2.4.7 Focus Visible, en anglais ; Comprendre le critère 2.4.7 des WCAG 2.1, en anglais ; WCAG 2.1, critère de succès 1.4.11 Non-text Contrast, en anglais ; Échec F78 des WCAG : indicateur de focus supprimé par le style, en anglais ; Échec F55 des WCAG : focus retiré par script dès sa réception, en anglais ; MDN : la pseudo-classe :focus-visible .
Page mise à jour le 11 novembre 2026.
Questions fréquentes
Qu’est-ce que le focus visible ?
Quand on navigue au clavier, un seul élément de la page reçoit le focus à la fois : c’est lui qu’Entrée ou la barre d’espace activeront. Le focus est visible si cet élément se distingue à l’écran, par un contour, un fond ou une bordure. Sans ce signe, une personne qui n’utilise pas de souris ne sait plus où elle se trouve dans la page.
Peut-on retirer le contour qui apparaît au clic de souris ?
Oui, sans toucher au clavier : stylez :focus-visible plutôt que :focus. Le navigateur n’applique :focus-visible que lorsqu’il juge l’indicateur utile, en pratique à la navigation au clavier et dans les champs de saisie, et pas au clic sur un bouton. Supprimer outline sur :focus sans rien mettre à la place est un échec connu des WCAG (F78).
Quel contraste faut-il pour l’indicateur de focus ?
3:1 au moins. La méthodologie du test 10.7.1 demande une indication de focus, sur le contour, le fond ou les deux, « suffisamment contrastée (ratio de contraste égal ou supérieur à 3:1) ». Le critère 3.3 pose le même seuil pour un composant d’interface dans ses différents états.
Comment tester la navigation au clavier soi-même ?
Posez la souris, cliquez dans la barre d’adresse, puis parcourez la page avec Tab, et en arrière avec Maj+Tab, comme le décrit le test 12.8.1. À chaque arrêt, l’élément doit se voir, l’ordre doit rester cohérent et vous devez pouvoir repartir (critère 12.9, pas de piège au clavier). Ouvrez aussi les menus et fenêtres : leur contenu doit s’atteindre au clavier (critère 12.11).
Pourquoi l’outil ne dit-il rien de mon lien d’évitement ?
Un lien caché au repos et montré au focus est jugé comme les autres éléments. Mais un lien qui reste caché au focus, par une classe de type sr-only ou placé hors écran, peut sortir « visible » à tort : le moteur voit son contour, pas qu’il est invisible. Seul un élément de taille nulle n’est pas jugé. Vérifiez-le à la main : première touche Tab, le lien doit se montrer.
Pourquoi un contour peu contrasté est-il « à vérifier » et non en défaut ?
Le moteur mesure le contraste avec la couleur du premier parent qui a un fond. Si la page pose une image, un dégradé, ou un contour à l’intérieur d’un bouton coloré, le fond réel diffère et la mesure peut se tromper. L’anneau de focus natif du navigateur, bicolore, peut aussi sortir à tort sous 3:1 : le test 10.7.1 l’accepte tant que son style n’est « pas supprimé ou dégradé ». Un contour signalé à 1,5:1 se voit souvent mal ; à 2,8:1, l’œil tranche.
Un audit RGAA, critère par critère
Un outil vérifie un point. L’audit teste à la main les 106 critères sur chaque page de l’échantillon et livre la déclaration d’accessibilité. À partir de 1 500 € HT pour un échantillon de 8 pages.
Voir l’audit RGAA Poser une questionÀ lire sur le sujet
- Audit RGAA automatisé : ce qu'un outil vérifie, et ce qui reste à l'humain
- RGAA 5 : ce qui change et faut-il attendre pour auditer son site ?
- RGAA obligatoire en 2026 : qui est concerné ?
Outils complémentaires
- Critère 12.7 Générateur de lien d’évitement Le HTML et le CSS d’un lien d’évitement visible au focus, avec sa cible et un aperçu à tester au clavier.
- Critères 3.2 et 3.3 Contraste des couleurs Le rapport de contraste de deux couleurs ou de toute une palette, avec la couleur conforme la plus proche dans la même teinte.
- Critères 1.1, 6.2, 7.1 et 11.1 Arbre d’accessibilité d’une page Le rôle, le nom et l’état de chaque élément d’une page, tels que Chromium les transmet aux lecteurs d’écran, et les éléments sans nom.