HTML Accessibility Checker

Was ein Blick in den HTML-Ausschnitt zeigt

Feld, Bild, doppelte id, zweites label: vier Stellen im Markup.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 4.1.2Regler ohne zugänglichen Namen

Lokaler Prüfplatz

Ein Ausschnitt, drei Blickwinkel

Quelltext, gerenderte Seite und wiederholbarer Lauf finden unterschiedliche Teile desselben Problems.

Schematische Darstellung eines lokalen HTML-Ausschnitts. Die nummerierten Fundstellen verbinden Code, sichtbare Seite und Diagnose.
pruefen.htmlQuelltext
01<label for="mail">E-Mail</label>
02<input id="mail" type="email">
03<img src="team.jpg">1
04<p id="hinweis">Pflichtfeld</p>
05<p id="hinweis">Antwort in 2 Tagen</p>2
06<input id="ort" type="text">3
3 HinweiseHTMLlokale Datei
Gerenderte Seitelocalhost
  1. 1
    Bild ohne altDie Textalternative fehlt.
  2. 2
    id doppeltDer Verweis ist nicht eindeutig.
  3. 3
    Feld ohne verbundenen NamenSichtbarer Text allein reicht nicht.

Die drei Linsen liegen an verschiedenen Stellen

Quelleaxe Accessibility Linter

Markiert statische Muster direkt in HTML, JSX, Angular oder Vue.

code --install-extension
deque-systems.vscode-axe-linter
Gerenderte SeiteWAVE Browser-Erweiterung

Sieht den aktuellen Browserzustand nach CSS und JavaScript.

Erweiterungs-Store
„WAVE Evaluation Tool“
Wiederholbarer LaufPa11y CLI

Prüft eine lokale Datei oder URL und liefert einen Exit-Code.

npm install -g pa11y
pa11y /absoluter/pfad/pruefen.html

Welche Linse sieht welchen Zustand?

Ein grüner Lauf bedeutet nur: Die ausgeführten Regeln fanden keinen Verstoß. Er ersetzt keine Beurteilung durch Menschen.

PrüfgegenstandLinterBrowserCLIMensch
HTML im Editorsiehtnicht direktnicht direktprüfbar
DOM nach JavaScriptsieht nichtsiehtsiehtprüfbar
CSS und Kontrastbegrenztsiehtsiehtbeurteilt
Passt der Alt-Text zum Bild?sieht nichtHinweisHinweisbeurteilt
Ist der Ablauf verständlich?sieht nichtsieht nichtsieht nichtbeurteilt

Für eine Datei brauchen Sie keinen lokalen Server

Pa11y akzeptiert laut Projektdokumentation einen absoluten Pfad zu einer HTML-Datei. Ein Server wird erst nötig, wenn Ihre Seite Routing, APIs oder andere Laufzeitabhängigkeiten benötigt.

So prüfen Sie es

  1. Öffnen Sie den Ausschnitt im Editor. Korrigieren Sie fehlende Attribute, ungültige Werte und eindeutige Verweise dort, wo sie entstehen.
  2. Öffnen Sie dieselbe Datei im Browser. Prüfen Sie den gerenderten DOM, Kontrast, Fokus und Zustände nach JavaScript.
  3. Wiederholen Sie den Lauf in der Kommandozeile. Halten Sie Datei, Runner und Ausgabe fest, damit der Befund reproduzierbar bleibt.
  4. Bewerten Sie danach Inhalt und Bedienweg: Alt-Texte, Tastaturreihenfolge, Fehlermeldungen und Verständlichkeit brauchen Kontext.

Aus dem Prüfbericht

Vier Regeln, vier Befunde

Prüfen Dieselbe id an zwei Elementen Regel duplicate-id-aria

Ein aria-describedby trifft dann zwei Ziele und die Ausgabe wird unsicher. Vergeben Sie eindeutige ids und ziehen Sie die Verweise nach.

Anleitung: Doppelte IDs in ARIA-Bezügen prüfen

Prüfen Zwei label an einem Feld Regel form-field-multiple-labels

Manche Ausgaben lesen nur eines der beiden vor. Ein label bleibt der Name, der Zusatz wird ein Hinweis über aria-describedby.

Anleitung: Mehrfache Feldbeschriftungen prüfen

Zum Mitnehmen

Der Ausschnitt, korrigiert

Ein Name je Feld, ein alt je Bild, eine id je Element.

Korrektur in 3 Schritten ansehen
  1. Feld und Bild benennen

    Das span wird zum label mit for. Das Bild bekommt einen alt-Text, der seinen Beitrag zum Inhalt nennt.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <span>E-Mail-Adresse</span>
    <input id="mail" type="email">
    <img src="werkstatt.jpg">

    Nachher

    <label for="mail">E-Mail-Adresse</label>
    <input id="mail" type="email">
    <img src="werkstatt.jpg" alt="Vier Mitarbeitende in der Werkstatt">

    Markierte Zeilen wurden geändert

    So prüfen Sie es Klicken Sie auf „E-Mail-Adresse“. Springt der Cursor ins Feld, ist der Name verbunden.

  2. Doppelte id auflösen

    Jede id kommt genau einmal vor. Der Verweis in aria-describedby zeigt danach eindeutig auf den Hinweis, der gemeint ist.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <p id="hinweis">Wir antworten innerhalb von zwei Tagen.</p>
    <input id="mail" type="email" aria-describedby="hinweis">
    <p id="hinweis">Pflichtfeld.</p>

    Nachher

    <p id="hinweis-antwort">Wir antworten innerhalb von zwei Tagen.</p>
    <input id="mail" type="email" aria-describedby="hinweis-antwort">
    <p id="hinweis-pflicht">Pflichtfeld.</p>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Suchen Sie den id-Wert im Quelltext. Er darf nur ein einziges Mal auftauchen.

  3. Das zweite label zum Hinweis machen

    Das Feld behält einen Namen. Der Einheitenhinweis bleibt sichtbar und wird über aria-describedby als Beschreibung verbunden.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <label for="stunden">Mietdauer</label>
    <input id="stunden" type="number" min="1" max="24">
    <label for="stunden">Angabe in Stunden</label>

    Nachher

    <label for="stunden">Mietdauer</label>
    <input id="stunden" type="number" min="1" max="24"
      aria-describedby="stunden-hinweis">
    <span id="stunden-hinweis">Angabe in Stunden</span>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm sagt „Mietdauer“ und danach „Angabe in Stunden“.

Werbung

Kostenloser Website-Barrierefreiheits-Check

Website auf Barrierefreiheit prüfen.

Technische WCAG-Warnsignale erkennen. Kritische Stellen zuerst prüfen.

Der Website-Check ist bereit.

Werbung

Ein letzter Schritt

Prüfen, bevor Sie gehen.

Finden Sie automatisch erkennbare Barrieren auf Ihrer eigenen Website.

Website prüfen

Kostenlos starten · keine Installation

Automatisches Screening. Tastaturbedienung und Screenreader bleiben manuelle Prüfung.