Wcag uitgelegd

JavaScript dat de focus actief verwijdert

JavaScript dat de focus actief verwijdert: WCAG 2.4.7 Focus zichtbaar (post 5/7)

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.

Dit is het digitale equivalent van iemand een stoel aanbieden en die dan wegtrekken.

Waarom doet iemand dit?

Meestal om de “lelijke” focusindicator te voorkomen bij muisinteractie. De developer wil niet dat een knop een blauwe rand krijgt na het klikken. De oplossing: focus verwijderen na elke klik.

Het bijeffect: toetsenbordgebruikers kunnen het element niet meer gebruiken. De focus wordt direct verwijderd zodra die arriveert.

De juiste oplossing voor “focus na klik”

/* :focus-visible toont de indicator alleen bij toetsenbordnavigatie */
button:focus-visible {
  outline: 2px solid #0066CC;
  outline-offset: 2px;
}

/* Geen outline bij muisklik */
button:focus:not(:focus-visible) {
  outline: none;
}

Geen JavaScript nodig. Geen blur(). Geen verwijderde focus. De CSS regelt het.

Check je codebase: zoek naar .blur() en outline = 'none' in je JavaScript. Verwijder elk voorkomen dat focusverwijdering forceert.

Related Posts

outline: none, de meest destructieve regel in CSS

outline: none, de meest destructieve regel in CSS

*:focus { outline: none; } Eén regel. En elke toetsenbordgebruiker op je website navigeert blind.

Negatieve outline-offset die de focus verbergt

Negatieve outline-offset die de focus verbergt

Een link met een donkere achtergrond. De focusindicator is er, een zwarte outline van 2 pixels. Maar outline-offset: -4px duwt die outline naar binnen. Onder de achtergrondkleur.

Productafbeelding zonder beschrijving

Productafbeelding zonder beschrijving

Ik moest een keer nieuwe golfschoenen kopen. De volgende dag zou ik gaan golfen en ik moest voor 16:00 bestellen om ze op tijd te krijgen. Die hele dag zat ik in de auto. En ik heb een stoornis: maximaal drie kleuren in mijn outfit. De schoenen moesten wit zijn met rode elementen. Probeer dat eens in de file te vinden op je telefoon. Ik kon alleen maar luisteren naar wat de voorleessoftware me vertelde. Maar bij de meeste webshops was er niks te horen: geen kleur, geen materiaal, geen details. En toen was ik weg als klant.