axe-core in den Entwickler-Workflow integrieren
AI generated
A11Y
WCAG
Barrierefreiheit · Tooling & Prozess
axe-core in den Entwickler-Workflow integrieren
Warum die Bibliothek hinter den meisten Accessibility-Tools schon vor der CI-Pipeline zum Einsatz kommen sollte

axe-core von Deque Systems ist längst kein einzelnes Werkzeug mehr, sondern die gemeinsame Prüfengine hinter axe DevTools, Lighthouse, jest-axe, Cypress-axe und zahlreichen weiteren Testing-Tools, die alle dieselben Regeln gegen dieselbe DOM-Struktur laufen lassen. Wer axe-core ausschließlich als Teil der CI-Pipeline betrachtet, verschenkt jedoch den größten Vorteil der Bibliothek: die Möglichkeit, Barrieren in Sekunden direkt am eigenen Arbeitsplatz zu entdecken, lange bevor ein Commit überhaupt existiert. Dieser Artikel zeigt, wie axe-core in Storybook, in der lokalen Entwicklung und über die Browser-Extension täglich genutzt wird, und wo die reale Grenze automatisierter Erkennung liegt.

11 Min. Lesezeit axe-core Storybook Browser-Extension

1. axe-core als Bibliothek: der Motor hinter vielen Testing-Tools

axe-core ist im Kern eine JavaScript-Bibliothek, die eine gerenderte Seite gegen einen festen Satz von Regeln prüft und für jeden Treffer eine strukturierte Meldung mit betroffenem Element, verletzter Regel und zugehörigem WCAG-Erfolgskriterium zurückgibt. Diese Engine wird nicht neu erfunden, sobald ein neues Tool erscheint, sondern von Deque Systems zentral gepflegt und von Dritt-Werkzeugen als Abhängigkeit eingebunden, weshalb axe DevTools im Browser, Lighthouse in Chrome und jest-axe in der Unit-Test-Suite in aller Regel dieselben Grundbefunde liefern.

Für ein Entwicklungsteam bedeutet das: Wer versteht, wie axe-core als Bibliothek funktioniert, versteht damit gleichzeitig einen großen Teil der automatisierten Barrierefreiheitsprüfung im gesamten Ökosystem, unabhängig davon, ob die konkrete Oberfläche eine Browser-Extension, ein Kommandozeilen-Runner oder ein Storybook-Addon ist. Das erleichtert es, ein einziges gemeinsames Regelverständnis im Team zu etablieren, statt für jedes Tool eine eigene Interpretation zu pflegen.

2. Die Grenzen automatisierter Erkennung: nur 30 bis 40 Prozent der WCAG-Kriterien

Deque selbst gibt an, dass axe-core zuverlässig zwischen 30 und 40 Prozent der WCAG-Erfolgskriterien automatisiert prüfen kann, weil viele Kriterien eine inhaltliche oder kontextuelle Bewertung erfordern, die eine Maschine schlicht nicht leisten kann. Ob ein Alt-Text den Bildinhalt sinnvoll beschreibt, ob eine Fehlermeldung tatsächlich verständlich ist oder ob die Tab-Reihenfolge einer komplexen Formularseite logisch nachvollziehbar bleibt, kann axe-core nicht bewerten. Es kann lediglich feststellen, ob überhaupt ein Alt-Attribut vorhanden ist, nicht ob dessen Inhalt sinnvoll ist.

Dieses Wissen um die Grenze ist entscheidend, damit ein Team nicht in die Falle tappt, eine grüne axe-core-Prüfung mit vollständiger Barrierefreiheit zu verwechseln. Eine Seite ohne axe-core-Fehler kann trotzdem für Screenreader-Nutzende unbrauchbar sein, etwa weil eine Live-Region fehlt, eine Fokusreihenfolge unlogisch springt oder eine Interaktion sich rein visuell, aber nicht semantisch korrekt verhält. Automatisierte Werkzeuge wie axe-core sind ein Sicherheitsnetz gegen offensichtliche technische Fehler, kein Ersatz für manuelle Prüfung und echtes Nutzertesten.

