Wie wir Barrierefreiheits-VPATs in der CI automatisiert haben Wie wir Barrierefreiheits-VPATs in der CI automatisiert haben

Barrierefreiheits-Audits veralten schnell. Ein einziger Code-Merge ändert alles.

Wir haben das gelöst. Wir haben unsere Barrierefreiheits-Berichte in ein kontinuierliches Build-Artefakt verwandelt.

Unsere Pipeline nutzt drei Ebenen, um Fehler zu finden:

  • Statische Prüfungen: Wir verwenden axe-core für Basis-Tests in Storybook.
  • Interaktive Tests: Wir verwenden benutzerdefinierte Vitest-Helper, um Tastaturbedingungen zu testen.
  • Manuelle Audits: Wir speichern Screenreader-Ergebnisse als JSON-Dateien.

Unsere CI-Pipeline führt diese Ergebnisse zusammen.

Wenn ein Test fehlschlägt, schlägt auch der PR fehl. Wenn alle Tests bestehen, erstellt das System ein neues PDF. Dieses PDF wird mit dem Release ausgeliefert.

Wir haben einen Versuch unternommen, der gescheitert ist.

Wir haben versucht, ein LLM einzusetzen, um manuelle Audits zu ersetzen. Wir haben die Nutzung sofort eingestellt. KI-Ergebnisse schwanken zu stark. Für ein CI-Gate benötigt man stabile Ergebnisse.

Die vollständige technische Analyse finden Sie hier:

Quelle: https://dev.to/yassine_lakhdar_d0226709a/how-we-automated-our-accessibility-vpats-in-ci-46jk

ARTICLE: Ein Entwicklungsteam hat die Erstellung von Barrierefreiheits-VPATs (Voluntary Product Accessibility Templates) direkt in seiner Continuous-Integration-Pipeline (CI) automatisiert und so einen ehemals periodischen manuellen Bericht in ein Build-Artefakt verwandelt, das mit jedem Release ausgeliefert wird. Der neue Workflow blockiert Pull Requests, die Barrierefreiheits-Regressionen einführen, und erstellt automatisch ein PDF-Compliance-Dokument, wenn der Build erfolgreich ist. So wird sichergestellt, dass jede Codeänderung den Barrierefreiheitsstandards entspricht.

Warum Automatisierung wichtig ist

Barrierefreiheits-Audits werden in dem Moment obsolet, in dem neuer Code eingespielt wird. Ein einziger Merge kann fehlende Alt-Texte, eine falsche Fokus-Reihenfolge oder Screenreader-Probleme verursachen, die ein zuvor ausgestelltes VPAT ungültig machen. Die manuelle Einhaltung der Compliance bedeutet, Audits nach jeder Änderung erneut durchzuführen – ein kostspieliger und fehleranfälliger Prozess, der oft hinter der Entwicklungsgeschwindigkeit zurückbleibt. Durch die Einbettung von Prüfungen in die CI erhalten Teams sofortiges Feedback, halten die Compliance aktuell und vermeiden die rechtlichen sowie Reputationsrisiken, die mit der Auslieferung nicht barrierefreier Software einhergehen.

Der dreistufige Testansatz

  1. Statische Prüfungen – Die Pipeline führt axe-core aus, eine Open-Source-Bibliothek, die in Storybook gerenderte Komponenten auf bekannte Verstöße wie fehlende Landmarks oder unzureichende Farbkontraste scannt. Diese Tests erkennen Probleme, bevor eine Interaktion stattfindet.

  2. Interaktive Prüfungen – Benutzerdefinierte Vitest-Helper testen die Tastaturnavigationsregeln und verifizieren, dass sich der Fokus logisch bewegt und interaktive Elemente auf Standard-Tastaturevents reagieren. Diese Ebene geht über die statische Analyse hinaus, um die reale Nutzbarkeit sicherzustellen.

  3. Manuelle Audit-Artefakte – Ergebnisse aus Screenreader-Tests werden als JSON-Dateien gespeichert. Entwickler halten Beobachtungen während explorativer Tests fest und committen das JSON zusammen mit dem Code. Der CI-Job führt diese Artefakte mit den automatisierten Ergebnissen zusammen und erstellt so eine einzige „Single Source of Truth“ für das VPAT.

Wenn ein Test in den ersten beiden Ebenen fehlschlägt, wird der Pull Request blockiert, sodass die Änderung nicht in die Produktion gelangt. Wenn alle Tests bestehen, fügt die Pipeline die kombinierten Daten in einem PDF zusammen, das dem Release beigefügt wird, wodurch ohne zusätzlichen Aufwand ein aktuelles VPAT bereitgestellt wird.

Was nicht funktioniert hat

Das Team experimentierte mit dem Einsatz eines Large Language Models (LLM), um den manuellen Audit-Teil automatisch zu generieren. Die KI-generierten Ergebnisse schwankten zu stark, was das CI-Gate unzuverlässig machte. Konsistenz ist für eine binäre Pass/Fail-Prüfung unerlässlich, weshalb das Experiment zugunsten der JSON-basierten manuellen Artefakte aufgegeben wurde.

Worauf man als Nächstes achten sollte

Vorerst bietet das dreistufige CI-Modell einen pragmatischen Weg, um VPATs aktuell zu halten, den manuellen Aufwand zu reduzieren und Barrierefreiheit bei jeder Codeänderung im Fokus zu behalten.