Wcag uitgelegd

Informatief icoon dat onzichtbaar is

Informatief icoon dat onzichtbaar is: WCAG 1.4.11 Contrast van niet-tekstuele content (post 1/7)

Drie streepjes. Een hamburgericoon. Dat is je menu.

Tenminste, als je het kunt zien.

Lichtgrijs (#BBBBBB) op wit. Contrast: 2,3:1. Vereist: 3:1.

Dit is geen tekstcontrast. Dit gaat over niet-tekstuele elementen. Iconen, randen, indicatoren. Alles wat informatie geeft zonder tekst te zijn.

Een hamburgericoon dat je niet kunt onderscheiden van de achtergrond = een menu dat je niet kunt vinden. En het hamburgericoon is niet de enige. Bijvoorbeeld:

  • Pijltjes die een dropdown aangeven
  • Een vergrootglas voor zoeken
  • Een kruisje om een melding te sluiten
  • Een driehoek voor een waarschuwing
  • Een vinkje voor succes

Als die iconen de enige manier zijn om de functie te herkennen, moeten ze 3:1 contrast hebben.

De fix:

<!-- Niet doen: contrast 2,3:1 -->
<svg fill="#BBBBBB">...</svg>

<!-- Wel doen: contrast 4,6:1 -->
<svg fill="#767676">...</svg>

De uitzondering: staat er tekst naast het icoon? Dan hoeft het icoon niet apart te voldoen. Een zoekknop met een vergrootglas EN het woord “Zoeken”? Het icoon is decoratief. De tekst draagt de informatie.

Maar een zoekknop met alleen een vergrootglas? Dan is dat icoon de enige indicator. En dan moet het contrast kloppen.

Related Posts

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.

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.

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.