ARIA und Landmarks
ARIA steht für Accessible Rich Internet Applications und
ist eine Spezifikation des W3C, die es ermöglicht, Webseiten und
Webanwendungen für Menschen mit Behinderungen, insbesondere für
die Interpretation durch Screenreader zugänglicher zu machen.
ARIA enthält mehrere Hauptkomponenten:
-
Properties: Attribute, die
-
Textinformationen hinzufügen von
Elementen beschreiben.
-
States: Eine weitere Gruppe umfasst
das Verhalten bei Änderungen des DOM.
-
Schließlich gibt es noch
Relationen, die Beziehungen
zwischen Elementen beschreiben.
-
Roles: Rollen, die Elementen zugewiesen
werden können, um die semantische Bedeutung eines Elements
zu erzeugen oder zu ändern.
Die folgenden Beispiele sind nicht vollständig. Eine
vollständige Beschreibung aller ARIA-Attribute gibt es zum
Beispiel bei
SELFHTML.
ARIA-Attribute, die Textinformationen für Screenreader
hinzufügen
Die folgenden Rollen können Textinformationen für Screenreader
hinzufügen:
aria-label
-
Ein Label, das den Inhalt eines Elements beschreibt. Es wird
von Screenreadern vorgelesen, wenn das Element fokussiert
ist.
<button aria-label="Schließen" class="fa
fa-close"></button>
aria-labelledby
-
Die ID eines anderen Elements, dessen Inhalt als Label für
das aktuelle Element verwendet wird.
<label id="label">Schließen</label>
<button aria-labelledby="label">
aria-describedby
-
Die ID eines anderen Elements, dessen Inhalt als
Beschreibung für das aktuelle Element verwendet wird.
<div id="description">Schließen Sie das
Fenster</div>
<button aria-describedby="description">
ARIA-Attribute, die den Zustand von Elementen beschreiben
Die folgenden Rollen können den Zustand von Elementen
beschreiben:
aria-disabled
-
Gibt an, ob ein Element deaktiviert ist.
<button aria-disabled="true">
aria-hidden
-
Gibt an, ob ein Element für Screenreader sichtbar ist.
<div aria-hidden="true">
aria-checked
-
Gibt an, ob ein Element ausgewählt ist.
<input type="checkbox"
aria-checked="true">
aria-pressed
-
Gibt an, ob ein Element gedrückt ist.
<button aria-pressed="true">
aria-expanded
-
Gibt an, ob ein Element erweitert ist.
<li aria-expanded="true">
und so weiter.
ARIA-Attribute, die beobachten, ob es am DOM Veränderungen gibt:
Die folgenden Rollen können beobachten, ob es am DOM
Veränderungen gibt:
aria-atomic
-
Gibt an, ob ein Element atomar ist, d.h. ob es als Ganzes
gelesen werden soll.
<div role="alert" aria-atomic="true">
<p>Wichtige Nachricht:</p>
<p>Ihr
Profil wurde erfolgreich aktualisiert.</p>
</div>
aria-busy
- Gibt an, ob ein Element gerade beschäftigt ist.
aria-live
-
Gibt an, ob Änderungen an einem Element sofort vorgelesen
werden sollen.
<form aria-live="assertive">
<input type="text">...
<p>Bitte geben Sie Ihren Namen
ein.</p>
</form>
aria-relevant
-
Gibt an, welche Art von Änderungen an einem Element
vorgelesen werden sollen.
<form aria-relevant="additions">
<input type="text">...
<p>Bitte geben Sie Ihren Namen
ein.</p>
</form>
ARIA-Attribute, die ein Verhalten von Elementen beschreiben
Die folgenden Rollen können das Verhalten von Elementen
beschreiben:
aria-haspopup
- Gibt an, ob ein Element ein Popup-Menü enthält.
aria-owns
-
Die ID eines anderen Elements, das von diesem Element
besessen wird.
aria-controls
-
Die ID eines anderen Elements, das von diesem Element
kontrolliert wird.
aria-flowto
-
Die ID eines anderen Elements, das von diesem Element
fokussiert wird.
aria-activedescendant
-
Die ID eines anderen Elements, das von diesem Element
aktiviert wird.
und so weiter.
Landmarks (roles
)
Landmarks sind semantische Rollen, die es Screenreadern
ermöglichen, die Struktur einer Webseite zu erkennen. Sie können
nicht-semantischen div
-Elemente eine semantische
Bedeutung geben. Sie können auch die Semantik eines
HTML-Elements ändern.
role="banner"
-
Ein Bereich, der den Kopf einer Webseite enthält. Er kann
mehrere Elemente enthalten, wie z.B. ein Logo, eine
Überschrift, eine Suchfunktion und eine Navigation.
role="navigation"
-
Ein Bereich, der eine Navigation enthält. Er kann mehrere
Elemente enthalten, wie z.B. eine Liste von Links oder eine
Suchfunktion.
role="main"
-
Der Hauptinhalt einer Webseite. Er kann mehrere Elemente
enthalten, wie z.B. Artikel, Abschnitte und Nebeninhalte.
role="complementary"
-
Ein Bereich, der zusätzliche Informationen enthält, die
nicht zum Hauptinhalt gehören. Er kann mehrere Elemente
enthalten, wie z.B. eine Sidebar, eine Werbung oder
verwandte Links.
role="contentinfo"
-
Ein Bereich, der Informationen über die Webseite enthält. Er
kann mehrere Elemente enthalten, wie z.B. ein Impressum,
eine Datenschutzerklärung und eine Kontaktadresse.
role="search"
-
Ein Bereich, der eine Suchfunktion enthält. Er kann mehrere
Elemente enthalten, wie z.B. ein Eingabefeld, eine
Schaltfläche und eine Ergebnisliste.
role="form"
-
Ein Bereich, der ein Formular enthält. Er kann mehrere
Elemente enthalten, wie z.B. Eingabefelder, Schaltflächen
und Auswahllisten.
und so weiter.