Wann ARIA und wann natives HTML verwenden
Befolgen Sie die erste ARIA-Regel: Bevorzugen Sie native Semantik
Wann ARIA und wann natives HTML verwenden ist eine kostenlose HTML Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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 ist ARIA?
ARIA (Accessible Rich Internet Applications) ist eine Sammlung von Attributen, die zu HTML hinzugefügt werden können, um die Barrierefreiheit für assistive Technologien zu verbessern. ARIA schließt Lücken, wenn die Semantik von nativem HTML nicht ausreicht.
Die erste ARIA-Regel
Die wichtigste ARIA-Richtlinie lautet: Verwenden Sie ARIA nicht, wenn natives HTML dies leisten kann:
<!-- BAD: ARIA on a div -->
<div role="button" tabindex="0" onclick="submit()">Submit</div>
<!-- GOOD: use a real button -->
<button type="submit">Submit</button>
<!-- Native HTML elements:
- Are keyboard accessible by default
- Have correct semantics built in
- Work in more contexts
- Require less code
-->Wenn natives HTML nicht ausreicht
ARIA wird benötigt, wenn:
- Benutzerdefinierte UI-Komponenten kein HTML-Gegenstück haben (Tabs, Comboboxen)
- Die Rolle eines nativen Elements überschrieben werden muss
- Aktualisierungen dynamischer Inhalte angesagt werden müssen
- Komplexe Beziehungen zwischen Elementen explizit gemacht werden müssen
ARIA fügt kein Verhalten hinzu
Ein wichtiges Missverständnis: ARIA fügt Metadaten zur Barrierefreiheit hinzu — keine Funktionalität:
<!-- Adding role="button" to a div does NOT:
- Make it keyboard-focusable (add tabindex="0")
- Make Enter/Space activate it (add event listeners)
- Make it styled like a button (add CSS)
-->
<!-- You must implement ALL behavior yourself -->
<!-- Native <button> handles all this for free -->Die ARIA-Taxonomie
ARIA-Attribute werden in drei Kategorien eingeteilt:
- Rollen — definieren, was ein Element ist:
role="button",role="dialog" - Eigenschaften — beschreiben statische Merkmale:
aria-label,aria-required - Zustände — beschreiben dynamische Bedingungen:
aria-expanded,aria-checked
Semantisches HTML im Vergleich zu ARIA-Äquivalenten
Die meisten HTML-Elemente besitzen bereits implizite ARIA-Rollen:
<nav> ≡ role="navigation"
<main> ≡ role="main"
<aside> ≡ role="complementary"
<header> ≡ role="banner" (page-level)
<footer> ≡ role="contentinfo" (page-level)
<button> ≡ role="button"
<a href> ≡ role="link"
<h1-h6> ≡ role="heading"
<ul> ≡ role="list"Häufige zulässige Verwendungen von ARIA
Beispiele für die legitime Verwendung von ARIA:
<!-- 1. Custom dropdown (no native equivalent): -->
<div role="combobox" aria-expanded="false">...</div>
<!-- 2. Loading state announcement: -->
<div role="status" aria-live="polite">Loading results...</div>
<!-- 3. Override landmark label: -->
<nav aria-label="Primary navigation">...</nav>
<!-- 4. Associate error with input: -->
<input aria-describedby="error-msg">
<span id="error-msg" role="alert">Invalid email</span>Unzulässige Verwendung von ARIA
Häufige Fehler bei ARIA:
<!-- BAD: ARIA role contradicts the element -->
<h2 role="button">Heading</h2> <!-- don't turn a heading into a button -->
<!-- BAD: ARIA on an unsupported element -->
<div role="listitem">Item</div> <!-- listitem must be inside list role -->
<!-- BAD: ARIA where HTML works fine -->
<p role="paragraph">Text</p> <!-- p already has paragraph semantics -->
<!-- BAD: aria-label on hidden element -->
<span aria-hidden="true" aria-label="something"> <!-- contradictory -->Landmark-Rollen
ARIA-Landmark-Rollen helfen Screenreader-Nutzern bei der Navigation durch Seitenbereiche:
<div role="banner"> <!-- header for the whole page -->
<div role="navigation"> <!-- major navigation -->
<div role="main"> <!-- main content -->
<div role="complementary"> <!-- aside content -->
<div role="contentinfo"> <!-- page footer -->
<div role="search"> <!-- search form -->
<div role="form"> <!-- form with label -->
<!-- These are ONLY needed if using divs instead of semantic elements -->
<!-- Prefer the native HTML elements instead -->ARIA-Implementierung testen
So überprüfen Sie, ob Ihr ARIA korrekt ist:
- Verwenden Sie den Bereich „Accessibility“ in den Chrome-/Firefox-DevTools
- Hören Sie sich die Ausgabe mit VoiceOver (Mac) oder NVDA (Windows) an
- Führen Sie die Erweiterung axe DevTools aus
- Prüfen Sie den Barrierefreiheitsbaum — entspricht er Ihren Erwartungen?
ARIA-Falle mit aria-hidden
Häufiger Fehler bei aria-hidden:
<!-- BAD: aria-hidden on element that still receives focus -->
<button aria-hidden="true">Close</button>
<!-- The button is still focusable but invisible to screen readers
Screen reader users reach it via Tab but hear nothing -->
<!-- GOOD: for focus + hide, use hidden attribute or display:none: -->
<button hidden>Close</button> <!-- removes from both tab order and AT -->
<!-- Or: if you must keep visible: -->
<button style="display:none" aria-hidden="true">Close</button>Schnelltest
Was bewirkt das Hinzufügen von role="button" zu einem div automatisch?
Zusammenfassung: ARIA im Vergleich zu nativem HTML
Wichtige Grundlagen zu ARIA:
- Erste Regel: Verwenden Sie nach Möglichkeit natives HTML
- ARIA fügt nur Semantik hinzu — das Verhalten müssen Sie selbst implementieren
- Drei Kategorien: Rollen, Eigenschaften, Zustände
- Landmark-Rollen erleichtern die Navigation mit Screenreadern
- Testen Sie mit dem Bereich „Accessibility“ der DevTools und einem Screenreader
Häufig gestellte Fragen
Ist die Lektion „Wann ARIA und wann natives HTML verwenden“ kostenlos?
Ja — der vollständige Text von „Wann ARIA und wann natives HTML verwenden“ 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 „Wann ARIA und wann natives HTML verwenden“?
Befolgen Sie die erste ARIA-Regel: Bevorzugen Sie native Semantik 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 1 von 4.
Wie lange dauert die Lektion „Wann ARIA und wann natives HTML verwenden“?
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
- Wann ARIA und wann natives HTML verwenden
- role button alert dialog und landmark
- aria-label aria-labelledby und aria-describedby
- aria-hidden und aria-live