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-bottometscroll-margin-toppermet 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-topsupé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.