3. Die axe DevTools Browser-Extension im täglichen Einsatz

Die axe DevTools Extension für Chrome und Firefox bindet axe-core direkt in die Browser-Entwicklertools ein und erlaubt einen vollständigen Seiten-Scan mit einem einzigen Klick, ohne dass irgendein Code geschrieben oder ein Build-Schritt ausgeführt werden muss. Für Entwicklerinnen und Entwickler, die gerade an einer Produktdetailseite oder einem Formular im Hyvä-Theme arbeiten, ist dieser Scan die schnellste Möglichkeit, unmittelbar nach einer Änderung zu prüfen, ob neue Verstöße gegen Kontrast, fehlende Labels oder ungültige ARIA-Attribute entstanden sind.

Über den reinen automatisierten Scan hinaus bietet die Extension auch geführte Tests, sogenannte Intelligent Guided Tests, bei denen Kriterien, die axe-core nicht automatisiert prüfen kann, als strukturierte Checkliste mit konkreten Fragen präsentiert werden, etwa ob eine Bildbeschreibung inhaltlich zum Bild passt. Diese geführten Tests schließen einen Teil der Lücke zwischen den 30 bis 40 Prozent automatisierter Abdeckung und einer vollständigen manuellen Prüfung, ohne dass dafür ein separates Tool nötig wäre.

4. axe-core in Storybook integrieren: Komponenten isoliert prüfen

Storybook eignet sich besonders gut für axe-core, weil dort jede Komponente in einem isolierten, kontrollierten Zustand gerendert wird, unabhängig von Seitenkontext oder Ladezustand einer echten Magento-Seite. Das offizielle Addon @storybook/addon-a11y bindet axe-core direkt in jede Story ein und zeigt Verstöße als eigenes Panel neben der Komponente an, sodass ein neues Button- oder Formular-Feld-Design geprüft werden kann, lange bevor es überhaupt in eine echte Seite eingebaut wird.

Der entscheidende Unterschied zur CI-Pipeline liegt im Zeitpunkt: Während eine CI-Prüfung erst beim Push oder Merge-Request greift, meldet das Storybook-Addon Verstöße bereits während der Entwicklung der Komponente selbst, in Echtzeit, während die Story im Browser geöffnet ist. Das verkürzt die Feedback-Schleife von Minuten oder Stunden auf Sekunden und macht Barrierefreiheit zu einem Bestandteil des Komponenten-Designs statt zu einem nachträglichen Korrekturschritt.


// .storybook/main.js
export default {
  addons: [
    '@storybook/addon-essentials',
    '@storybook/addon-a11y', // rendert axe-core-Ergebnisse im Accessibility-Panel
  ],
};

// .storybook/preview.js
export const parameters = {
  a11y: {
    // Regelsatz auf WCAG 2.1 AA einschraenken, konsistent mit dem Shop-Standard
    config: {
      runOnly: { type: 'tag', values: ['wcag2a', 'wcag2aa', 'wcag21aa'] },
    },
  },
};

5. axe-core direkt in der lokalen Entwicklung nutzen

Neben Storybook lässt sich axe-core auch ganz ohne zusätzliches Tooling direkt in der Browser-Konsole gegen eine lokal laufende Magento- oder Hyvä-Seite ausführen, indem das Skript einmalig über die Konsole geladen und anschließend axe.run() aufgerufen wird. Dieser Weg eignet sich besonders für einen schnellen Ad-hoc-Check während der Arbeit an einer einzelnen Seite, etwa direkt nach dem Speichern einer .phtml-Datei und dem Neuladen der Seite im Browser.

Für ein etwas dauerhafteres lokales Setup lohnt sich ein kleines Bookmarklet oder ein npm-Skript, das axe-core gegen eine laufende Entwicklungsinstanz ausführt und das Ergebnis direkt im Terminal ausgibt, ohne dass dafür die Browser-Extension geöffnet werden muss. So bleibt der Check so nah wie möglich am eigentlichen Entwicklungsfluss und erzeugt keine zusätzliche Reibung, die Entwickler dazu verleiten würde, den Schritt einfach zu überspringen.

