github/accessibility-scanner
Finds potential accessibility gaps, files GitHub issues to track them, and attempts to fix them with Copilot.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 7, 2026
- License
- MIT
Pinned Snippet
uses: github/accessibility-scanner@84a8f6de0b0f7df7ac2083386222388d0e74eeb9 # v3.3.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| urls | Newline-delimited list of URLs to check for accessibility issues | no | — |
| url_configs | Stringified JSON array of URL config objects, each with a 'url' field and an optional 'excludeSelectors' field (array of CSS selectors to exclude from the Axe scan for that URL). When provided, takes precedence over the 'urls' input. | no | — |
| repository | Repository (with owner) to file issues in | yes | — |
| token | Personal access token (PAT) with fine-grained permissions 'contents: write', 'issues: write', and 'pull_requests: write' | yes | — |
| base_url | Optional base URL for the GitHub API (for example, 'https://HOSTNAME/api/v3' for GitHub Enterprise Server) | no | — |
| cache_key | Key for caching results across runs | yes | — |
| login_url | If scanned pages require authentication, the URL of the login page | no | — |
| username | If scanned pages require authentication, the username to use for login | no | — |
| password | If scanned pages require authentication, the password to use for login | no | — |
| auth_context | If scanned pages require authentication, a stringified JSON object containing 'username', 'password', 'cookies', and/or 'localStorage' from an authenticated session | no | — |
| skip_copilot_assignment | Whether to skip assigning filed issues to Copilot | no | false |
| include_screenshots | Whether to capture screenshots and include links to them in the issue | no | false |
| open_grouped_issues | In the 'file' step, also open grouped issues which link to all issues with the same problem | no | false |
| group_by | How to group findings into issues: 'finding' (one issue per violation, default), 'rule' (one issue per rule), or 'rule+url' (one issue per rule per scanned URL). | no | finding |
| file_best_practice_issues | File issues for best-practice findings (accessibility recommendations that are not hard WCAG failures). Disabling suppresses new issues while existing ones are left untouched. | no | true |
| file_experimental_issues | File issues for experimental findings (checks that are not yet stable). Disabling suppresses new issues while existing ones are left untouched. | no | true |
| reduced_motion | Playwright reducedMotion setting: https://playwright.dev/docs/api/class-browser#browser-new-page-option-reduced-motion | no | — |
| color_scheme | Playwright colorScheme setting: https://playwright.dev/docs/api/class-browser#browser-new-context-option-color-scheme | no | — |
| scans | Stringified JSON array of scans to perform. If not provided, only Axe will be performed | no | — |
| dry_run | When true, scan and log the issues that would be filed without opening, closing, reopening, or assigning any issues, and without writing to the cache. | no | false |
Outputs
| name | description |
|---|---|
| results | List of issues and pull requests filed (and their associated finding(s)), as stringified JSON |
| results_file | Path to a JSON file containing the results (use for large datasets to avoid output size limits) |