Skip to content

AccessPulse/scan

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

AccessPulse WCAG Scan

Scan any URL for WCAG 2.2 AA accessibility violations in CI. Fails the build if your accessibility score drops below a threshold you set.

GitHub Marketplace


Quick start

- name: WCAG 2.2 scan
  uses: accesspulse/scan@v1
  with:
    url: https://your-site.com
    threshold: 80

That's it. The step fails if the accessibility score is below 80. No API key required for free scans (25/month per IP).


Full example

name: Accessibility

on:
  pull_request:
  push:
    branches: [main]

jobs:
  a11y:
    runs-on: ubuntu-latest
    steps:
      - name: WCAG 2.2 scan
        id: scan
        uses: accesspulse/scan@v1
        with:
          url: ${{ vars.SITE_URL }}
          threshold: 80
          api-key: ${{ secrets.ACCESSPULSE_API_KEY }}

      - name: Print score
        run: echo "Score ${{ steps.scan.outputs.score }}/100"

Scan your Vercel preview URL on every PR

name: Accessibility

on: [pull_request]

jobs:
  a11y:
    runs-on: ubuntu-latest
    steps:
      - name: Wait for Vercel preview
        uses: patrickedqvist/wait-for-vercel-preview@v1.3.1
        id: vercel
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          max_timeout: 120

      - name: WCAG 2.2 scan
        uses: accesspulse/scan@v1
        with:
          url: ${{ steps.vercel.outputs.url }}
          threshold: 80
          api-key: ${{ secrets.ACCESSPULSE_API_KEY }}

Inputs

Input Required Default Description
url Yes URL to scan for WCAG 2.2 AA violations. Must be publicly reachable.
threshold No 80 Minimum passing score (0–100). The step fails if the score is below this.
api-key No AccessPulse API key. Omit for free scans (25/month). Get one at accesspulse.dev.

Outputs

Output Description
score Accessibility score (0–100).
violations Number of WCAG violations found.
passed 'true' if score ≥ threshold, 'false' otherwise.

How it works

  1. Sends your URL to the AccessPulse API
  2. A headless Chromium browser loads your page and waits for JavaScript to render
  3. axe-core v4.10 runs all WCAG 2.2 AA rules against the live DOM
  4. Results are returned as a score + violation list
  5. The action writes a summary table to the GitHub Actions job summary
  6. If score < threshold, the step fails with an error listing the top violations

Zero dependencies — this action uses only Node.js built-ins. No npm install on your runner.


Job summary

Every run writes a Markdown summary to the Actions UI with score, violation count, and a table of all violations by severity.


Scoring

Score = passes / (passes + weighted_violations) × 100

Severity weights: critical 10×, serious 5×, moderate 2×, minor 1×. A single critical violation (e.g., unlabeled form field) impacts the score more than several minor issues.


Plans & rate limits

Plan Scans/month Price
Free (no key) 25 $0
Developer 500 $29/mo
Team 2,000 $149/mo
Agency 10,000 $399/mo

See pricing →


License

MIT. Built on axe-core (MPL-2.0) by Deque Systems. Not affiliated with Deque.

About

WCAG 2.2 accessibility scan for GitHub Actions — powered by axe-core

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors