Shopify theme dev shop
Block PRs that introduce contrast or alt-text regressions before they ship to merchants. Pair with the per-merchant Defense PDF for legal evidence.
Integrations · GitHub
One YAML file. WCAG 2.2 AA scan on every PR. Markdown summary in the Actions step summary. Fails the build when findings exceed your severity threshold. Available on Scanner ($29/mo) and above.
Setup
Copy, paste, push. The Action self-installs from the GitHub Marketplace on the first run — no Node toolchain required in your repo.
name: A11y audit
on:
pull_request:
branches: [main]
permissions:
contents: read
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: scanaccess/audit-action@v1
with:
url: ${{ vars.PREVIEW_URL }}
api_key: ${{ secrets.SCANACCESS_API_KEY }}
fail_on: criticalWhat you get
Each run writes a Markdown summary to the GitHub Actions tab — score, severity counts, top findings, links to the rule docs. Visible to anyone with read access to the workflow.
## ScanAccess audit results
URL: `https://staging.example.com`
Scan id: `a3f2d8c1-…`
Compliance score: **78/100**
| Severity | Count |
|----------|-------|
| critical | 1 |
| serious | 2 |
| moderate | 3 |
| minor | 4 |
### Top findings
| Rule | Severity | Nodes | Docs |
|-------------------|----------|-------|--------|
| `image-alt` | critical | 5 | [link] |
| `color-contrast` | serious | 12 | [link] |
**Failing build** — found 3 finding(s) at or above `serious` severity.
Quota remaining this month: 49
_Report generated by [ScanAccess](https://scan-access.com)._Use cases
Block PRs that introduce contrast or alt-text regressions before they ship to merchants. Pair with the per-merchant Defense PDF for legal evidence.
Run on every preview deploy (Vercel, Netlify, Cloudflare Pages). The Action exits non-zero if findings exceed your fail_on threshold — no flaky e2e setup.
One workflow file per client repo, all keyed to one ScanAccess agency account. Roll up scores in your weekly client report. The Agency plan covers unlimited scans across up to 10 monitored sites.
FAQ
Sign in to your ScanAccess dashboard at /app/integrations, create a key, and store it as SCANACCESS_API_KEY in your repo's GitHub Secrets. Keys are shown once at creation — never stored in plaintext.
API keys require a paying plan starting at Scanner ($29/mo, 30 scans/month). The free tier offers a single trial scan via the dashboard. Defense ($49/mo, 100 scans/month) and Agency ($99/mo, unlimited) raise the cap.
The URL must be reachable from the ScanAccess crawler (egress IPs published in our docs). For pure-private environments, run the Action against a public preview URL (Vercel, Netlify, Cloudflare Pages) — that's the recommended pattern.
Yes — set fail_on: critical|serious|never. Default is critical. Use never for advisory mode and act on the score in a downstream job via the action outputs.
Identical — same axe-core engine (WCAG 2.2 AA + best-practice rules), same scoring, same findings format. The Defense PDF is generated from the same scan_id from your dashboard.
Generate an API key and install the Action. Scanner starts at $29/mo for 30 scans / month.
Get your API key