Scan gratuit

25 octobre 2026

Focus non masqué WCAG (2.4.11) : en-tête collant, bannière cookies et scroll-padding

Le critère de succès 2.4.11 « Focus non masqué (minimum) », de niveau AA, exige qu'un composant d'interface qui reçoit le focus clavier ne soit pas entièrement caché par du contenu créé par l'auteur du site. Autrement dit, le focus non masqué WCAG se résume à une règle simple : quand vous naviguez au clavier, l'élément focalisé doit rester au moins partiellement visible. Les cas typiques cités par le W3C sont les en-têtes et pieds de page collants et les boîtes de dialogue non modales ; une bannière de cookies collante peut aussi faire échouer le critère. Le W3C cite une technique suffisante, le CSS scroll-padding (technique C43), et un échec type, l'élément focalisé complètement caché par un pied de page ou un en-tête collant (échec F110). Voici comment raisonner, tester et corriger.

Ce que dit exactement le critère 2.4.11 Focus non masqué

Le texte normatif est court : lorsqu'un composant d'interface reçoit le focus clavier, il n'est pas entièrement masqué par du contenu créé par l'auteur. Le mot important est « entièrement » : au niveau AA, un composant partiellement recouvert peut passer. Le W3C justifie cette tolérance par la complexité des designs responsives actuels, tout en rappelant qu'un composant plus il est recouvert, moins il est facile à voir. Les auteurs devraient donc chercher à réduire le degré et la fréquence de ce recouvrement partiel.

Le résultat idéal, aucun recouvrement du tout, relève d'un autre critère, de niveau AAA : Focus non masqué (amélioré). Pour viser la meilleure visibilité, considérez donc le niveau AA comme un plancher, pas comme un objectif.

Le critère évalue le composant focalisé, et non l'indicateur de focus. L'indicateur de focus n'est pris en compte que s'il est à l'intérieur du composant, ou si le focus est signalé par une modification du composant lui-même. Le W3C précise que ce choix donne une mesure plus claire, mais qu'un indicateur de focus totalement caché échouerait probablement au critère 2.4.7 Visibilité du focus.

Focus non masqué WCAG : pourquoi un en-tête collant ou une bannière de cookies peut cacher le focus

Le W3C cite justement les pieds de page collants, les en-têtes collants et les boîtes de dialogue non modales comme types de contenu qui peuvent typiquement recouvrir les éléments focalisés : à mesure que l'utilisateur avance dans la page avec la touche Tab, ces couches peuvent masquer l'élément qui reçoit le focus, ainsi que son indicateur de focus.

Le W3C cite explicitement la bannière de cookies comme exemple. Une notification implémentée comme contenu collant, par exemple une bannière de cookies, échoue au critère si elle masque entièrement un composant qui reçoit le focus. Pour les personnes voyantes qui utilisent le clavier, ou un dispositif qui passe par l'interface clavier comme un contacteur ou la commande vocale, savoir où se trouve le focus est essentiel : sans le voir, elles risquent de ne pas savoir comment continuer, voire de penser que le système ne répond plus.

Un autre cas mérite l'attention : les surcouches semi-transparentes, floutées ou assombries. Il se peut que l'élément focalisé ne soit pas entièrement masqué par ces surcouches, et qu'il réussisse donc le critère 2.4.11, tout en échouant séparément au critère 1.4.11 Contraste du contenu non textuel : l'indicateur de focus doit alors être évalué au regard des exigences de contraste du 1.4.11, tel qu'il apparaît sous la surcouche.

Corriger avec scroll-padding : la technique CSS C43

La technique suffisante citée par le W3C pour ce critère est la technique C43 : utiliser la propriété CSS scroll-padding pour démasquer le contenu. Le principe, illustré par l'exemple du W3C : sur une page dotée d'un pied de page collant, l'élément focalisé n'est pas complètement masqué, parce que le contenu de la fenêtre défile pour toujours afficher l'élément qui a le focus clavier grâce au scroll padding. Le W3C mentionne aussi le scroll padding pour les bannières : il permet que la bannière ne chevauche pas le reste du contenu.

