Pourquoi l'anneau de focus n'est pas une verrue
Le contour bleu que tout le monde veut supprimer est, pour une partie des gens, la seule façon de savoir où ils sont.
Il existe une ligne de CSS que presque tout le monde a écrite au moins une fois :
:focus {
outline: none;
}Elle a l’air inoffensive. Elle retire un contour bleu que le navigateur dessine autour du bouton qu’on vient d’atteindre, et que beaucoup de gens trouvent laid.
Ce qu’elle retire vraiment
Lien permanent vers la section : Ce qu’elle retire vraimentPour qui se sert d’une souris, le focus est presque invisible : le pointeur indique la position, et le contour ne fait que doubler une information qu’on a déjà.
Pour qui navigue au clavier, à la commande vocale, ou avec un contacteur, le focus est la position. C’est le seul endroit où la prochaine touche va agir. Sans indicateur visible, il faut appuyer sur Tab et deviner. C’est comme déplacer un curseur de texte invisible.
Avertissement
Un contour retiré sans remplacement fait échouer le critère 2.4.7 des règles du W3C. Ce n’est pas une préférence esthétique, c’est un manquement mesurable.
Ce qu’il faut faire à la place
Lien permanent vers la section : Ce qu’il faut faire à la placeNe pas retirer le contour : le dessiner mieux. Depuis que :focus-visible
existe, le navigateur sait déjà distinguer un focus donné par le clavier d’un
focus donné par un clic. Le contour n’apparaît donc que quand il sert.
:focus-visible {
outline: 3px solid var(--couleur-focus);
outline-offset: 3px;
}Le décalage n’est pas cosmétique. Il fait que la couleur voisine de l’anneau est toujours le fond de la page, jamais celui du bouton entouré. Sans lui, un anneau bleu autour d’un bouton bleu n’a aucun contraste avec ce qu’il entoure.
C’est exactement ce que fait ce site, et vous pouvez le vérifier : appuyez sur Tab.