Accessibility Testing 2026 im Team: automatische Tests mit Cypress und axe, manuelle Checks, Tests mit Menschen mit Behinderung und Shift left
Mehr erfahren
Accessibility Testing Tools sind Werkzeuge, die Websites und Web Apps auf Barrieren prüfen, etwa fehlende Alternativtexte, schwache Kontraste oder falsche ARIA Attribute. Dazu zählen Linter im Editor, Browser Extensions, Test Engines wie axe-core in der CI Pipeline und Hilfen für die manuelle Prüfung.
Stell dir einen Werkzeugkoffer vor. Der Hammer schlägt Nägel ein, die Wasserwaage zeigt, ob das Regal gerade hängt, der Zollstock misst. Jedes Werkzeug kann eine Sache richtig gut. Ein Haus baut aber keines davon allein.
Genau so ist es bei Barrierefreiheit. Ein Linter findet Fehler beim Tippen, eine Extension zeigt Probleme auf der fertigen Seite, ein Test im CI schützt jedes Release. Ob eine Seite wirklich gut nutzbar ist, entscheidet am Ende ein Mensch mit Tastatur und Screenreader.
Ein Tag inhouse mit Roland Golla, offizieller Cypress Ambassador und seit über 20 Jahren in Testing und Refactoring zu Hause. Auf unserem YouTube Kanal zeigt er in über 70 Live Coding Tutorials, wie Cypress in echten Projekten läuft. Dazu kommt unser Open Source Plugin NCA TESTIFY: Basistests für jede Website, mit einer Zeile im CI/CD Setup. Im Workshop lernt euer Team Setup, stabile Selektoren, Custom Commands und Tests in der Pipeline.
Bei NCA bauen wir Frontends mit Astro, React und Vue. Getestet wird mit Cypress und Cypress Cloud, die Pipelines laufen in GitHub Actions und GitLab CI. cypress-axe ist bei uns Teil dieser Tests. So wissen wir aus dem Alltag, welches Werkzeug welchen Fehler findet und wo die Automatisierung aufhört.
Wir helfen euch, die passenden Werkzeuge auszuwählen und in eure Teststrategie für Barrierefreiheit einzubauen. Wo Tools nicht reichen, prüfen wir in einem Accessibility Audit von Hand gegen die WCAG Kriterien. Gefundene Fehler beheben wir im barrierefreien Webdesign und Frontend, von sauberem semantischem HTML bis zur Bedienung per Tastatur.
Wer ein Regal aufhängt, greift nicht fünfmal zum Hammer. Erst misst der Zollstock, dann bohrt die Maschine, am Ende prüft die Wasserwaage. Die Reihenfolge zählt, und jedes Werkzeug kommt genau dann dran, wenn es am meisten bringt.
Bei Tests für Barrierefreiheit ist es genauso:
Viele Teams greifen zum bekanntesten Werkzeug und hoffen, dass es alles erledigt. Ein grüner Haken heißt aber nur, dass dieses eine Tool nichts gefunden hat. Erst alle Handgriffe zusammen ergeben ein stabiles Haus.
Die meisten bekannten Tools sind Open Source. Viele davon bauen auf derselben Engine auf. Ein kurzer Blick auf die wichtigsten:
cy.injectAxe() und cy.checkA11y(). Lizenz ist MIT.Für einzelne Spezialaufgaben gibt es eigene Seiten im Glossar, etwa zu ANDI, dem Silktide Accessibility Checker und dem Design Plugin Stark.
Je früher ein Fehler auffällt, desto kleiner ist der Aufwand. Die Tabelle ordnet die Werkzeuge vier Stufen zu, vom Editor bis zur Prüfung durch einen Menschen. Jede Stufe fängt andere Fehler.
Verstöße lesbar ins Terminal schreiben. cypress-axe nimmt bei cy.checkA11y() einen Callback entgegen, der alle gefundenen Verstöße bekommt. Zwei kleine Tasks in der Cypress Konfiguration schreiben sie als Tabelle in die Ausgabe. So steht im Log der Pipeline sofort, welche Regel an wie vielen Stellen verletzt ist. In der Support Datei cypress/support/e2e.js reicht dafür ein import 'cypress-axe'.
// cypress.config.js
const { defineConfig } = require('cypress')
module.exports = defineConfig({
e2e: {
setupNodeEvents(on) {
on('task', {
log(message) {
console.log(message)
return null
},
table(message) {
console.table(message)
return null
}
})
}
}
})
// cypress/e2e/kontakt.a11y.cy.js
function logViolations(violations) {
cy.task('log', `${violations.length} Verstöße gegen Barrierefreiheit gefunden`)
cy.task(
'table',
violations.map(({ id, impact, description, nodes }) => ({
id,
impact,
description,
nodes: nodes.length
}))
)
}
describe('Kontaktformular', () => {
beforeEach(() => {
cy.visit('/kontakt')
cy.injectAxe()
})
it('hat keine schweren Verstöße beim Laden', () => {
cy.checkA11y('main', { includedImpacts: ['serious', 'critical'] }, logViolations)
})
it('bleibt nach leerem Absenden barrierefrei', () => {
cy.get('button[type="submit"]').click()
cy.checkA11y('form', null, logViolations)
})
})
Zum Vergleich pa11y-ci. Pa11y braucht keinen Testcode. Eine Datei .pa11yci im Projekt listet die URLs, unter defaults stehen Optionen für alle Seiten. Hier laufen beide Engines, axe-core und HTML_CodeSniffer, gegen eine lokale Astro Seite. Dafür sieht pa11y-ci keine Klicks oder Formularzustände, ohne dass ihr Aktionen konfiguriert.
{
"defaults": {
"standard": "WCAG2AA",
"runners": ["axe", "htmlcs"],
"timeout": 30000,
"hideElements": ".cookie-banner"
},
"urls": [
"http://localhost:4321/",
"http://localhost:4321/kontakt"
]
}
Axe-core is the keystone for hundreds of thousands of development teams and businesses
Accessibility Testing 2026 im Team: automatische Tests mit Cypress und axe, manuelle Checks, Tests mit Menschen mit Behinderung und Shift left
Mehr erfahrenEin voller Koffer hilft wenig, wenn niemand weiß, wann welches Werkzeug dran ist. Darum lohnt es sich, die Stufen fest im Ablauf zu verankern: Linter im Editor, Tests im Pull Request, manuelle Prüfung vor großen Releases.
Viele Treffer der Tools betreffen dieselben Themen. Kontraste prüft ihr mit dem Farbkontrast Rechner, Grundlagen dazu stehen bei Color Accessibility. Fehler bei Rollen und Attributen erklären die Seiten zu ARIA und zu Name, Rolle und Zustand. Für Eingabefelder hilft der Beitrag zu barrierefreien Formularen.
Was ein Tool nicht messen kann, ordnen die vier Grundprinzipien POUR ein. Wie ihr Seiten für eine Prüfung sinnvoll auswählt, zeigt die repräsentative Stichprobe. Den rechtlichen Rahmen setzen das BFSG und der European Accessibility Act. Wer die Ergebnisse an Einkäufer weitergeben muss, findet beim Accessibility Conformance Report das passende Format.
Wir sind hier, um Ihnen zu helfen. Gemeinsam meistern wir Ihre digitalen Herausforderungen und fördern die Inklusion im Internet. Lassen Sie uns Ihre Projekte mit barrierefreiem Webdesign erfolgreich machen.
axe-core, Pa11y, Lighthouse, WAVE und Linter: die wichtigsten Antworten zur Auswahl der richtigen Werkzeuge.
Die wichtigsten Werkzeuge 2026 sind axe-core als Test Engine, cypress-axe und pa11y-ci für die CI Pipeline, Lighthouse und WAVE im Browser sowie eslint-plugin-jsx-a11y im Editor. Dazu kommt der Accessibility Tree in den DevTools für die manuelle Prüfung. Keines davon reicht allein. Erst zusammen decken sie Editor, Browser, Pipeline und Mensch ab.
Nein. Automatische Tools finden nur einen Teil der Probleme. Deque gibt für axe-core an, dass im Schnitt 57 Prozent der WCAG Probleme automatisch gefunden werden. Ob Alternativtexte sinnvoll sind, ob die Fokusreihenfolge passt und ob Inhalte verständlich sind, muss 2026 weiterhin ein Mensch mit Tastatur und Screenreader prüfen.
axe-core steht unter der Mozilla Public License 2.0 und ist Open Source. Ihr könnt die Engine 2026 frei in eigenen Projekten und Pipelines einsetzen. Deque bietet darauf aufbauend weitere Produkte an, etwa die Browser Extension axe DevTools. Werkzeuge wie cypress-axe und Lighthouse nutzen axe-core direkt als Grundlage für ihre Prüfungen.
cypress-axe läuft innerhalb von Cypress Tests. Ihr könnt erst klicken, Formulare ausfüllen oder Modals öffnen und dann mit cy.checkA11y genau diesen Zustand prüfen. pa11y-ci braucht keinen Testcode und prüft eine Liste von URLs aus einer Konfigurationsdatei. Für Interaktionen müsst ihr dort Aktionen definieren. 2026 eignen sich beide gut für die CI Pipeline.
Für React und andere JSX Projekte gibt es eslint-plugin-jsx-a11y. Für Vue Komponenten bietet eslint-plugin-vuejs-accessibility eigene Regeln. eslint-plugin-astro bringt 2026 Konfigurationen mit, die jsx-a11y Regeln auf Astro Komponenten anwenden. Alle drei melden Fehler wie fehlende alt Attribute schon beim Tippen, bevor der Code im Browser landet.
Ja. Der Accessibility Teil von Lighthouse basiert auf axe-core. Das Ergebnis fasst Lighthouse in einem Wert zusammen. Ein hoher Wert bedeutet nur, dass die geprüften Regeln bestanden sind. Über die Barrierefreiheit der ganzen Seite sagt er wenig, weil viele Kriterien gar nicht automatisch messbar sind und ein Mensch sie beurteilen muss.
WAVE ist eine Browser Extension von WebAIM für Chrome, Firefox und Edge. Sie prüft die gerenderte Seite, also auch Styles und per JavaScript erzeugte Inhalte. Laut WebAIM läuft die Extension komplett im Browser und sendet keine Daten an den WAVE Server. Das ist praktisch für Seiten hinter einem Login oder in der lokalen Entwicklung.
Der Accessibility Tree zeigt, wie der Browser eure Seite an assistive Technik weitergibt. Für jedes Element seht ihr Rolle, zugänglichen Namen und Zustand. So erkennt ihr schnell, ob ein Icon Button einen Namen hat oder ob ein Element versteckt ist. Chrome, Edge und Firefox bieten diese Ansicht in ihren Entwicklerwerkzeugen.
Pa11y bringt zwei Runner mit, HTML_CodeSniffer als Standard und axe-core als Option. Ihr könnt beide in einem Durchlauf kombinieren. Standardmäßig prüft Pa11y gegen WCAG2AA, möglich sind auch WCAG2A und, nur mit HTML_CodeSniffer, WCAG2AAA. Pa11y und pa11y-ci stehen unter der Lizenz LGPL 3.0 und sind Open Source.
Mit skipFailures schlägt ein Test bei Verstößen nicht fehl, die Verstöße werden nur geloggt. Laut Dokumentation ist das als Übergang gedacht, etwa um cypress-axe in ein älteres Projekt einzuführen. Besser ist die Kombination mit includedImpacts. Zuerst prüft ihr nur kritische Verstöße und verschärft die Regeln dann Schritt für Schritt.
Linter laufen bei jedem Speichern im Editor. Tests mit cypress-axe oder pa11y-ci sollten bei jedem Pull Request in der Pipeline laufen, etwa in GitHub Actions oder GitLab CI. Manuelle Prüfungen mit Tastatur und Screenreader lohnen sich vor größeren Releases und nach Änderungen an zentralen Komponenten wie Navigation oder Formularen.
Meist nicht. axe DevTools, Lighthouse und cypress-axe nutzen alle axe-core und finden deshalb oft dieselben Fehler. Sinnvoller ist eine zweite Engine wie HTML_CodeSniffer über Pa11y oder ein Linter im Editor. So ergänzen sich die Werkzeuge, statt dasselbe doppelt zu messen. Den größten Gewinn bringt am Ende die manuelle Prüfung.