6. Abgrenzung zur CI-Pipeline: Entwickler-Feedback statt Merge-Gate

Eine automatisierte axe-core-Prüfung in der CI-Pipeline, wie sie in einem anderen Artikel dieser Reihe beschrieben wird, verfolgt einen fundamental anderen Zweck als der Einsatz im Entwickler-Workflow: Sie ist ein Gate, das einen Merge-Request bei bekannten, klar definierten Regressionen blockiert, und sie läuft nach der eigentlichen Entwicklungsarbeit, oft Minuten oder Stunden nach der letzten Code-Änderung. Der Entwickler-Workflow mit Storybook, Browser-Extension und lokalem Check hingegen liefert Feedback in dem Moment, in dem eine Komponente entsteht, und verhindert damit, dass ein Fehler überhaupt erst bis zum Commit gelangt.

Beide Ebenen ergänzen sich, ersetzen sich aber nicht gegenseitig: Die CI-Pipeline ist das Sicherheitsnetz für den Fall, dass ein Fehler trotz lokaler Prüfung durchrutscht oder ein Entwickler den lokalen Check aus Zeitdruck übersprungen hat, während der lokale Workflow die Zahl der Fehler reduziert, die überhaupt erst bis zur CI-Stufe vordringen. Ein Team, das nur auf die CI-Pipeline setzt, verlagert Barrierefreiheit an das Ende des Prozesses, wo eine Korrektur teurer ist als am Anfang.

7. Regelsatz und Tags gezielt konfigurieren

axe-core organisiert seine Regeln über Tags wie wcag2a, wcag2aa, wcag21aa oder best-practice, wodurch sich die Prüfung präzise auf den tatsächlich angestrebten Konformitätsgrad einschränken lässt, statt pauschal alle verfügbaren Regeln gegen jede Komponente laufen zu lassen. Ein Shop, der WCAG 2.1 AA als Ziel definiert hat, sollte diesen Tag-Filter konsequent in Storybook, in der Browser-Extension-Konfiguration und in der CI-Pipeline identisch setzen, damit alle drei Ebenen dieselbe Grundlage prüfen und keine widersprüchlichen Ergebnisse liefern.

Für einzelne, bewusst akzeptierte Ausnahmen, etwa ein Drittanbieter-Widget, dessen Markup nicht verändert werden kann, unterstützt axe-core gezielte Ausschlüsse über Selektoren oder einzelne Regel-IDs, sodass ein bekannter, nicht behebbarer Fehler nicht bei jedem einzelnen Lauf erneut als Rauschen erscheint. Solche Ausschlüsse gehören dokumentiert und regelmäßig überprüft, damit sie nicht stillschweigend zu einer dauerhaften Ausrede werden, echte Fehler zu ignorieren.

8. Vom Finding zum Fix: Workflow im Team etablieren

Ein axe-core-Befund, der lokal während der Entwicklung auftaucht, sollte in derselben Sitzung behoben werden, in der die Komponente entsteht, weil der Kontext dann noch vollständig präsent ist und die Korrektur meist nur wenige Minuten kostet. Wird der Befund stattdessen ignoriert und erst später, etwa bei einem separaten Accessibility-Audit, wieder aufgegriffen, muss sich eine andere Person erneut in den Code einarbeiten, was den gesamten Prozess deutlich verlangsamt.

Damit dieser Sofort-Fix-Reflex im Team tatsächlich entsteht, hilft eine klare, gemeinsam getragene Regel: Jede neue Komponente durchläuft vor dem ersten Commit mindestens einen Storybook-Scan oder einen Extension-Check, und ein bewusst akzeptierter, nicht behobener Befund wird niemals stillschweigend übergangen, sondern explizit als Ticket mit Begründung dokumentiert. So bleibt nachvollziehbar, welche Entscheidung getroffen wurde, statt dass Wissen allein im Kopf einer einzelnen Person existiert.

9. Praxisbeispiel: eine Hyvä-Komponente mit axe-core prüfen

