Integrations · GitHub

Add ScanAccess to your CI in 30 seconds.

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

Drop this into .github/workflows/a11y.yml

Copy, paste, push. The Action self-installs from the GitHub Marketplace on the first run — no Node toolchain required in your repo.

.github/workflows/a11y.yml
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: critical

What you get

Markdown step summary on every Action run.

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.

GitHub Actions — Step summary
## 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

Built for teams that ship every day.

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.

Next.js / Astro / SaaS team

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.

Digital agency (multi-client)

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

Common setup questions.

How do I get an API key?

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.

What's the free tier?

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.

Does it support private URLs / preview deploys?

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.

Can it fail my build?

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.

Is the result the same as a manual scan?

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.

Ready to ship accessible PRs?

Generate an API key and install the Action. Scanner starts at $29/mo for 30 scans / month.

Get your API key
GitHub Action