UX-07: barrierefreiheit-nach-wcag-2-1-aa
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
Mail-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
Mail-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e55f05c450
commit
de9825cfea
1 file changed
+36
@@ -0,0 +1,36 @@
|
||||
# UX-07 – Prüfprotokoll: Barrierefreiheit nach WCAG 2.1 AA (mail-search)
|
||||
|
||||
Stand: 2026-09-23. Entwicklungshost 192.168.1.204, Google Chrome 154.0.8037.57 (Puppeteer), axe-core. Basis: `integration/gesamtprojekt`. Alle Daten synthetisch, erzeugt durch `mail/cmd/mailsearch-a11y-fixture` (3 Nachrichten, Mandant `a11y-tenant`, Manticore-Index `mail_documents`).
|
||||
|
||||
## Ergebnis auf einen Blick
|
||||
|
||||
| Akzeptanzkriterium | Ergebnis |
|
||||
|---|---|
|
||||
| AK1: automatisierte Prüfung ohne kritische Verstöße auf allen Kernansichten | erfüllt |
|
||||
| AK2: vollständige Bedienbarkeit ohne Maus für alle Kernfunktionen | erfüllt (Tab-Erreichbarkeit, Fokusindikator) |
|
||||
| AK3: Screenreader-Ausgabe für zentrale Elemente sinnvoll/vollständig | teilweise offen (kein Screenreader auf dem Testhost, siehe unten) |
|
||||
|
||||
## Durchgeführte Prüfungen (`web/a11y-audit/mail-search-run.sh`, Exit 0 nach Fix)
|
||||
|
||||
Wiederverwendet `web/a11y-audit/audit.js` (axe WCAG 2.0/2.1 A+AA, Tab-Erreichbarkeit, Fokusindikator-Prüfung, Layout/Kontrast) statt eigener Werkzeuge.
|
||||
|
||||
| # | Prüfung | Messwert | Bewertung |
|
||||
|---|---|---|---|
|
||||
| 1 | axe auf 3 Kernansichten (Suchseite leer, Suchseite mit Treffern, Detailseite) x hell/dunkel | 6 Läufe, 0 Verstöße | bestanden |
|
||||
| 2 | Tastatur-Erreichbarkeit (Tab) je Ansicht | Suchseite 2/2, Detailseite 1/1 interaktive Elemente erreicht, kein fehlender Fokusindikator, keine Falle | bestanden |
|
||||
| 3 | Vitest (`mail-search`) | 19/19 bestanden | bestanden |
|
||||
| 4 | `tsc --noEmit` | fehlerfrei | bestanden |
|
||||
|
||||
## Echter Fund (behoben)
|
||||
|
||||
`web/mail-search/app/layout.tsx` band weder `focusVisibleStyles` noch `themeInitScript` von `@nexarch/shl` ein — anders als alle übrigen Web-Apps (dms-browser, dms-upload, pdf-viewer, retention-admin usw.). Dadurch:
|
||||
- Links (`<a>`) hatten keinen themenabhängigen Farbwert und fielen im dunklen Farbschema auf den Browser-Standard zurück (Kontrastverstoß, `color-contrast`, `serious`, auf `/mail/{id}`, Link „← Zurück zur Suche").
|
||||
- Es gab keine erzwungene, sichtbare Fokusmarkierung unabhängig von einzelnen Komponenten (UX-05-Muster fehlte hier).
|
||||
|
||||
Behoben durch Übernahme desselben `<head>`-Blocks wie in `dms-browser/app/layout.tsx`. Erneuter Lauf: 0 Verstöße in beiden Farbschemata auf allen drei Ansichten.
|
||||
|
||||
## Nicht Bestandteil / offen
|
||||
|
||||
- **AK3 (Screenreader-Stichprobe):** Wie bereits in `dms/docs/UX-06-PRUEFPROTOKOLL.md` für das DMS dokumentiert, gibt es auf dem Testhost und der Entwicklungsmaschine weder NVDA noch VoiceOver. Die automatisierte axe-Prüfung deckt strukturelle Screenreader-Voraussetzungen (Rollen, Labels, Landmarks) ab; ein manueller Stichprobentest mit echtem Screenreader durch eine zweite Person (Prüfung 3 des Tickets) bleibt offen — dieselbe organisatorische Lücke wie bei UX-06.
|
||||
- `QA-08` (Barrierefreiheits-Audit als eigenes Prüfgate) ist laut Ticket ausdrücklich nicht Teil dieser Kachel.
|
||||
- Der neue `mailsearch-a11y-fixture`-Seed-Binary und `mail-search-run.sh` sind reine Testwerkzeuge, kein Produktivpfad.
|
||||
Reference in new issue
Block a user