Radio buttons en checkboxes correct gebruiken in HTML
Bij het bouwen van formulieren kom je vaak voor de keuze te staan: moet de gebruiker één optie selecteren of meerdere? Daarvoor bestaan in HTML twee specifieke elementen: radio buttons en checkboxes. Ze lijken op elkaar, maar hebben verschillende functies. In dit artikel leer je wat de verschillen zijn, hoe je ze correct gebruikt, hoe je ze toegankelijk maakt en hoe je ze kunt stylen.
Wat zijn radio buttons?
Radio buttons zijn keuzerondjes waarmee de gebruiker één optie uit een groep kan selecteren. Zodra je een keuze maakt, wordt een eerdere keuze automatisch opgeheven.
Voorbeeld:
Hier hoort elke optie bij dezelfde groep, omdat het name="kleur"-attribuut gelijk is.
Wat zijn checkboxes?
Checkboxes zijn vakjes waarmee de gebruiker meerdere opties tegelijk kan selecteren.
Voorbeeld:
De gebruiker kan één, meerdere of zelfs geen opties aanvinken.
Wanneer gebruik je wat?
- Radio buttons: als er slechts één keuze mogelijk is. Bijvoorbeeld geslacht, ja/nee-vraag, verzendmethode. 
- Checkboxes: als er meerdere keuzes mogelijk zijn. Bijvoorbeeld interesses, nieuwsbriefopties, filteropties in een webshop. 
Labels koppelen aan inputs
Zonder label weet een schermlezer niet wat een optie betekent. Daarom koppel je elk inputveld aan een label met for en id.
Dit maakt de checkbox klikbaar via het label en helpt ook gebruikers met motorische beperkingen.
Groeperen met <fieldset> en <legend>
Als je meerdere radio buttons of checkboxes hebt die samen één vraag vormen, groepeer ze dan met <fieldset> en een beschrijvende <legend>.
Een screenreader leest: “Kies je verzendmethode. Groep met 2 opties.”
Defaultwaarden instellen
Soms wil je dat er al een keuze is gemaakt. Dit doe je met het attribuut checked.
Voor checkboxes geldt hetzelfde.
Toegankelijkheid verbeteren met ARIA
In de meeste gevallen zijn radio buttons en checkboxes standaard goed toegankelijk. Bij custom styling kan dit anders zijn. Gebruik dan ARIA-attributen zoals role="checkbox" of aria-checked, maar alleen als je zelf een custom element bouwt.
Voorbeeld custom checkbox:
Let op: dit vereist extra JavaScript om toetsenbordbediening correct te regelen. Waar mogelijk is de native <input> beter.
Styling van radio buttons en checkboxes
Browsers tonen standaard eenvoudige rondjes en vakjes. Vaak wil je ze mooier maken.
Voorbeeld met CSS
Met accent-color (ondersteund in moderne browsers) pas je de kleur eenvoudig aan.
Custom styling
Met appearance: none kun je zelf een vorm tekenen:
Foutmeldingen en validatie
Zorg dat je foutmeldingen koppelt aan inputs.
Voeg indien nodig aria-describedby="error-opties" toe om de foutmelding te koppelen.
Toetsenbordnavigatie
Radio buttons en checkboxes moeten altijd met het toetsenbord te bedienen zijn.
- Tab: springt tussen velden. 
- Spatie: selecteert of deselecteert een checkbox of radio button. 
- Pijltjestoetsen: bewegen vaak tussen radio-opties. 
Praktisch voorbeeld: enquêteformulier
Met duidelijke labels, fieldsets en legend-elementen is dit formulier zowel toegankelijk als overzichtelijk.
Veelgemaakte fouten bij radio buttons en checkboxes
- Geen label gebruiken, waardoor opties onduidelijk zijn. 
- Alle radio buttons verschillende - name-waarden geven, waardoor meerdere selecties tegelijk mogelijk zijn.
- Checkboxes gebruiken waar eigenlijk radio buttons nodig zijn (of andersom). 
- Custom checkboxes maken zonder toetsenbord- of screenreader-ondersteuning. 
- Geen foutmeldingen tonen of koppelen aan de inputs. 
Tips voor betere radio buttons en checkboxes
- Gebruik altijd - <label>voor duidelijkheid en klikbaarheid.
- Groepeer gerelateerde opties met - <fieldset>en- <legend>.
- Houd de keuzes kort en eenduidig. 
- Test met toetsenbord en schermlezers. 
- Style ze consistent met - accent-colorof custom CSS.
Radio buttons en checkboxes lijken misschien eenvoudige invoerelementen, maar hun correcte gebruik maakt een enorm verschil in gebruiksvriendelijkheid en toegankelijkheid.

