BFSG-Audit DIY: Die 25-Punkt-Checkliste 2026

Stand: Mai 2026 · Lesezeit: 12 Minuten · Schwierigkeit: Mittel · Mit kostenlosen Tools

Sie wollen wissen, ob Ihre Website das Barrierefreiheitsstärkungsgesetz erfüllt — bevor Sie Geld für ein Audit ausgeben? Diese 25-Punkt-Checkliste deckt die häufigsten BFSG-Schwachstellen nach WCAG 2.2 Level AA ab. Sie können sie in 60–90 Minuten selbst durchgehen und ein klares Risikoprofil erstellen.

Die Liste folgt den vier WCAG-Prinzipien: Wahrnehmbar, Bedienbar, Verständlich, Robust. Jeder Punkt enthält: was zu prüfen ist, mit welchem Tool und was als Erfolgskriterium gilt.

Kostenlose Tools, die Sie brauchen

  • BFSGuard Scanner (kostenlos) — automatischer Vorab-Check über bfsguard.de
  • WAVE Browser-Extension (Chrome/Firefox) — visuelle Markierung von Fehlern
  • axe DevTools (Chrome/Firefox) — automatischer WCAG-Scanner mit Code-Bezug
  • Lighthouse (in Chrome DevTools eingebaut) — Performance + Accessibility
  • NVDA (kostenlos für Windows) — Screen-Reader für manuelle Tests
  • Colour Contrast Analyser (TPGi, kostenlos) — Kontrastmessung pixelgenau

Wahrnehmbar — 7 Prüfpunkte

1

Alt-Texte für alle Bilder

Jedes img-Element braucht ein alt-Attribut. Dekorative Bilder: alt="". Funktionsbilder: beschreibender Alt-Text.

Test: WAVE Extension → „Errors" → Suchbegriff „missing alt". Pass: 0 Fehler.

2

Kontrastverhältnis Text mindestens 4.5:1

Normaler Text muss zum Hintergrund 4.5:1 erreichen, Großtext 3:1, UI-Elemente 3:1.

Test: Colour Contrast Analyser auf Pipette setzen, Text-Farbe + Hintergrund messen. Pass: Alle Texte ≥ 4.5:1 (≥ 3:1 für 18pt+).

3

Sprache der Seite ist deklariert

html lang="de" auf der obersten Ebene. Anders-sprachige Abschnitte mit span lang="en".

Test: Quelltext-Ansicht (Strg+U) → erste Zeile prüfen. Pass: lang="de" ist gesetzt.

4

Videos haben Untertitel und Audiodeskription

Jedes Video mit Sprache braucht synchronisierte Untertitel (WCAG 1.2.2). Bei reinem Audio: Transkript.

Test: Video abspielen mit Ton aus. Pass: Inhalt ist verständlich über Untertitel.

5

Inhalt nicht durch Farbe allein vermittelt

„Roter Status = Fehler" reicht nicht. Zusätzlich Symbol oder Text: ⚠️ Fehler.

Test: Browser-Add-on „Spectrum" → Tritanopie-Filter aktivieren. Pass: Information ist immer noch erkennbar.

6

Text auf 200% vergrößerbar ohne Layout-Bruch

Nutzer:innen mit Sehbehinderung zoomen bis 200%. Layout darf nicht zerbrechen.

Test: Browser-Zoom auf 200% (Strg + + viermal). Pass: Kein horizontales Scrollen, alle Inhalte sichtbar.

7

PDF-Dokumente sind getaggt (PDF/UA)

Verträge, Kontoauszüge, Mahnungen müssen getaggte Strukturen haben — keine reinen Bild-PDFs.

Test: Adobe Acrobat → Werkzeuge → Barrierefreiheit → Vollständige Prüfung. Pass: Score „bestanden".

Bedienbar — 7 Prüfpunkte

8

Alle Funktionen per Tastatur erreichbar

Tab, Shift+Tab, Enter, Leertaste, Escape, Pfeiltasten — kein Mausklick nötig.

Test: Maus weglegen, nur Tab benutzen. Pass: Alle Buttons, Links, Formulare erreichbar.

9

Sichtbarer Fokus-Indikator

Beim Tab-Wechsel muss klar sein, welches Element gerade Fokus hat. Mindestens 2 Pixel Outline mit 3:1 Kontrast.

Test: Tab-Taste drücken und beobachten. Pass: Auffälliger Rahmen / Highlight um aktives Element.

10

Keine Tastaturfallen

Modal-Dialoge, Date-Picker, Lightboxen müssen mit Escape oder Tab verlassbar sein.

Test: Modal öffnen, dann Tab drücken bis zum Ende. Pass: Fokus springt zurück zum Dialog-Anfang oder schließt Dialog mit Esc.

11

Skip-Link „Zum Inhalt springen"

Erste Tab-Taste sollte einen Skip-Link sichtbar machen, der Navigation überspringt.

Test: Seite öffnen → Tab einmal drücken. Pass: Skip-Link wird sichtbar oder funktioniert beim Aktivieren.

12

Touch-Targets mindestens 24×24 Pixel

Buttons, Links, Form-Elemente: keine winzigen Klick-Flächen.

Test: Mobile Device-Toolbar in Chrome DevTools, Hover über interaktive Elemente. Pass: Alle ≥ 24×24px (besser 44×44px).

13

Bewegung und Animationen abschaltbar

Auto-Play-Videos, Karussells, parallax-Effekte müssen pausierbar sein. prefers-reduced-motion respektieren.

