Typ iets om te zoeken...

Wcag uitgelegd

Custom checkboxen en radiobuttons

Custom checkboxen en radiobuttons — WCAG 1.4.11 Contrast van niet-tekstuele content (post 7/7)

Een checkbox. Lichtgrijze rand. Afgeronde hoeken. Past perfect bij het design.

Maar die rand? #C0C0C0 op wit. Contrast: 1,9:1.

Je ziet een leeg vierkantje. Of eigenlijk: je ziet bijna niets. Is het een checkbox? Een tekstveld? Een decoratief element?

Zodra je de standaard browser-checkboxen of radiobuttons vervangt door eigen ontwerpen, moet het contrast van de randen en selectie-indicatoren minimaal 3:1 zijn met de achtergrond.

Dat geldt voor:

  • De rand van de lege checkbox
  • Het vinkje of de vulling van de aangevinkte checkbox
  • De rand van de radiobutton
  • De stip van de geselecteerde radiobutton
  • De rand en positie van een toggle switch
/* Niet doen — rand contrast 1,9:1 */
.checkbox-custom {
  border: 2px solid #C0C0C0;
}

/* Wel doen — rand contrast 4,6:1 */
.checkbox-custom {
  border: 2px solid #767676;
}

/* Aangevinkte staat: vinkje moet ook contrasteren */
.checkbox-custom--checked {
  background-color: #2056A5;
  border-color: #2056A5;
}
/* Wit vinkje op #2056A5: contrast 8,6:1 */

De makkelijkste oplossing? Gebruik de standaard browser-checkboxen. Moderne browsers stijlen die al behoorlijk. En ze hoeven niet te worden getest — browser-native elementen zijn uitgezonderd.

Wil je toch custom? Dan is het jouw verantwoordelijkheid. Meet elke staat: leeg, aangevinkt, hover, focus, disabled.

Dit was post 7 van 7 over WCAG 1.4.11 Niet-tekstueel contrast. Van iconen tot checkboxen: als een grafisch element informatie geeft, moet het zichtbaar zijn. 3:1. Geen uitzonderingen (behalve als de browser het tekent).

Zelf verder met dit onderwerp

Related Posts

Dark mode met nieuwe contrastproblemen

Dark mode met nieuwe contrastproblemen

Je website heeft dark mode. Modern. Gebruiksvriendelijk. Populair. En vol contrastproblemen die er in de lichte versie niet waren.

Die mooie oranje knop met witte tekst

Die mooie oranje knop met witte tekst

Oranje knop. Witte tekst. “Bestel nu!” Ziet er goed uit. Valt op. Precies wat je wilt van een call-to-action.

Invoerveld zonder zichtbare rand

Invoerveld zonder zichtbare rand

Een wit invoerveld op een witte achtergrond. Met een lichtgrijze rand. Heel lichtgrijs. #D9D9D9.