Am Beispiel eines Mini-Cart-Dropdowns im Hyvä-Theme zeigt sich der Zusammenspiel aller drei Ebenen konkret: Während der Entwicklung meldet die axe DevTools Extension sofort, dass der Öffnen-Button kein zugängliches Label besitzt, weil nur ein SVG-Icon ohne Text enthalten ist. Die Korrektur mit einem aria-label direkt im Alpine.js-Template ist in weniger als einer Minute erledigt und wird unmittelbar im Browser erneut geprüft, statt erst Stunden später in einem CI-Report aufzutauchen.

Derselbe Test lässt sich anschließend als automatisierter Regressionsschutz in einer Storybook-Story für die Komponente hinterlegen, sodass jede künftige Änderung am Mini-Cart automatisch erneut gegen dieselbe Regel geprüft wird, ohne dass dafür ein manueller Schritt nötig wäre.


<!-- vor der Korrektur: Button ohne zugaengliches Label -->
<button @click="miniCartOpen = true" class="relative">
  <svg class="w-6 h-6" aria-hidden="true"><!-- Warenkorb-Icon --></svg>
</button>

<!-- nach der Korrektur: axe-core meldet keinen Verstoss mehr -->
<button
  @click="miniCartOpen = true"
  class="relative"
  :aria-label="`Warenkorb, ${cartCount} Artikel`"
>
  <svg class="w-6 h-6" aria-hidden="true"><!-- Warenkorb-Icon --></svg>
</button>
Werkzeug Einsatzort Zeitpunkt im Workflow Typische Nutzung
axe-core Bibliothek Browser-Konsole, npm-Skript Ad-hoc, während der Arbeit an einer Seite Schneller manueller Check nach einer Änderung
axe DevTools Extension Browser-Entwicklertools Während der Entwicklung, vor jedem Commit Vollständiger Scan plus geführte Tests
@storybook/addon-a11y Storybook-Oberfläche Beim Bau einzelner Komponenten Isolierte Komponentenprüfung in Echtzeit
axe-core CI-Runner GitLab CI, GitHub Actions Beim Push oder Merge-Request Automatisiertes Gate gegen Regressionen
Guided Tests (Extension) Browser-Entwicklertools Ergänzend zum automatisierten Scan Prüfung nicht automatisierbarer Kriterien

Mironsoft

WCAG-Audits, barrierefreie Magento-Shops und Schulungen

Unsicher, ob der Shop wirklich barrierefrei ist?

Wir prüfen bestehende Magento-Shops gegen WCAG 2.2, beheben konkrete Barrieren im Hyvä-Frontend und schulen Teams, damit Barrierefreiheit dauerhaft im Entwicklungsprozess verankert bleibt.

WCAG-Audit

Shop systematisch gegen WCAG 2.2 AA prüfen, mit priorisierter Fehlerliste.

Barrieren beheben

Konkrete Umsetzung: Tastaturbedienbarkeit, Screenreader-Support, Kontraste, Formulare.

Team-Schulung

Entwickler und Redakteure für barrierefreie Umsetzung im Alltag sensibilisieren.

10. Zusammenfassung

axe-core im Entwickler-Workflow: Das Wichtigste auf einen Blick

Reichweite

axe-core prüft automatisiert nur etwa 30 bis 40 Prozent der WCAG-Kriterien, der Rest bleibt manuelle Aufgabe.

Storybook

@storybook/addon-a11y prüft Komponenten isoliert und in Echtzeit, noch vor dem ersten Commit.

Browser-Extension

axe DevTools liefert vollständige Scans plus geführte Tests für nicht automatisierbare Kriterien.

Abgrenzung zur CI

Der Entwickler-Workflow verhindert Fehler, die CI-Pipeline fängt nur ab, was durchrutscht.

11. FAQ: axe-core im Entwickler-Workflow: Das Wichtigste auf einen Blick

