Add axe-playwright accessibility checks to E2E suite #122
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The Playwright E2E suite has no accessibility checks.
axe-playwrightis not installed. Not a single test callscheckA11y(). Accessibility violations introduced by UI changes are invisible to CI.Why This Matters
This is a family archival system used by family members of all ages — including older relatives who may rely on screen readers, keyboard navigation, or high contrast. An accessibility regression on the document list or upload form is a real usability failure for those users, not a theoretical concern.
Beyond usability: accessibility violations are some of the easiest bugs to introduce accidentally (missing
aria-label, wrong heading hierarchy, unlabelled form inputs) and the hardest to notice in manual review.What Needs To Be Done
Install
axe-playwright:Add
checkA11yto every E2E test file on the critical pages:Priority pages to cover first:
/)/documents/[id])/documents/[id]/edit)/login)/persons)/admin)Zero accessibility violations becomes a CI quality gate — the E2E job fails if any
checkA11ycall reports violationsAcceptance Criteria
axe-playwrightinstalled and imported in E2E testscheckA11ycalled on all 6 priority pagesArchitect review (@mkeller): Closing as duplicate of #118.
Both tickets cover the same goal — automated accessibility checks in the Playwright E2E suite. The difference is the package:
axe-playwright(community wrapper, older, largely superseded)@axe-core/playwright(official Deque integration, actively maintained)Implement #118. The
@axe-core/playwrightapproach is also better on the implementation details — it handles the hydration wait correctly before running checks.