leekeh/Accessibility Check
Run axe-core accessibility tests (WCAG 2.1 AA) against a running web app and post results as a PR comment.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit May 29, 2026
- License
- MIT
Pinned Snippet
uses: leekeh/axtion@6b9b31f8e4d39e29f201f1c2370e32de2b45bbc3 # v0.1.1tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| base-url | Base URL of the running app (e.g. http://localhost:3000) | yes | — |
| routes | JSON array of routes to test. Each item can be a plain string or a route object: ["/", "/about", { "path": "/dashboard", "name": "Dashboard", "readiness": { "type": "selector", "selector": "#app" } }] Mutually exclusive with routes-file. | — | — |
| routes-file | Path to a JSON routes file. Accepts the same JSON array format as the routes input. Mutually exclusive with routes. | — | — |
| browser | Browser to use. One of: chromium, firefox, webkit | — | chromium |
| workers | Number of parallel Playwright workers | — | 2 |
| wait-strategy | Default page readiness strategy applied to all routes unless overridden per-route. - networkidle: wait until no network requests for 500ms (good default for most apps) - load: wait for the load event - domcontentloaded: wait for DOMContentLoaded | — | networkidle |
| exclusions | JSON array of CSS selectors to exclude from axe scans. E.g. '["iframe", ".ads"]' | — | [] |
| rules | JSON array of axe-core rule IDs to run exclusively. When set, only the listed rules are enabled and all others are skipped. See https://github.com/dequelabs/axe-core/blob/develop/doc/rule-descriptions.md for the full list. E.g. '["color-contrast", "image-alt"]' | — | — |
| rulesets | JSON array of axe-core tag strings (rulesets) to run. When set, only rules matching at least one tag are enabled. Common values: "wcag2a", "wcag2aa", "wcag2aaa", "wcag21a", "wcag21aa", "wcag22aa", "best-practice". See https://www.deque.com/axe/core-documentation/api-documentation/#axecore-tags for all tags. E.g. '["wcag2aa", "wcag21aa"]' | — | — |
| disabled-rules | JSON array of axe-core rule IDs to disable. Use this to suppress specific rules while keeping everything else active. See https://github.com/dequelabs/axe-core/blob/develop/doc/rule-descriptions.md for IDs. E.g. '["color-contrast"]' | — | — |
| generate-report | Generate HTML reports for violations and upload as GitHub Actions artifacts | — | true |
| post-comment | Post (or update) a PR comment with test results. Only runs on pull_request events. | — | true |
| github-token | GitHub token for posting PR comments. Requires issues: write (PR comments use the Issues API). Defaults to the workflow token. | — | ${{ github.token }} |
| comment-template-success | Path to a custom Mustache-style template (.md) for the success comment. Available variables: {{repo}}, {{pr_number}}, {{status}} | — | — |
| comment-template-failure | Path to a custom Mustache-style template (.md) for the failure comment. Available variables: {{repo}}, {{pr_number}}, {{status}}, {{report_url}}, {{affected_routes}}, {{report_url_section}}, {{timed_out_section}} | — | — |
Outputs
| name | description |
|---|---|
| violations-found | 'true' if accessibility violations were found |
| report-url | URL to the Actions run where artifacts are available (empty if generate-report is false or tests passed) |