1Was ist der Unterschied zwischen axe-core und axe DevTools?
axe-core ist die zugrunde liegende JavaScript-Bibliothek und Prüfengine, während axe DevTools eine Browser-Extension ist, die axe-core in eine bedienbare Oberfläche mit vollständigen Scans und geführten Tests einbettet. Viele weitere Tools wie Lighthouse oder jest-axe nutzen dieselbe axe-core-Engine unter der Haube.
2Warum reicht ein grüner axe-core-Scan nicht für vollständige Barrierefreiheit aus?
axe-core kann laut Deque zuverlässig nur etwa 30 bis 40 Prozent der WCAG-Erfolgskriterien automatisiert prüfen, weil viele Kriterien eine inhaltliche Bewertung erfordern, etwa ob ein Alt-Text tatsächlich sinnvoll ist. Eine Seite ohne axe-core-Fehler kann trotzdem erhebliche Barrieren enthalten, die nur manuelle Prüfung oder echtes Nutzertesten aufdeckt.
3Wie unterscheidet sich der Einsatz von axe-core in Storybook von der CI-Pipeline?
In Storybook prüft das Addon jede Komponente isoliert und in Echtzeit während der Entwicklung, lange bevor ein Commit existiert. Die CI-Pipeline prüft dagegen erst beim Push oder Merge-Request und dient als nachgelagertes Gate gegen Regressionen, nicht als primäre Feedback-Quelle für Entwickler.
4Welches Addon bindet axe-core in Storybook ein?
Das offizielle Addon heißt @storybook/addon-a11y und zeigt axe-core-Ergebnisse als eigenes Panel direkt neben jeder Story an, inklusive betroffenem Element, verletzter Regel und Schweregrad des Befunds.
5Kann axe-core auch ohne zusätzliches Tooling genutzt werden?
Ja, axe-core lässt sich als Skript direkt in der Browser-Konsole laden und mit axe.run() gegen die aktuell geöffnete Seite ausführen, ganz ohne Build-Schritt oder installierte Extension. Das eignet sich für schnelle Ad-hoc-Checks während der Arbeit an einer einzelnen Seite.
6Was sind Intelligent Guided Tests in axe DevTools?
Guided Tests sind eine strukturierte Checkliste für WCAG-Kriterien, die axe-core nicht automatisiert prüfen kann, etwa ob eine Bildbeschreibung inhaltlich zum Bild passt. Sie führen Schritt für Schritt durch konkrete Fragen und schließen damit einen Teil der Lücke zwischen automatisierter und manueller Prüfung.
7Wie lässt sich der axe-core-Regelsatz auf WCAG 2.1 AA einschränken?
Über die runOnly-Konfiguration mit Tag-Filtern wie wcag2a, wcag2aa und wcag21aa lässt sich die Prüfung präzise auf den gewünschten Konformitätsgrad einschränken. Diese Konfiguration sollte in Storybook, Browser-Extension und CI-Pipeline identisch gesetzt werden, damit alle Ebenen dieselbe Grundlage prüfen.
8Wie geht ein Team mit bewusst akzeptierten axe-core-Befunden um, die nicht behoben werden können?
Solche Ausnahmen, etwa bei nicht veränderbarem Drittanbieter-Markup, lassen sich über gezielte Selektor- oder Regel-Ausschlüsse konfigurieren, sollten aber immer dokumentiert und regelmäßig überprüft werden, damit sie nicht zu einer dauerhaften Ausrede werden.
9Warum sollte ein axe-core-Befund sofort und nicht erst später behoben werden?
Wird ein Befund direkt während der Entwicklung der Komponente behoben, ist der Kontext noch vollständig präsent und die Korrektur kostet meist nur wenige Minuten. Wird er erst bei einem späteren Audit wieder aufgegriffen, muss sich häufig eine andere Person erneut einarbeiten, was den gesamten Prozess deutlich verlangsamt.
10Ersetzt axe-core im Entwickler-Workflow die axe-core-Prüfung in der CI-Pipeline?
Nein, beide Ebenen ergänzen sich. Der Entwickler-Workflow reduziert die Zahl der Fehler, die überhaupt erst bis zur CI-Stufe vordringen, während die CI-Pipeline als Sicherheitsnetz für Fälle dient, in denen ein lokaler Check aus Zeitdruck übersprungen wurde oder ein Fehler trotzdem durchrutscht.