Het label-element en toegankelijkheid
Koppel labels aan inputs voor ondersteuning van schermlezers.
Het label-element en toegankelijkheid is een gratis HTML Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject HTML Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus HTML Academy bevat in totaal 4 lessen.
Waarom labels belangrijk zijn
Het element <label> koppelt een tekstbeschrijving aan een formulierbesturingselement:
- Schermlezers kondigen het label aan wanneer het invoerveld focus krijgt
- Als je op het label klikt, activeer je het bijbehorende invoerveld
- Zonder label weten gebruikers van schermlezers niet waarvoor een veld dient
Expliciet label met for
Het attribuut for koppelt een label via id aan een invoerveld:
<label for="email">Email address</label>
<input type="email" id="email" name="email">
<!-- for="email" matches id="email" -->
<!-- Clicking "Email address" moves focus to the input -->
<!-- Required for proper accessibility -->Impliciet label (omsluiten)
Als je het invoerveld in het label omsluit, ontstaat een impliciete koppeling:
<!-- No for/id needed — input is inside label -->
<label>
Email address
<input type="email" name="email">
</label>
<!-- Works fine but explicit association is more robust
(especially when label and input are far apart in the DOM) -->label en input scheiden
Als label en invoerveld niet naast elkaar kunnen staan, gebruik je aria-labelledby:
<h2 id="section-title">Billing Details</h2>
<input type="text" name="name" aria-labelledby="section-title">
<!-- The heading serves as the accessible label for the input -->aria-label als alternatief
Als een zichtbaar label niet mogelijk is, gebruik je aria-label:
<!-- Search form with icon button -->
<form>
<input type="search" name="q" aria-label="Search the site">
<button type="submit" aria-label="Submit search">
<svg><!-- magnifier icon --></svg>
</button>
</form>Eén label per invoerveld
Elk invoerveld hoort precies één label te hebben. Meerdere invoervelden horen afzonderlijke labels te hebben:
<!-- BAD: one label for multiple inputs -->
<label>First and last name
<input type="text" name="first">
<input type="text" name="last">
</label>
<!-- GOOD: separate labels -->
<label for="first">First name</label>
<input type="text" id="first" name="first">
<label for="last">Last name</label>
<input type="text" id="last" name="last">Aanduiding van verplichte velden
Geef verplichte velden toegankelijk aan:
<!-- Visual + accessible required indicator -->
<label for="email">
Email address
<span aria-hidden="true">*</span> <!-- visual asterisk -->
<span class="sr-only">(required)</span> <!-- screen reader text -->
</label>
<input type="email" id="email" name="email" required>Fieldset en legend voor groepen
Groepeer verwante invoervelden met <fieldset> en <legend>:
<fieldset>
<legend>Shipping address</legend>
<label for="addr-street">Street</label>
<input type="text" id="addr-street" name="street" autocomplete="address-line1">
<label for="addr-city">City</label>
<input type="text" id="addr-city" name="city" autocomplete="address-level2">
</fieldset>Fieldset voor groepen keuzerondjes
Groepen met keuzerondjes hebben altijd een fieldset en legend nodig:
<fieldset>
<legend>Preferred contact method</legend>
<label>
<input type="radio" name="contact" value="email"> Email
</label>
<label>
<input type="radio" name="contact" value="phone"> Phone
</label>
<label>
<input type="radio" name="contact" value="text"> Text message
</label>
</fieldset>Een placeholder is geen label
Een placeholder verdwijnt zodra je begint te typen — hij kan een label niet vervangen:
<!-- BAD: placeholder used as a label -->
<input type="email" placeholder="Email address">
<!-- Screen readers may announce the placeholder, but many skip it -->
<!-- User cannot see the field purpose while typing -->
<!-- GOOD: -->
<label for="email">Email address</label>
<input type="email" id="email" placeholder="you@example.com">Visueel verborgen labels
Als het ontwerp geen zichtbaar label heeft, verberg je het visueel maar behoud je het voor schermlezers:
<label for="search" class="sr-only">Search</label>
<input type="search" id="search" placeholder="Search...">
/* sr-only utility class: */
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
white-space: nowrap;
border: 0;
}Korte controle
Hoe koppel je een label expliciet aan een invoerveld?
Samenvatting: toegankelijkheid van label
De belangrijkste punten van labels:
- Elke invoer heeft altijd een label nodig
<label for="id">expliciete koppeling- Een invoerveld in een label omsluiten = impliciete koppeling
aria-labelledbykoppelt via id aan elk elementaria-labelvoor knoppen met alleen een pictogram en zonder zichtbare tekst<fieldset>+<legend>voor gegroepeerde besturingselementen
Leer HTML met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 40
- Lessen
- 159
Veelgestelde vragen
Is de les “Het label-element en toegankelijkheid” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad HTML Academy, waaronder “Het label-element en toegankelijkheid”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus HTML Academy bevat in totaal 4 lessen.
Wat leer ik in “Het label-element en toegankelijkheid”?
Koppel labels aan inputs voor ondersteuning van schermlezers. Je oefent met HTML Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met HTML Academy te beginnen?
Ervaring vooraf is niet nodig. HTML Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Het label-element en toegankelijkheid”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over HTML Academy?
Ja. Elke les over HTML Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Het form-element: action, method en enctype
- Inputtypen: text, password, email, number en tel
- Het label-element en toegankelijkheid
- Het button-element: submit, reset en button