HTML Academy · Lektion

Live-Regionen: aria-live aria-atomic aria-relevant

Lassen Sie assistive Technologien asynchrone Aktualisierungen ankündigen

Lektion 3 von 413 Schritte

Live-Regionen: aria-live aria-atomic aria-relevant ist eine kostenlose HTML Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des HTML Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.

Was sind Live-Regionen?

Eine Live-Region ist ein Abschnitt der Seite, dessen Inhalt dynamisch aktualisiert wird. Screenreader überwachen Live-Regionen und sagen Änderungen automatisch an, ohne dass Sie den Fokus verschieben müssen.

Eine Live-Region erstellen

Fügen Sie aria-live zu einem Container-Element hinzu:

<!-- 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>

Zusammenfassung der aria-live-Werte

Die drei Stufen von aria-live:

  • off – keine Ansagen (Standard für nicht dynamische Bereiche)
  • polite – wird angesagt, wenn Sie pausieren
  • assertive – wird sofort angesagt und unterbricht die aktuelle Sprachausgabe

aria-atomic im Detail

aria-atomic legt fest, was bei einer Inhaltsänderung angesagt wird:

<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 -->

aria-relevant-Werte

aria-relevant legt fest, welche DOM-Änderungen Ansagen auslösen:

<!-- 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 -->

Vordefinierte Rollen für Live-Regionen

Einige Rollen setzen aria-live implizit:

  • 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"

Ladestatus mit einer Live-Region

Lade- und Abschlussstatus ansagen:

<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>

Rückmeldung beim Absenden eines Formulars

Live-Region für den Status beim Absenden eines Formulars:

<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>

Anzahl der Suchergebnisse

Suchergebnisse dynamisch ansagen:

<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>

Anti-Patterns bei Live-Regionen

Vermeiden Sie diese Fehler bei Live-Regionen:

  • Erstellen und entfernen Sie Live-Regionen nicht – lassen Sie sie dauerhaft mit leerem Anfangsinhalt bestehen
  • Platzieren Sie Live-Regionen nicht innerhalb von Bereichen mit aria-hidden
  • Verwenden Sie assertive nicht für routinemäßige Aktualisierungen – es stört sehr
  • Sagen Sie Aktualisierungen nicht zu häufig an (drosseln Sie die Anzahl der Suchergebnisse)

Live-Regionen testen

So testen Sie Ansagen von Live-Regionen:

  • Aktivieren Sie VoiceOver (Mac: Cmd+F5) oder NVDA (Windows: Ctrl+Alt+N)
  • Lösen Sie die Aktualisierung aus und hören Sie auf die Ansage
  • Überprüfen Sie das Timing: polite wartet, assertive unterbricht
  • Prüfen Sie, dass axe DevTools keine Probleme mit Live-Regionen meldet

Kurztest

Welche Rolle setzt aria-live implizit auf assertive und aria-atomic auf true?

Zusammenfassung: Live-Regionen

Die wichtigsten Punkte zu Live-Regionen:

  • aria-live="polite" – auf eine Pause warten
  • aria-live="assertive" – sofort unterbrechen
  • aria-atomic="true" – die gesamte Region ansagen
  • role="alert" = assertive + atomic; role="status" = polite + atomic
  • Live-Regionen dauerhaft bestehen lassen; Inhalt leeren und anschließend setzen
Kostenlos starten

Lerne HTML mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
40
Lektionen
159

Häufig gestellte Fragen

Ist die Lektion „Live-Regionen: aria-live aria-atomic aria-relevant“ kostenlos?

Ja — der vollständige Text von „Live-Regionen: aria-live aria-atomic aria-relevant“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des HTML Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Live-Regionen: aria-live aria-atomic aria-relevant“?

Lassen Sie assistive Technologien asynchrone Aktualisierungen ankündigen Du übst HTML Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um HTML Academy zu starten?

Keine Vorkenntnisse erforderlich. HTML Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Live-Regionen: aria-live aria-atomic aria-relevant“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser HTML Academy-Lektion Code schreiben und ausführen?

Ja. Jede HTML Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. aria-expanded und aria-controls für Umschalter
  2. aria-selected und Tab-Muster
  3. Live-Regionen: aria-live aria-atomic aria-relevant
  4. Testen mit Screenreadern
← Zurück zu HTML Academy