Skip to main content
All posts

How to Add Accessibility Scanning to Your CI/CD Pipeline in 5 Minutes

Livana Team3 min23 April 2026
How to Add Accessibility Scanning to Your CI/CD Pipeline in 5 Minutes

Every deploy is a chance to break accessibility. A new modal without focus management, a form without labels, an image without alt text - these slip through code review constantly.

Here's how to catch them automatically.

Prerequisites

  • - A Lumi account (free tier works)
  • - An API key (Settings > API Access > Generate Key)
  • - A CI/CD pipeline (GitHub Actions, GitLab CI, or any system that can run curl)

Step 1: Generate an API key

In your Lumi dashboard, go to Settings > API Access and generate a new key. Add it as a secret in your CI environment (e.g. `LUMI_API_KEY` in GitHub Secrets).

Step 2: Add the scan step

# .github/workflows/accessibility.yml
name: Accessibility Check
on: [pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - name: Scan for accessibility issues
        run: |
          RESULT=$(curl -s -X POST 'https://lumi.livana.io/api/v1/scans' \
            -H 'Authorization: Bearer ${{ secrets.LUMI_API_KEY }}' \
            -H 'Content-Type: application/json' \
            -d '{"url":"${{ env.PREVIEW_URL }}","failBelow":80,"waitForResult":true}')
          
          SCORE=$(echo $RESULT | jq '.score')
          PASS=$(echo $RESULT | jq '.pass')
          echo "Accessibility score: $SCORE"
          
          if [ "$PASS" = "false" ]; then
            echo "Score below threshold"
            exit 1
          fi

Step 3: Configure the threshold

The `failBelow` parameter sets your minimum acceptable score. Start at 70 and raise it as you fix issues. The pipeline will fail if the score drops below this threshold.

What gets checked

Every scan runs five engines: axe-core, HTML_CodeSniffer, keyboard interaction tests, 53 Lumi custom checks, and AI visual analysis. Over 350 rules checked per scan, including WCAG 2.2 criteria.

Next steps

  • - Set up the [GitHub Action](/compare) for nicer PR comments (coming soon)
  • - Enable Slack notifications for scan results
  • - Add webhook integration for custom workflows

Want to see what your scanner is missing?

Try our live comparison tool - no account required.

Get accessibility insights in your inbox

WCAG guides, scanner updates, and industry news. No spam.