HTML Academy · Les

aria-label aria-labelledby en aria-describedby

Voorzie elementen van toegankelijke namen en beschrijvingen

Les 3 van 413 stappen

aria-label aria-labelledby en aria-describedby 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 toegankelijke namen belangrijk zijn

Elk interactief element heeft een toegankelijke naam nodig — een teksttekenreeks die hulptechnologie gebruikt om het element te identificeren. Zonder toegankelijke naam kunnen schermlezers gebruikers niet vertellen wat een knop of invoerveld doet.

aria-label

aria-label geeft rechtstreeks op een element een tekstuele toegankelijke naam:

<button aria-label="Close dialog">×</button>
<!-- The × character has no accessible meaning
     aria-label provides the name: 'Close dialog, button' -->

<input type="search" aria-label="Search products">
<!-- No visible label — aria-label provides the accessible name -->

aria-labelledby

aria-labelledby verwijst naar een ander element als toegankelijke naam:

<h2 id="section-title">Billing Information</h2>
<form aria-labelledby="section-title">
  <!-- Form's accessible name is 'Billing Information' -->
</form>

<!-- Multiple id references: -->
<button aria-labelledby="action-verb object-name">
  Delete
</button>
<span id="object-name" hidden>User Account</span>
<!-- Screen reader: 'Delete User Account, button' -->

aria-describedby

aria-describedby geeft een uitgebreide beschrijving (als aanvulling op de naam):

<label for="pwd">Password</label>
<input
  type="password"
  id="pwd"
  aria-describedby="pwd-hint"
>
<p id="pwd-hint">Must be 8+ characters with one uppercase letter and one number.</p>
<!-- Screen reader: 'Password [input]' then reads the description on focus -->

Label versus beschrijving

Het verschil tussen een toegankelijke naam en een beschrijving:

  • Toegankelijke naam — identificeert het element (aria-label, aria-labelledby of een label-element)
  • Beschrijving — vult de naam aan met extra context (aria-describedby)
  • Schermlezers kondigen aan: naam, rol, toestand → daarna de beschrijving

aria-label bij oriëntatiepunten

Gebruik aria-label om meerdere oriëntatiepunten van hetzelfde type van elkaar te onderscheiden:

<nav aria-label="Primary">...</nav>
<nav aria-label="Breadcrumb">...</nav>

<!-- Screen reader landmark list:
     'Primary, navigation'
     'Breadcrumb, navigation' -->

<!-- When only one nav, aria-label is optional but still helpful -->

aria-labelledby bij secties

Koppel secties aan hun koppen voor context in schermlezers:

<section aria-labelledby="about-heading">
  <h2 id="about-heading">About Our Team</h2>
  <p>We are a team of passionate developers...</p>
</section>
<!-- Screen reader: 'About Our Team, region' when entering section -->

aria-label versus zichtbare tekst

aria-label overschrijft zichtbare tekst — wees voorzichtig:

<button aria-label="Delete account permanently">
  Delete
</button>
<!-- Screen reader hears: 'Delete account permanently'
     Sighted user reads: 'Delete' -->

<!-- Best practice: visible text and aria-label should agree
     If possible, include extra context in visible text too:
     <button>Delete account permanently</button> -->

<!-- aria-label should start with the visible text when possible
     for speech recognition users who use voice commands -->

aria-describedby voor foutmeldingen

Koppel foutmeldingen aan hun invoervelden:

<label for="email">Email</label>
<input
  type="email"
  id="email"
  aria-describedby="email-error"
  aria-invalid="true"
>
<span id="email-error" role="alert">
  Please enter a valid email address.
</span>
<!-- When input receives focus, screen reader reads:
     'Email [field], invalid. Please enter a valid email address.' -->

Meerdere verwijzingen met aria-describedby

aria-describedby kan naar meerdere elementen verwijzen:

<input
  type="password"
  aria-label="New password"
  aria-describedby="pwd-hint pwd-strength"
>
<p id="pwd-hint">Must be 8+ characters.</p>
<meter id="pwd-strength" aria-label="Password strength" value="2" max="4">Medium</meter>
<!-- Both elements are announced as the description -->

Zichtbare versus verborgen labels

Wanneer een zichtbaar label niet mogelijk is, gebruik je de klasse sr-only:

<label for="search" class="sr-only">Search</label>
<input type="search" id="search" placeholder="Search...">

/* Visually hidden but in accessibility tree: */
.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

Wat is het verschil tussen aria-label en aria-labelledby?

Samenvatting: ARIA-labels

Essentiële regels voor toegankelijke naamgeving:

  • aria-label — naam als inline tekst voor elementen zonder zichtbare labels
  • aria-labelledby — verwijst via id naar bestaande zichtbare tekst
  • aria-describedby — aanvullende beschrijving (wordt na de naam voorgelezen)
  • Geef de voorkeur aan zichtbare labels en standaard-HTML-label-elementen
  • aria-label bij oriëntatiepunten onderscheidt meerdere gebieden van hetzelfde type
Gratis beginnen

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 “aria-label aria-labelledby en aria-describedby” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad HTML Academy, waaronder “aria-label aria-labelledby en aria-describedby”, 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 “aria-label aria-labelledby en aria-describedby”?

Voorzie elementen van toegankelijke namen en beschrijvingen 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 “aria-label aria-labelledby en aria-describedby”?

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

  1. Wanneer gebruikt u ARIA in plaats van native HTML
  2. role button alert dialog en landmark
  3. aria-label aria-labelledby en aria-describedby
  4. aria-hidden en aria-live
← Terug naar HTML Academy