Test: System → „Bewegung reduzieren" aktivieren → Seite neu laden. Pass: Keine Animationen mehr aktiv.

14

Genug Zeit für Interaktionen

Session-Timeouts müssen verlängert werden können oder gewarnt werden vor Ablauf.

Test: Login-Formular nach 20 Minuten Untätigkeit. Pass: Warnung mit Verlängerungsoption.

Verständlich — 6 Prüfpunkte

15

Klare Überschriften-Hierarchie

Eine h1 pro Seite. Keine Ebenen überspringen (h1→h3 ohne h2).

Test: WAVE → „Structure" anklicken. Pass: H-Tags in logischer Folge.

16

Formularfelder haben Labels

Jedes input, select, textarea braucht ein verbundenes label. Placeholder ist kein Label.

Test: WAVE → „Form" → „Missing label". Pass: 0 Fehler.

17

Fehlermeldungen sind verständlich

Statt „Ungültige Eingabe" lieber „IBAN muss 22 Zeichen lang sein, Sie haben 18 eingegeben".

Test: Formular fehlerhaft ausfüllen. Pass: Fehlermeldung benennt Feld und Korrektur.

18

Konsistente Navigation

Hauptnavigation, Footer-Links und Breadcrumbs müssen auf jeder Seite an gleicher Stelle sein.

Test: 5 Seiten besuchen, Position des Logos / Menüs vergleichen. Pass: Identische Position.

19

Keine unerwarteten Kontextwechsel

Auswahl in Dropdown soll nicht ohne Submit-Button die Seite ändern oder neu laden.

Test: In Filter-Dropdown Wert wechseln. Pass: Kein Reload ohne Bestätigung.

20

Hilfe-Mechanismus durchgängig verfügbar

Kontaktformular, Telefonnummer, Help-Center muss von jeder Seite erreichbar sein.

Test: 3 zufällige Unterseiten öffnen, „Kontakt"-Link suchen. Pass: Auf allen Seiten erreichbar.

Robust — 5 Prüfpunkte

21

Valides HTML

Keine doppelten IDs, alle Tags geschlossen, ARIA-Attribute korrekt.

Test: validator.w3.org → URL eingeben. Pass: < 5 Errors (möglichst 0).

22

ARIA-Rollen korrekt verwendet

role="button" nur, wenn kein button-Element möglich. role="navigation" für Menüs.

Test: axe DevTools → „Issues" filtern. Pass: Keine kritischen ARIA-Fehler.

23

Live-Regions für Statusmeldungen

Toast-Benachrichtigungen, Erfolgsmeldungen mit aria-live="polite" oder role="status".

Test: NVDA aktivieren, Aktion auslösen, die Statusmeldung erzeugt. Pass: Screen-Reader spricht Meldung.

24

Cookie-Banner barrierefrei

Cookie-Consent-Tool muss WCAG 2.2 erfüllen — Tastaturnavigation, Screen-Reader, Kontrast.

Test: Banner mit Tab-Taste durchgehen, Buttons mit Enter aktivieren. Pass: Voll bedienbar ohne Maus.

25

Barrierefreiheitserklärung nach § 14 BFSG

Eigene Seite, im Footer verlinkt, mit Stand, Geltungsbereich, Feedback-Mechanismus, nicht-konformen Bereichen.

Test: Footer prüfen, Link „Barrierefreiheitserklärung" oder „Erklärung zur Barrierefreiheit" suchen. Pass: Vorhanden, aktuell, vollständig.

Score-Auswertung

Zählen Sie die bestandenen Punkte:

22–25
BFSG-konform
15–21
Teilweise konform
0–14
Handlungsbedarf

22–25 Punkte: Glückwunsch — Sie sind sehr nah an Vollkonformität. Letzte Lücken können mit BFSGuards Auto-Fix-Engine geschlossen werden.

15–21 Punkte: Risiko-Bereich. Eine Abmahnung ist möglich, aber durch gezielte Nachbesserung in 30–60 Tagen vermeidbar.

0–14 Punkte: Akute Gefahr. Mehrfache WCAG-AA-Verstöße erhöhen das Risiko auf Bußgeld und Abmahnung. Sofort priorisieren.

Diesen Audit automatisiert durchlaufen lassen

BFSGuards Scanner prüft alle 25 Punkte plus 30 weitere automatisch in unter 60 Sekunden — und liefert konkrete Fix-Anweisungen pro Befund.

Jetzt automatisierten Audit starten →

Was kommt nach dem DIY-Audit?

Mit dieser Checkliste erkennen Sie das Risikoprofil — aber Sie haben damit noch keine konformitätsfähige Dokumentation. Für ein BFSG-belastbares Ergebnis brauchen Sie zusätzlich:

  1. Strukturierten Audit-Report mit WCAG-Erfolgskriterium-Mapping (welcher Punkt = welches Kriterium 1.4.3 / 2.4.7 etc.)
  2. Audit-Trail mit Hash-Signaturen (für BaFin- und Marktüberwachungs-Anforderungen)
  3. § 14-Erklärung automatisch aus Audit-Daten generiert
  4. Quartalsweise Re-Scans mit Differenz-Reports
  5. Feedback-Mechanismus nach § 16 BFSG mit 30-Tage-Antwortpflicht

BFSGuard liefert all das aus einem System — von Scan über Auto-Fix bis Erklärungs-Generator. Ab 19,99 € pro Monat.