Livegebieden: aria-live aria-atomic aria-relevant
Kondig asynchrone updates aan bij ondersteunende technologie
Livegebieden: aria-live aria-atomic aria-relevant 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.
Wat zijn livegebieden?
Een livegebied is een gedeelte van de pagina waarvan de inhoud dynamisch wordt bijgewerkt. Schermlezers houden livegebieden in de gaten en kondigen wijzigingen automatisch aan zonder dat de gebruiker de focus hoeft te verplaatsen.
Een livegebied maken
Voeg aria-live toe aan een containerelement:
<!-- Polite: announce when user is idle -->
<div aria-live="polite" id="notifications"></div>
<!-- Inject text to announce: -->
<script>
document.getElementById('notifications').textContent = '5 new messages';
// Screen reader announces: '5 new messages' when user pauses
</script>Samenvatting van de waarden van aria-live
De drie niveaus van aria-live:
off— geen aankondigingen (standaard voor niet-livegebieden)polite— kondigt aan wanneer de gebruiker pauzeert met sprekenassertive— kondigt onmiddellijk aan en onderbreekt de huidige spraak
aria-atomic uitgediept
aria-atomic bepaalt wat er wordt aangekondigd wanneer de inhoud wijzigt:
<div aria-live="polite" aria-atomic="false"> <!-- default -->
Items in cart: <span id="count">3</span>
</div>
<!-- Only the changed span is announced: '4' -->
<div aria-live="polite" aria-atomic="true">
Items in cart: <span id="count">3</span>
</div>
<!-- The entire div is announced: 'Items in cart: 4' -->
<!-- aria-atomic="true" gives more context but is more verbose -->Waarden van aria-relevant
aria-relevant geeft aan welke DOM-wijzigingen aankondigingen activeren:
<!-- Default: additions text -->
<div aria-live="polite" aria-relevant="additions text">
<!-- Announce removals too: -->
<div aria-live="polite" aria-relevant="removals">
<!-- Announce everything: -->
<div aria-live="polite" aria-relevant="all">
<!-- Values: additions, removals, text, all
'additions' = added nodes announced
'removals' = removed nodes announced
'text' = text content changes announced -->Vooraf gedefinieerde rollen voor livegebieden
Sommige rollen stellen aria-live impliciet in:
role="alert"— aria-live="assertive" + aria-atomic="true"role="status"— aria-live="polite" + aria-atomic="true"role="log"— aria-live="polite"role="timer"— aria-live="off"role="marquee"— aria-live="off"
Laadstatus met een livegebied
Kondig laad- en voltooiingsstatussen aan:
<div role="status" aria-live="polite" aria-atomic="true" id="load-status">
<!-- empty initially -->
</div>
<script>
async function loadData() {
document.getElementById('load-status').textContent = 'Loading...';
const data = await fetchData();
renderResults(data);
document.getElementById('load-status').textContent =
`${data.length} results loaded.`;
}
</script>Feedback bij het verzenden van formulieren
Livegebied voor de status van het verzenden van een formulier:
<form id="contact-form" novalidate>
<input type="email" name="email">
<button type="submit">Subscribe</button>
</form>
<div role="status" aria-live="polite" id="form-status"></div>
<script>
form.addEventListener('submit', async (e) => {
e.preventDefault();
const status = document.getElementById('form-status');
status.textContent = 'Submitting...';
await submitForm(new FormData(form));
status.textContent = 'Thank you! You are now subscribed.';
});
</script>Aantal zoekresultaten
Kondig zoekresultaten dynamisch aan:
<label for="search">Search</label>
<input type="search" id="search">
<div role="status" aria-live="polite" aria-atomic="true" id="results-count"></div>
<div id="results"></div>
<script>
let debounceTimer;
search.addEventListener('input', () => {
clearTimeout(debounceTimer);
debounceTimer = setTimeout(() => {
const results = filterResults(search.value);
renderResults(results);
document.getElementById('results-count').textContent =
`${results.length} results for "${search.value}"`;
}, 300);
});
</script>Antipatronen voor livegebieden
Vermijd deze fouten met livegebieden:
- Maak livegebieden niet aan en verwijder ze niet — maak ze blijvend met lege begininhoud
- Plaats livegebieden niet binnen aria-hidden-gebieden
- Gebruik assertive niet voor routine-updates — dat is zeer verstorend
- Kondig updates niet te vaak aan (beperk de frequentie van aantallen zoekresultaten)
Livegebieden testen
Livegebiedaankondigingen testen:
- Schakel VoiceOver in (Mac: Cmd+F5) of NVDA (Windows: Ctrl+Alt+N)
- Activeer de update en luister naar de aankondiging
- Controleer de timing: polite wacht, assertive onderbreekt
- Controleer of axe DevTools geen problemen met livegebieden markeert
Korte controle
Welke rol stelt aria-live impliciet in op assertive en aria-atomic op true?
Samenvatting: livegebieden
Essentiële punten over livegebieden:
aria-live="polite"— wacht tot de gebruiker pauzeertaria-live="assertive"— onderbreekt onmiddellijkaria-atomic="true"— kondigt het hele gebied aanrole="alert"= assertive + atomic; role="status" = polite + atomic- Houd livegebieden blijvend; maak de inhoud leeg en stel deze daarna in
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 “Livegebieden: aria-live aria-atomic aria-relevant” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad HTML Academy, waaronder “Livegebieden: aria-live aria-atomic aria-relevant”, 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 “Livegebieden: aria-live aria-atomic aria-relevant”?
Kondig asynchrone updates aan bij ondersteunende technologie 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 “Livegebieden: aria-live aria-atomic aria-relevant”?
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
- aria-expanded en aria-controls voor schakelaars
- aria-selected en tabpatronen
- Livegebieden: aria-live aria-atomic aria-relevant
- Testen met schermlezers