Focus visible

Définition technique

Indication visuelle de l’élément actuellement ciblé lors de la navigation au clavier (tabulation). En CSS, :focus-visible permet d’afficher un contour (outline) ou un style spécifique lorsque le focus est obtenu au clavier, sans l’afficher au clic souris (évitant un « flash » disgracieux). Supprimer tout indicateur de focus (outline: none sans alternative) rend le site difficilement utilisable pour les utilisateurs clavier et les lecteurs d’écran ; c’est une non-conformité WCAG. Le focus doit avoir un ratio de contraste d’au moins 3:1 avec le fond. Les navigateurs appliquent un outline par défaut ; le remplacer par un style personnalisé (bordure, box-shadow) est acceptable tant que l’indication reste visible. :focus-visible est préférable à :focus pour ne pas afficher le focus au clic (meilleure UX).

Comment ça fonctionne ?

En CSS, le sélecteur :focus-visible affiche un contour (outline, border ou box-shadow) uniquement lorsque le focus est obtenu au clavier (tabulation), pas au clic souris. Le navigateur applique un outline par défaut ; on peut le remplacer par un style personnalisé à condition de garder un contraste d'au moins 3:1.

L'erreur classique à éviter

Utiliser outline: none sans alternative visible, ce qui rend le site inutilisable au clavier et non conforme WCAG. Utiliser :focus au lieu de :focus-visible et afficher le contour au clic (effet disgracieux).

Impact business : pourquoi s'en soucier ?

L’absence de focus visible exclut les utilisateurs qui naviguent au clavier (mobilité réduite, power users) et peut constituer un critère d’échec en audit accessibilité. Un focus visible soigné (couleur, épaisseur, contraste) améliore l’UX pour tous sans dégrader l’esthétique. Les sites du secteur public ou sous obligation d’accessibilité doivent le garantir. Un outline personnalisé cohérent avec la charte graphique évite le conflit entre accessibilité et design tout en restant conforme.

La règle d'or

Toujours fournir un indicateur de focus visible (bordure, box-shadow, couleur) avec un contraste d'au moins 3:1. Préférer :focus-visible à :focus pour n'afficher l'indication qu'au focus clavier. Tester la navigation à la tabulation sur tous les éléments interactifs.

La théorie c'est bien, la pratique c'est mieux. Découvrez comment j'applique le Focus visible dans mes projets.

Découvrir l'expertise Design UI/UX

Le Prompt Expert (Copier-Coller dans Claude / Cursor)

Contexte : design system [couleur primaire, fond], composants [liens, boutons, champs]. Génère un extrait CSS pour :focus-visible (outline ou border + box-shadow) avec un contraste d’au moins 3:1. Donne une variante pour les liens et une pour les boutons. Explique :focus vs :focus-visible et pourquoi ne pas utiliser outline: none sans remplacement. Inclus un fallback pour les navigateurs anciens si besoin.

FAQ

Ne vous perdez pas dans le code. Je m'occupe de la technique, concentrez-vous sur vos clients.

En parler ensemble