scroll-margin et la navigation au clavier
La propriété CSS scroll-margin permet d'améliorer la navigation au clavier en ajoutant une marge de sécurité.
Publié le
Parmi les choses que j’ai redécouvert en mettant à jour mon site, il y a la propriété CSS scroll-margin
(scroll-margin sur MDN). Elle permet d’appliquer un décalage sur le container de défilement de l’élément ciblé. C’est souvent utilisé avec l’API scroll-snap
.
/* Applique une marge en haut et en bas de 1.5rem */
a {
scroll-margin: 1.5rem 0;
}
J’y ai trouvé 2 cas d’usage pour améliorer la navigation au clavier lorsqu’on utilise les touches TAB
et SHIFT
+ TAB
pour aller d’un élément focusable à un autre :
- Appliquer un
scroll-margin-bottom
etscroll-margin-top
permet de mieux visualiser les éléments qui recoivent le focus. Plutôt qu’ils soient collés en bas ou en haut de la fenêtre, il y aura une marge. - Lorsque le site possède un en-tête fixe (qui reste visible au scroll), les éléments qui recoivent le focus peuvent être positionnés derrière l’en-tête. En leur ajoutant une valeur de
scroll-margin-top
supérieure à la hauteur de l’en-tête, le scroll va se décaler d’autant pour rendre l’élément focus visible.
C’est pas grand chose, mais ça améliore l’expérience de navigation au clavier.