Barrierefreiheits-Audit der Postfach-Oberflaeche (web/mail-postfach). Baut auf UX-01s offenem Branch auf (PR #298, noch nicht gemergt) - enthaelt daher UX-01s Commits mit.
2 echte a11y-Bugs gefunden+gefixt: scrollable-region-focusable (axe, serious, fehlendes tabIndex an scrollbarem Container) und Ordnerbaum-Treeitems nicht per Tastatur aktivierbar (onClick ohne onKeyDown fuer Enter/Space).
AC1: 1 serious Verstoss -> 0 (axe, vorher/nachher, beide Themes). AC2: Tastatur real im Browser getestet (9/9), Screenreader-Stichprobe nicht moeglich (kein NVDA/VoiceOver, keine zweite Person) - dokumentierte Luecke, selbes Muster wie UX-06/UX-07. AC3: Pruefprotokoll mit priorisierten offenen Punkten.
WICHTIG fuer Merge-Reihenfolge: dieser Branch zweigt von UX-01 ab, nicht main - wer UX-01 mergt muss diese Fixes mitnehmen (diesen PR vorher/parallel mergen oder cherry-picken).
Barrierefreiheits-Audit der Postfach-Oberflaeche (web/mail-postfach). Baut auf UX-01s offenem Branch auf (PR #298, noch nicht gemergt) - enthaelt daher UX-01s Commits mit.
2 echte a11y-Bugs gefunden+gefixt: scrollable-region-focusable (axe, serious, fehlendes tabIndex an scrollbarem Container) und Ordnerbaum-Treeitems nicht per Tastatur aktivierbar (onClick ohne onKeyDown fuer Enter/Space).
AC1: 1 serious Verstoss -> 0 (axe, vorher/nachher, beide Themes). AC2: Tastatur real im Browser getestet (9/9), Screenreader-Stichprobe nicht moeglich (kein NVDA/VoiceOver, keine zweite Person) - dokumentierte Luecke, selbes Muster wie UX-06/UX-07. AC3: Pruefprotokoll mit priorisierten offenen Punkten.
WICHTIG fuer Merge-Reihenfolge: dieser Branch zweigt von UX-01 ab, nicht main - wer UX-01 mergt muss diese Fixes mitnehmen (diesen PR vorher/parallel mergen oder cherry-picken).
Siehe mail/docs/QA-08-PRUEFPROTOKOLL.md.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick
added 7 commits 2026-10-16 09:19:28 +02:00
Erweitert mail/internal/mailapi (INT-01) um die fuer die Postfach-/
Ordneransicht noetigen Daten, die die bestehende API noch nicht lieferte:
GET /mailboxes (Ordnerbaum aus der mailbox-Facette), mailbox-Filter auf
GET /messages, sowie sender/mailbox in der Listenantwort (Grundlage fuer
Sortierung nach Absender). Reines Durchreichen bereits fertiger
mail/internal/search-Funktionen (Facets/ListByMailbox/SearchWithFilters),
keine neue Suchlogik.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Testinfrastruktur: startet den echten mailapi.Server (echte moduleauth-
Signaturpruefung) als eigenen Prozess auf einem echten TCP-Port, mit
In-Memory-Suchpersistenz und zwei synthetischen Mandanten (einer davon
mit 3000 Nachrichten fuer den Performance-Nachweis). Grundlage fuer den
Frontend-Integrationstest gegen eine echte Backend-API statt eines
fetch()-Mocks. Kein Produktivpfad.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Postfach- und Ordneransicht fuer archivierte Mails (Next.js/React/TS,
@nexarch/shl). Ordnerbaum (aus der flachen Postfachliste der Mail-API
clientseitig aufgebaut), virtualisierte Nachrichtenliste mit Sortierung
nach Datum/Absender/Betreff, Grundsuche. Aufbau nach etabliertem Muster
(web/mail-search fuer die App-Struktur, web/dms-browser fuer Ordnerbaum/
virtualisierte Liste), bewusst schlicht gehalten (Mailpit/MailHog als
Vorbild, nicht die Komplexitaet eines nativen Mailprogramms).
Automatisierte Tests je Akzeptanzkriterium, inkl. eines echten
Backend-Integrationstests (e2e/ux01.e2e.test.ts) gegen den echten
mailapi.Server (mail/cmd/mailpostfach-fixture) mit zwei Mandanten und
einem gleichnamigen Ordner — keine Mandanten-Isolationslogik wird
gemockt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Pruefprotokoll: Zielwerte und Ergebnisse je Akzeptanzkriterium und
Pruefung, inkl. Abgrenzung zur Ausgangslage (Backend-API musste fuer
Ordnerbaum/Absender-Sortierung minimal erweitert werden) und offener
Einschraenkung beim manuellen Test (keine Browser-Automatisierung/kein
laufender Core-Server auf dem Entwicklungshost, daher Ersatzpruefung
ueber den echten Backend-Integrationstest).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Zwei echte a11y-Befunde aus dem Audit von web/mail-postfach behoben:
Ordnerbaum-Treeitems waren per Tastatur erreichbar, aber ohne
onKeyDown-Handler nicht per Enter/Leertaste aktivierbar; die
scrollbare Nachrichtenliste hatte keinen tabIndex (axe:
scrollable-region-focusable, serious).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Audit-Infrastruktur fuer web/mail-postfach nach dem Muster von
web/a11y-audit (mail-search-run.sh/connect-status-run.sh): neue
Testfixture mit echtem mailapi.Server + Platzhalter fuer den
Core-Modul-Token-Endpunkt (kein echter NEXARCH-Core auf dem
Testhost), Runner-Skript, echter Tastaturfluss im Browser nach dem
keyboard-flow-check.mjs-Muster aus UX-08.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Barrierefreiheits-Audit der Postfach-Oberflaeche (web/mail-postfach). Baut auf UX-01s offenem Branch auf (PR #298, noch nicht gemergt) - enthaelt daher UX-01s Commits mit.
2 echte a11y-Bugs gefunden+gefixt: scrollable-region-focusable (axe, serious, fehlendes tabIndex an scrollbarem Container) und Ordnerbaum-Treeitems nicht per Tastatur aktivierbar (onClick ohne onKeyDown fuer Enter/Space).
AC1: 1 serious Verstoss -> 0 (axe, vorher/nachher, beide Themes). AC2: Tastatur real im Browser getestet (9/9), Screenreader-Stichprobe nicht moeglich (kein NVDA/VoiceOver, keine zweite Person) - dokumentierte Luecke, selbes Muster wie UX-06/UX-07. AC3: Pruefprotokoll mit priorisierten offenen Punkten.
WICHTIG fuer Merge-Reihenfolge: dieser Branch zweigt von UX-01 ab, nicht main - wer UX-01 mergt muss diese Fixes mitnehmen (diesen PR vorher/parallel mergen oder cherry-picken).
Siehe mail/docs/QA-08-PRUEFPROTOKOLL.md.
🤖 Generated with Claude Code
Konflikt additiv geloest, 59/59 Tests gruen, direkt in main gemergt und gepusht.
Pull request closed