[Feature] Add accessibility and keyboard review #38

Closed
opened 2026-07-06 11:25:59 +02:00 by zemion · 2 comments
Owner

Imported from the consolidated GovOPlaN product backlog.

  • Source: /mnt/DATA/Nextcloud/ADD ideas UG/Products/govoplan/backlog.md
  • Line: 198
  • Section: Milestones > Milestone 11 - Address Book, Templates, And Adoption Polish
  • Source status: PARTIAL.

Imported backlog item:

- [ ] Add accessibility and keyboard review.
<!-- codex-backlog-fingerprint:dfc54a1b62a385493909eaab --> Imported from the consolidated GovOPlaN product backlog. - Source: `/mnt/DATA/Nextcloud/ADD ideas UG/Products/govoplan/backlog.md` - Line: `198` - Section: `Milestones > Milestone 11 - Address Book, Templates, And Adoption Polish` - Source status: `PARTIAL.` Imported backlog item: ```markdown - [ ] Add accessibility and keyboard review. ```
zemion added this to the Milestone 11 - Address Book, Templates, And Adoption Polish milestone 2026-07-06 13:18:26 +02:00
Author
Owner

Implemented the automatable review slice in GovOPlaN/govoplan-campaign@82ddc0c.

  • Added a repeatable keyboard/focus/zoom/screen-reader review matrix.
  • Added npm run test:accessibility-contract, which rejects non-semantic click targets, unlabelled preview navigation buttons, and Campaign-local modal implementations that bypass Core Dialog.
  • The structural guard and shared TypeScript graph pass.

Keep this issue open until a release candidate receives the bounded browser keyboard/focus/responsive matrix and an assistive-technology pass. That remaining verification is manual QA, not a product decision.

Implemented the automatable review slice in GovOPlaN/govoplan-campaign@82ddc0c. - Added a repeatable keyboard/focus/zoom/screen-reader review matrix. - Added `npm run test:accessibility-contract`, which rejects non-semantic click targets, unlabelled preview navigation buttons, and Campaign-local modal implementations that bypass Core Dialog. - The structural guard and shared TypeScript graph pass. Keep this issue open until a release candidate receives the bounded browser keyboard/focus/responsive matrix and an assistive-technology pass. That remaining verification is manual QA, not a product decision.
zemion added
status
in-progress
codex/ready
and removed
status
triage
codex/needs-human
labels 2026-07-31 22:54:52 +02:00
Author
Owner

Codex State: done

Summary

  • Completed the bounded Campaign accessibility and keyboard implementation audit across all Campaign routes and representative narrow layouts.
  • Fixed the shared 320px titlebar collision and compact account accessible name in Core; added reduced-motion, privacy, audit-handoff, and shared-error contracts.
  • Historical inline-mail versions now return an actionable 422 during attachment preview instead of an unhandled 500.

Changed Files

  • docs/ACCESSIBILITY_REVIEW.md
  • webui/tests/accessibility-contract.test.mjs
  • src/govoplan_campaign/backend/routes/attachments.py
  • webui/src/features/campaigns/review/AttachmentLinkingPreview.tsx
  • govoplan-core/webui/src/layout/Titlebar.tsx
  • govoplan-core/webui/src/styles/layout.css

Verification

  • 39 focused Campaign backend/documentation tests passed.
  • Campaign accessibility, review-workflow, and review-preview WebUI suites passed.
  • Headless Chromium: 13 desktop routes plus 4 narrow route checks; 42 sampled Tab stops; no unnamed controls, hidden focus, page overflow, titlebar overlap, page errors, or HTTP 500s after the fix.
  • Core default full-product build and bundle budgets passed; 48 module permutations passed before the final bounded responsive change.

Next / Blocked

  • Implementation is complete locally and awaits the next repository push. Release-specific WCAG certification still runs the documented browser/screen-reader matrix.
## Codex State: done ### Summary - Completed the bounded Campaign accessibility and keyboard implementation audit across all Campaign routes and representative narrow layouts. - Fixed the shared 320px titlebar collision and compact account accessible name in Core; added reduced-motion, privacy, audit-handoff, and shared-error contracts. - Historical inline-mail versions now return an actionable 422 during attachment preview instead of an unhandled 500. ### Changed Files - `docs/ACCESSIBILITY_REVIEW.md` - `webui/tests/accessibility-contract.test.mjs` - `src/govoplan_campaign/backend/routes/attachments.py` - `webui/src/features/campaigns/review/AttachmentLinkingPreview.tsx` - `govoplan-core/webui/src/layout/Titlebar.tsx` - `govoplan-core/webui/src/styles/layout.css` ### Verification - `39 focused Campaign backend/documentation tests passed.` - `Campaign accessibility, review-workflow, and review-preview WebUI suites passed.` - `Headless Chromium: 13 desktop routes plus 4 narrow route checks; 42 sampled Tab stops; no unnamed controls, hidden focus, page overflow, titlebar overlap, page errors, or HTTP 500s after the fix.` - `Core default full-product build and bundle budgets passed; 48 module permutations passed before the final bounded responsive change.` ### Next / Blocked - Implementation is complete locally and awaits the next repository push. Release-specific WCAG certification still runs the documented browser/screen-reader matrix.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-campaign#38