Best Practices
Konkrete Empfehlungen für barrierefreie Websites, gruppiert nach Themen — als Checkliste für Design und Entwicklung.
Farbe & Kontrast
- Text und Hintergrund brauchen mindestens 4.5:1 Kontrast (3:1 bei großer Schrift ab 24px bzw. 19px fett).
- Informationen nie ausschließlich über Farbe vermitteln (z. B. Fehler nur rot markieren) — zusätzlich Text, Icon oder Muster nutzen.
- Kontrast auch bei Hover-, Fokus- und Platzhaltertexten in Formularfeldern prüfen.
- Mit einem Kontrast-Checker gegen den tatsächlich gerenderten Hintergrund testen, nicht nur gegen die Designvorlage.
Bilder & Medien
- Informative Bilder brauchen einen aussagekräftigen Alternativtext, der den Zweck beschreibt, nicht nur das Motiv.
- Rein dekorative Bilder erhalten ein leeres alt="", damit Screenreader sie überspringen.
- Videos brauchen Untertitel, Audioinhalte nach Möglichkeit ein Transkript.
- Bei komplexen Grafiken (Diagramme, Infografiken) den Inhalt zusätzlich als Text bereitstellen.
Tastaturbedienung
- Alle interaktiven Elemente müssen per Tab erreichbar und per Enter/Leertaste bedienbar sein.
- Der Fokus muss immer sichtbar sein — Standard-Fokusrahmen nicht per CSS entfernen, ohne eine gleichwertige Alternative zu setzen.
- Die Tab-Reihenfolge sollte der visuellen/logischen Reihenfolge der Seite entsprechen.
- Ein Sprunglink („Zum Hauptinhalt springen") am Seitenanfang erspart wiederholtes Durchtabben der Navigation.
- Keine Tastaturfallen: Aus jedem Element (z. B. einem Modal) muss man per Tastatur wieder herauskommen.
Struktur & Semantik
- Genau eine h1 pro Seite, Überschriftenebenen ohne Sprünge (h2 folgt auf h1, nicht h2 direkt auf h4).
- Seitenbereiche mit semantischen Landmarks gliedern: main, nav, header, footer statt generischer <div>s.
- Native HTML-Elemente statt nachgebauter Interaktivität verwenden — <button> statt klickbarem <div>, <a href> statt onClick auf <span>.
- Sprache des Dokuments im <html lang="…">-Attribut korrekt setzen.
Formulare
- Jedes Formularfeld braucht ein sichtbares, programmatisch verknüpftes <label> — Platzhaltertext allein reicht nicht.
- Pflichtfelder und Formatanforderungen (z. B. Datumsformat) vor dem Absenden klar kommunizieren, nicht nur per Farbe.
- Fehlermeldungen konkret und mit dem betroffenen Feld verknüpft ausgeben (z. B. via aria-describedby), nicht nur als allgemeiner Banner.
- Zusammengehörige Felder (z. B. Adresse) mit <fieldset> und <legend> gruppieren.
Interaktive Elemente
- Links und Buttons brauchen einen Text, der ihren Zweck auch außerhalb des Kontexts verständlich macht — nicht nur „Hier klicken" oder „Mehr".
- Touch-Ziele auf Mobilgeräten mindestens 24×24 Pixel groß und mit ausreichend Abstand zueinander gestalten.
- Bei Icon-only-Buttons einen zugänglichen Namen per aria-label ergänzen.
- Zustände (ausgewählt, deaktiviert, ausgeklappt) sowohl visuell als auch über ARIA-Attribute (aria-expanded, aria-selected, aria-disabled) kommunizieren.
Testen & Iterieren
- Automatisierte Scans wie diesen regelmäßig in den Entwicklungsprozess einbauen, idealerweise vor jedem Release.
- Automatisierte Ergebnisse durch manuelle Tastatur- und Screenreader-Tests ergänzen (z. B. NVDA, VoiceOver).
- Nach Möglichkeit echtes Nutzerfeedback von Menschen einholen, die assistierende Technologien einsetzen.
- Barrierefreiheit von Anfang an mitdenken (Design, Konzeption), nicht erst kurz vor dem Launch nachbessern.