L'exemple ci-dessous est une illustration de notre part, à adapter : la page Understanding du W3C cite la technique C43 sans en détailler la syntaxe. Nous y donnons à scroll-padding une valeur correspondant à la hauteur de chaque barre collante ; vérifiez le résultat au clavier à chaque point de rupture.

/* Illustration : réserver la place de l'en-tête et du pied de page collants */
html {
  scroll-padding-top: 5rem;    /* hauteur de l'en-tête collant */
  scroll-padding-bottom: 4rem; /* hauteur du pied de page collant */
}

.site-header {
  position: sticky;
  top: 0;
}

/* Indicateur de focus visible au clavier (technique C45) */
a:focus-visible,
button:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 2px;
}

Bannières, dialogues et contenus ouverts : les autres solutions

Le scroll-padding n'est pas la seule voie. Pour une bannière de cookies ou une notification collante, le W3C décrit plusieurs façons de réussir le critère :

Contenus persistants ouverts par l'utilisateur

Pour un contenu persistant que l'utilisateur ouvre lui-même, comme un accordéon, un chatbot ou une navigation latérale dépliable, le W3C décrit d'autres approches qui évitent de masquer le focus :

Le lien avec la visibilité du focus (critère 2.4.7)

Le critère 2.4.7 Visibilité du focus, également de niveau AA, exige que toute interface utilisable au clavier dispose d'un mode de fonctionnement dans lequel l'indicateur de focus clavier est visible. Son objectif : permettre à chacun de savoir quel élément a le focus. Le W3C précise que l'indicateur ne doit pas être limité dans le temps : une fois affiché, il doit rester visible.

Les deux critères sont complémentaires. Le 2.4.7 vérifie que l'indicateur de focus est visible, dans au moins un mode de fonctionnement ; le 2.4.11 vérifie que le composant focalisé n'est pas entièrement caché par du contenu créé par l'auteur. Un contour de focus parfaitement dessiné ne sert à rien s'il disparaît sous un en-tête collant. Parmi les techniques suffisantes du 2.4.7 figurent C15 (changer la présentation d'un composant au focus avec CSS), C40 (indicateur bicolore pour un contraste suffisant) et C45 (utiliser :focus-visible). Parmi les échecs, F78 vise les styles de contour ou de bordure qui suppriment ou rendent invisible l'indicateur de focus, et F55 le script qui retire le focus à sa réception.

Tester le focus non masqué sur votre site

Un test manuel au clavier permet de vérifier ce critère. Parcourez chaque gabarit de page uniquement au clavier, avec Tab et Maj+Tab, en observant à chaque étape si l'élément focalisé reste visible.

Questions fréquentes

Qu'est-ce que le critère WCAG 2.4.11 Focus non masqué ?

C'est un critère de niveau AA : lorsqu'un composant d'interface reçoit le focus clavier, il ne doit pas être entièrement masqué par du contenu créé par l'auteur, comme un en-tête collant ou une bannière.

Un élément focalisé partiellement caché est-il conforme ?

Au niveau AA, oui : le critère 2.4.11 tolère un recouvrement partiel. Le critère AAA Focus non masqué (amélioré) vise l'absence totale de recouvrement, et le W3C recommande de chercher à réduire le degré et la fréquence du recouvrement partiel.

Comment empêcher un en-tête sticky de cacher le focus ?

La technique suffisante citée par le W3C est C43 : utiliser la propriété CSS scroll-padding pour que le contenu défile et que l'élément focalisé ne soit pas complètement masqué par la barre collante. L'exemple du W3C porte sur un pied de page collant.

Une bannière de cookies peut-elle faire échouer le critère 2.4.11 ?

Oui, si elle masque entièrement un composant qui reçoit le focus. Parmi les façons de réussir : la rendre modale, utiliser le scroll padding, ou, si elle n'exige aucune action, la fermer quand elle perd le focus.

Quelle différence entre focus visible et focus non masqué ?

Le critère 2.4.7 exige au moins un mode de fonctionnement dans lequel l'indicateur de focus clavier est visible ; le critère 2.4.11 exige que le composant focalisé ne soit pas entièrement caché par du contenu créé par l'auteur. Un indicateur entièrement caché échouerait probablement aussi au 2.4.7.

À lire aussi sur Conformly

Sources

Article appuyé sur les sources officielles citées en fin de page.