Wcag uitgelegd

Focus springt onverwacht door de pagina

Focus springt onverwacht door de pagina: WCAG 2.4.3 Focusvolgorde (post 1/11)

Tab. Je bent in het hoofdmenu. Tab. Je bent in de sidebar. Tab. Je bent terug in het hoofdmenu. Tab. Nu ben je in de content.

Wat?

De focus springt heen en weer als een bal in een flipperkast. De visuele volgorde zegt: menu, content, sidebar. De focusvolgorde zegt: menu, sidebar, content. Want zo staat het in de HTML.

CSS heeft de sidebar visueel naar rechts geplaatst. Maar de focus volgt de HTML. Niet de CSS.

Dit speelt bij elke layout waar CSS de visuele volgorde verandert:

  • order in Flexbox
  • grid-column en grid-row in CSS Grid
  • flex-direction: row-reverse
  • position: absolute of fixed

De fix: pas de HTML-volgorde aan zodat die overeenkomt met de visuele layout.

De test: tab door je pagina. Volgt de focus de visuele volgorde, van links naar rechts, van boven naar beneden? Test ook op smalle schermen: responsive layouts veranderen de visuele volgorde, maar de HTML-volgorde blijft gelijk.

Het hoeft niet pixel-perfect overeen te komen. Maar het mag niet verwarrend zijn. Als je niet kunt voorspellen waar de focus naartoe gaat, is het een probleem.

Related Posts

Lichtgrijze tekst op een witte achtergrond

Lichtgrijze tekst op een witte achtergrond

Contrastverhouding: 2,85:1. Vereist: 4,5:1. Dit is de meest voorkomende contrastfout op het web. En ik snap waarom. Het ziet er strak uit. Rustig. Modern.

overflow: hidden knipt de focusindicator af

overflow: hidden knipt de focusindicator af

Een mooie kaartcomponent. Afgeronde hoeken. overflow: hidden om te voorkomen dat content buiten de hoeken valt.

JavaScript dat de focus actief verwijdert

JavaScript dat de focus actief verwijdert

element.addEventListener("focus", function() { this.blur(); }); Een element krijgt focus. JavaScript verwijdert de focus direct. Het element heeft een fractie van een seconde focus gehad. De gebruiker merkt niets.