Skip to content

Add automated accessibility testing (axe-core on the existing Playwright surface) #1411

Description

@solarssk

Context

Verified empirically (2026-09-23): no axe-core, Pa11y, or Lighthouse anywhere in this repo (grep -rli "axe-core|pa11y|lighthouse" across *.json/*.ts/*.yml - zero hits outside node_modules). This is a real, currently-unaddressed gap, not a false alarm from an external review.

Proposal

Rather than building a new, separate crawler-based a11y pipeline, add @axe-core/playwright to the existing browser-level test surface (apps/admin/e2e/, currently just checkin.spec.ts - see PR #1410 for its recent promotion into ci.yml as a path-aware PR gate). This repo already has real auth, fixtures, and a genuine authenticated browser session wired up there, which a standalone crawler (Pa11y/Lighthouse CI) would have to duplicate from scratch and wouldn't cover post-login views at all.

Suggested scope, in order:

  1. Add @axe-core/playwright as a devDependency of apps/admin.
  2. Start with the surfaces that already have (or are about to have) a Playwright presence: login/setup, the check-in page, attendee list/detail, event settings, communication.
  3. First pass: report-only (log serious/critical violations to the job summary, don't fail the build) - this repo already has real accumulated UI, so a blocking gate from day one would likely surface a backlog of pre-existing issues unrelated to whatever PR happens to touch that surface first.
  4. Once the baseline is clean (or explicitly triaged/allowlisted), flip serious/critical violations to build-failing, following the same "prove it green first, then gate" pattern this repo already used for e2e-checkin-smoke.yml (14-run bar) and the license-compliance check (continue-on-error: true today, see scripts/check-licenses.mjs).

Out of scope for this issue

  • A separate Pa11y/Lighthouse CI pipeline - the Playwright-based approach above supersedes that need.
  • Fixing any violations found - this issue is about wiring up detection, not remediation (file follow-up issues once a baseline report exists).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area: infraCI/CD, GitHub Actions, repo config, hostingbatch: backlogNot scheduled in v0.4.13 batch order (v0.5.0 / low prio)prio: lowNice to have — backlogtype: choreTooling, config, CI, deps — no production logic change

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions