Skip to content

chore: replace Playwright/axe a11y tests with pa11y-ci-action - #548

Merged
John McCall (lowlydba) merged 2 commits into
mainfrom
lowlydba-pa11y-ci-action
Oct 5, 2026
Merged

John McCall (lowlydba) merged 2 commits into
mainfrom
lowlydba-pa11y-ci-action

Conversation

@lowlydba

@lowlydba John McCall (lowlydba) commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Pull Request

Closes #549

Replaces the custom Playwright + axe-core accessibility test with lowlysre/pa11y-ci-action, pinned to the v1.0.0 commit SHA. The old test needed its own static file server, a browser install step, and two devDependencies. Now, all we need is a light config file! This hoists a lot of boilerplate that we don't need for this project.

The scan keeps the same 7 pages and uses the axe runner with the WCAG2AA standard. pa11y maps that standard to the WCAG 2.0 and 2.1 A/AA axe tags only, so the check is now scoped to WCAG 2.1 AA. The old test also ran wcag22aa, and pa11y has no way to enable it. The CI job is renamed to match.

The CI job serves the built site with docusaurus serve on port 3000 and waits for it before scanning. --no-sandbox is set in the config because Chromium's sandbox is blocked on ubuntu-latest.

Removes __tests__/a11y.test.mjs, the test:a11y script, and the playwright / @axe-core/playwright devDependencies.

Testing

The accessibility job passed on the earlier CI run. The latest push only renames the job, and I didn't run the scan locally or confirm the job fails on a page with real violations.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Signed-off-by: John McCall <john@overturemaps.org>
@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

✅MegaLinter analysis: Success

Descriptor Linter Files Fixed Errors Max errors Warnings Elapsed time
✅ JAVASCRIPT eslint 28 0 0 22.22s
✅ MARKDOWN markdownlint 285 0 0 0.5s
✅ SQL sqlfluff 79 0 0 6.1s

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@10.1.0 --custom-flavor-setup --custom-flavor-linters JAVASCRIPT_ES,MARKDOWN_MARKDOWNLINT,SQL_SQLFLUFF

MegaLinter is provided by OX Security
Show us your support by starring ⭐ the repository

@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

🗺️ Overture Docs preview is live!

🌍 Preview site https://staging.overturemaps.org/docs/pr/548/index.html
🕐 Updated Oct 02, 2026 19:33 UTC
📝 Commit d2582c0

Note

♻️ This preview updates automatically with each push to this PR.

@lowlydba John McCall (lowlydba) changed the title ci: replace Playwright/axe a11y tests with pa11y-ci-action chore: replace Playwright/axe a11y tests with pa11y-ci-action Oct 2, 2026
@lowlydba
John McCall (lowlydba) marked this pull request as ready for review October 2, 2026 19:02
@lowlydba
John McCall (lowlydba) requested a review from a team as a code owner October 2, 2026 19:02
Copilot AI balanced review requested due to automatic review settings October 2, 2026 19:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The pa11y configuration omits WCAG 2.2-specific axe rules that the previous test executed.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
What changed in this PR

Replaces the custom Playwright accessibility suite with pa11y CI for issue #549.

Changes:

  • Adds pa11y configuration for seven pages.
  • Updates CI to serve and scan the built site.
  • Removes Playwright/axe dependencies and tests.
File Description
.pa11yci.json Defines accessibility scan settings and URLs.
.github/​workflows/​ci.yml Runs pa11y against the built site.
package.json Removes obsolete script and dependencies.
package-lock.json Removes corresponding locked packages.
__tests__/​a11y.test.mjs Deletes the replaced test implementation.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .pa11yci.json
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Signed-off-by: John McCall <john@overturemaps.org>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a positive.

@lowlydba
John McCall (lowlydba) merged commit 2f746d4 into main Oct 5, 2026
17 checks passed
@lowlydba
John McCall (lowlydba) deleted the lowlydba-pa11y-ci-action branch October 5, 2026 14:09

This branch was successfully deployed

1 active deployment
staging — d2582c06 Deployed Oct 2, 2026 by lowlydba via Deploy #552
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

replace Playwright/axe a11y test with pa11y-ci-action

3 participants