Skip to main content
Skip to docs content

CI/CD Integration

Run Speakable in your build pipeline to catch accessibility regressions on every pull request.

Installation

Install Speakable as a dev dependency in your project:

Terminal
npm install --save-dev speakable

GitHub Actions

Add this step to your workflow to run accessibility checks on every push:

.github/workflows/a11y.yml
- name: Run Speakable
  run: npx speakable analyze ./dist/index.html --engine all --format json
  
- name: Check for regressions
  run: npx speakable diff ./baseline.json ./current.json --fail-on-change

GitLab CI

.gitlab-ci.yml
accessibility:
  stage: test
  script:
    - npx speakable analyze ./dist/index.html --engine all --format json
    - npx speakable diff ./baseline.json ./current.json --fail-on-change

Exit Codes

CodeMeaning
0Analysis completed successfully, no regressions
1Regressions detected (screen reader output changed)
2Invalid input (empty HTML, bad selector, file not found)

JSON Output

Use --format json to get machine-readable output for programmatic comparison:

JSON Output
{
  "version": "1.0",
  "root": {
    "role": "button",
    "name": "Submit",
    "state": {},
    "focus": { "focusable": true },
    "children": []
  },
  "metadata": {
    "extractedAt": "2026-04-02T12:00:00Z"
  }
}