{"id":14284433,"name":"github/accessibility-scanner","ecosystem":"actions","description":"Finds potential accessibility gaps, files GitHub issues to track them, and attempts to fix them with Copilot.","homepage":"","licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/github/accessibility-scanner","keywords_array":[],"namespace":"github","versions_count":22,"first_release_published_at":"2025-08-28T17:06:47.000Z","latest_release_published_at":"2026-04-08T13:22:37.000Z","latest_release_number":"v3.0.1","last_synced_at":"2026-04-20T09:59:03.642Z","created_at":"2026-04-20T09:58:58.791Z","updated_at":"2026-04-20T12:57:12.629Z","registry_url":"https://github.com/github/accessibility-scanner","install_command":null,"documentation_url":null,"metadata":{"name":"accessibility-scanner","description":"Finds potential accessibility gaps, files GitHub issues to track them, and attempts to fix them with Copilot.","inputs":{"urls":{"description":"Newline-delimited list of URLs to check for accessibility issues","required":true,"multiline":true},"repository":{"description":"Repository (with owner) to file issues in","required":true},"token":{"description":"Personal access token (PAT) with fine-grained permissions 'contents: write', 'issues: write', and 'pull_requests: write'","required":true},"base_url":{"description":"Optional base URL for the GitHub API (for example, 'https://HOSTNAME/api/v3' for GitHub Enterprise Server)","required":false},"cache_key":{"description":"Key for caching results across runs","required":true},"login_url":{"description":"If scanned pages require authentication, the URL of the login page","required":false},"username":{"description":"If scanned pages require authentication, the username to use for login","required":false},"password":{"description":"If scanned pages require authentication, the password to use for login","required":false},"auth_context":{"description":"If scanned pages require authentication, a stringified JSON object containing 'username', 'password', 'cookies', and/or 'localStorage' from an authenticated session","required":false},"skip_copilot_assignment":{"description":"Whether to skip assigning filed issues to Copilot","required":false,"default":"false"},"include_screenshots":{"description":"Whether to capture screenshots and include links to them in the issue","required":false,"default":"false"},"open_grouped_issues":{"description":"In the 'file' step, also open grouped issues which link to all issues with the same problem","required":false,"default":"false"},"reduced_motion":{"description":"Playwright reducedMotion setting: https://playwright.dev/docs/api/class-browser#browser-new-page-option-reduced-motion","required":false},"color_scheme":{"description":"Playwright colorScheme setting: https://playwright.dev/docs/api/class-browser#browser-new-context-option-color-scheme","required":false},"scans":{"description":"Stringified JSON array of scans to perform. If not provided, only Axe will be performed","required":false}},"outputs":{"results":{"description":"List of issues and pull requests filed (and their associated finding(s)), as stringified JSON","value":"${{ steps.results.outputs.results }}"},"results_file":{"description":"Path to a JSON file containing the results (use for large datasets to avoid output size limits)","value":"${{ steps.results.outputs.results_file }}"}},"runs":{"using":"composite","steps":[{"name":"Make sub-actions referenceable","working-directory":"${{ github.action_path }}","shell":"bash","run":"RUNNER_WORK_DIR=\"$(realpath \"${GITHUB_WORKSPACE}/../..\")\"\nACTION_DIR=\"${RUNNER_WORK_DIR}/_actions/github/accessibility-scanner/current\"\nmkdir -p \"${ACTION_DIR}/.github/actions\"\nif [ \"$(realpath \".github/actions\")\" != \"$(realpath \"${ACTION_DIR}/.github/actions\")\" ]; then\n  cp -a \".github/actions/.\" \"${ACTION_DIR}/.github/actions/\"\nfi\n\nmkdir -p \"${ACTION_DIR}/.github/scanner-plugins\"\nif [ \"$(realpath \".github/scanner-plugins\")\" != \"$(realpath \"${ACTION_DIR}/.github/scanner-plugins\")\" ]; then\n  cp -a \".github/scanner-plugins/.\" \"${ACTION_DIR}/.github/scanner-plugins/.\"\nfi\n"},{"name":"Restore cached results","id":"restore","uses":"./../../_actions/github/accessibility-scanner/current/.github/actions/gh-cache/cache","with":{"key":"${{ inputs.cache_key }}","token":"${{ inputs.token }}"}},{"if":"${{ steps.restore.outputs.value }}","name":"Normalize cache format","id":"normalize_cache","shell":"bash","run":"# Migrate cache format from v1 to v2:\n# If cached data is a list of Finding objects, each with 'issueUrl' keys (i.e. v1),\n# convert to a list of (partial) Result objects, each with 'findings' and 'issue' keys (i.e. v2).\n# Otherwise, re-output as-is.\n# Read directly from the cache file to avoid shell interpolation of large JSON.\njq -c 'if (type == \"array\" and length \u003e 0 and (.[0] | has(\"issueUrl\"))) then map({findings: [del(.issueUrl)], issue: {url: .issueUrl}}) else . end' \"${{ inputs.cache_key }}\" \u003e \"$RUNNER_TEMP/cached_filings.json\"\necho \"cached_filings_file=$RUNNER_TEMP/cached_filings.json\" \u003e\u003e $GITHUB_OUTPUT\n"},{"if":"${{ inputs.login_url \u0026\u0026 inputs.username \u0026\u0026 inputs.password \u0026\u0026 !inputs.auth_context }}","name":"Authenticate","id":"auth","uses":"./../../_actions/github/accessibility-scanner/current/.github/actions/auth","with":{"login_url":"${{ inputs.login_url }}","username":"${{ inputs.username }}","password":"${{ inputs.password }}"}},{"name":"Find","id":"find","uses":"./../../_actions/github/accessibility-scanner/current/.github/actions/find","with":{"urls":"${{ inputs.urls }}","auth_context":"${{ inputs.auth_context || steps.auth.outputs.auth_context }}","include_screenshots":"${{ inputs.include_screenshots }}","reduced_motion":"${{ inputs.reduced_motion }}","color_scheme":"${{ inputs.color_scheme }}","scans":"${{ inputs.scans }}"}},{"name":"File","id":"file","uses":"./../../_actions/github/accessibility-scanner/current/.github/actions/file","with":{"findings_file":"${{ steps.find.outputs.findings_file }}","repository":"${{ inputs.repository }}","token":"${{ inputs.token }}","base_url":"${{ inputs.base_url }}","cached_filings_file":"${{ steps.normalize_cache.outputs.cached_filings_file }}","screenshot_repository":"${{ github.repository }}","open_grouped_issues":"${{ inputs.open_grouped_issues }}"}},{"if":"${{ steps.file.outputs.filings_file }}","name":"Get issues from filings","id":"get_issues_from_filings","shell":"bash","run":"# Extract open issues from Filing objects and write to a file\njq -c '[.[] | select(.issue.state == \"open\") | .issue]' \"${{ steps.file.outputs.filings_file }}\" \u003e \"$RUNNER_TEMP/issues.json\"\necho \"issues_file=$RUNNER_TEMP/issues.json\" \u003e\u003e \"$GITHUB_OUTPUT\"\n"},{"if":"${{ inputs.skip_copilot_assignment != 'true' }}","name":"Fix","id":"fix","uses":"./../../_actions/github/accessibility-scanner/current/.github/actions/fix","with":{"issues_file":"${{ steps.get_issues_from_filings.outputs.issues_file }}","repository":"${{ inputs.repository }}","token":"${{ inputs.token }}","base_url":"${{ inputs.base_url }}"}},{"name":"Set results output","id":"results","shell":"bash","env":{"FILINGS_FILE":"${{ steps.file.outputs.filings_file }}","FIXINGS_FILE":"${{ steps.fix.outputs.fixings_file }}"},"run":"node \u003c\u003c 'NODE_SCRIPT'\nconst fs = require('fs');\nconst path = require('path');\nconst filingsFile = process.env.FILINGS_FILE;\nconst fixingsFile = process.env.FIXINGS_FILE;\nconst filings = filingsFile \u0026\u0026 fs.existsSync(filingsFile) ? JSON.parse(fs.readFileSync(filingsFile, 'utf8')) : [];\nconst fixings = fixingsFile \u0026\u0026 fs.existsSync(fixingsFile) ? JSON.parse(fs.readFileSync(fixingsFile, 'utf8')) : [];\nconst fixingsByIssueUrl = fixings.reduce((acc, fixing) =\u003e {\n  if (fixing.issue \u0026\u0026 fixing.issue.url) acc[fixing.issue.url] = fixing;\n  return acc;\n}, {});\nfor (const result of filings) {\n  if (result.issue \u0026\u0026 result.issue.url \u0026\u0026 fixingsByIssueUrl[result.issue.url]) {\n    result.pullRequest = fixingsByIssueUrl[result.issue.url].pullRequest;\n  }\n}\nconst resultsPath = path.join(process.env.GITHUB_WORKSPACE, 'scanner-results.json');\nfs.writeFileSync(resultsPath, JSON.stringify(filings));\nNODE_SCRIPT\n\nRESULTS_FILE=\"$GITHUB_WORKSPACE/scanner-results.json\"\n\n# Set results output (backward compat)\n{\n  echo 'results\u003c\u003c__RESULTS_OUTPUT_DELIMITER__'\n  cat \"$RESULTS_FILE\"\n  echo\n  echo '__RESULTS_OUTPUT_DELIMITER__'\n} \u003e\u003e \"$GITHUB_OUTPUT\"\n\n# Set results_file output\necho \"results_file=$RESULTS_FILE\" \u003e\u003e \"$GITHUB_OUTPUT\"\n"},{"if":"${{ inputs.include_screenshots == 'true' }}","name":"Save screenshots","uses":"./../../_actions/github/accessibility-scanner/current/.github/actions/gh-cache/save","with":{"path":".screenshots","token":"${{ inputs.token }}"}},{"name":"Copy results to cache path","shell":"bash","run":"mkdir -p \"$(dirname '${{ inputs.cache_key }}')\"\ncp \"$GITHUB_WORKSPACE/scanner-results.json\" \"${{ inputs.cache_key }}\"\n"},{"name":"Save cached results","uses":"./../../_actions/github/accessibility-scanner/current/.github/actions/gh-cache/save","with":{"path":"${{ inputs.cache_key }}","token":"${{ inputs.token }}"}}]},"branding":{"icon":"compass","color":"blue"},"default_branch":"main","path":null},"repo_metadata":{"id":318977071,"uuid":"1073916675","full_name":"github/accessibility-scanner","owner":"github","description":"Finds potential accessibility gaps, files GitHub issues to track them, and attempts to fix them with Copilot.","archived":false,"fork":false,"pushed_at":"2026-04-14T16:29:29.000Z","size":1866,"stargazers_count":260,"open_issues_count":22,"forks_count":28,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-14T17:04:39.226Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/github.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-10T20:30:06.000Z","updated_at":"2026-04-14T14:46:55.000Z","dependencies_parsed_at":"2025-11-03T23:08:16.980Z","dependency_job_id":"73523620-8dc1-4d80-ae36-f0d3e8ba9fdf","html_url":"https://github.com/github/accessibility-scanner","commit_stats":null,"previous_names":["github/accessibility-scanner"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/github/accessibility-scanner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Faccessibility-scanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Faccessibility-scanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Faccessibility-scanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Faccessibility-scanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/github","download_url":"https://codeload.github.com/github/accessibility-scanner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Faccessibility-scanner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32042293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-04-20T12:57:10.083Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":43.00635925163589,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":21.503179625817946},"purl":"pkg:githubactions/github/accessibility-scanner","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/actions/github/accessibility-scanner","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/actions/github/accessibility-scanner","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/actions/github/accessibility-scanner/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/github%2Faccessibility-scanner/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/github%2Faccessibility-scanner/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/github%2Faccessibility-scanner/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/github%2Faccessibility-scanner/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/github%2Faccessibility-scanner/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/github%2Faccessibility-scanner/codemeta","maintainers":[]}