Wcag uitgelegd

outline: none — de meest destructieve regel in CSS

outline: none — de meest destructieve regel in CSS — WCAG 2.4.7 Focus zichtbaar (post 1/7)

*:focus { outline: none; }

Eén regel. En elke toetsenbordgebruiker op je website navigeert blind.

Tab. Waar ben ik? Geen idee. Tab. Waar ben ik nu? Geen idee. Tab. Ik geef op.

Die ene CSS-regel verwijdert de focusindicator van elk interactief element. Links, knoppen, invoervelden — allemaal zonder zichtbare focus.

Waarom staat dit in zoveel codebases?

Omdat de standaard browser-outline “lelijk” is. Een blauwe of zwarte rand die niet bij het design past. En de eerste reflex van een developer is: weg ermee.

Maar de focusindicator is geen decoratie. Het is een navigatiehulpmiddel. Het equivalent van een muiscursor voor toetsenbordgebruikers.

De fix:

/* Niet doen */
*:focus { outline: none; }

/* Wel doen: vervang door een mooiere variant */
*:focus-visible {
  outline: 2px solid #0066CC;
  outline-offset: 2px;
}

:focus-visible is de sleutel. Die toont de outline alleen bij toetsenbordnavigatie — niet bij muisklikken. Zo heb je het beste van beide werelden: geen “lelijke” outline bij klikken, wél een zichtbare focus bij tabben.

Related Posts

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.

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.

Klikbare div in plaats van een button

Klikbare div in plaats van een button

Een div met een onclick. Ziet eruit als een knop. Doet iets als je erop klikt.