Skip to content

a11yst

Your accessibility analyst.

Continuous accessibility testing for real web applications (routes, flows, profiles, viewports, and CI).

pnpm add -D @a11yst/cli
pnpm exec playwright install chromium
zsh · 80×24
$ a11yst audit Running accessibility audit... ✓ Server ready · http://localhost:3000 Auditing route 1/2 · /home · desktop Auditing route 2/2 · /settings · desktop Audit execution SUCCESS Result: 3 issues found. Issue list: 1 CRITICAL: - select-name Select element must have an accessible name Affected elements (1): 1. Likely source src/components/LanguageSelector.jsx:24:7 (route: /settings) Recommendation Associate a label with the select Use a visible <label> or aria-label on the language selector. 2 HIGH: - link-name Links must have discernible text Affected elements (2): 1. Likely source src/components/SocialLinks.jsx:18:6 (route: /home) 2. Likely source src/components/SocialLinks.jsx:18:7 (route: /home) Recommendation Provide visible link text or aria-label Ensure each social link exposes an accessible name via visible text or aria-label. Summary: By level: Critical 1 High 2 By State: Planned 3 Completed 0 Skipped 0 Failed runs 0 By type: select-name 1 link-name 2 By route: /home 2 /settings 1 Reports: HTML .a11yst/reports/audit.html Markdown .a11yst/reports/audit.md JSON .a11yst/reports/audit.json SARIF .a11yst/reports/audit.sarif JUnit .a11yst/reports/audit.junit.xml

How it works

Configure once, run audits in the browser, and compare the next run against your baseline.

  1. Configure

    Projects, routes, profiles, and viewports in a11yst.config.ts.

  2. Run

    Start your app or point a11yst at a preview URL.

  3. Audit

    Browser-based checks across real routes and flow checkpoints.

  4. Classify

    Findings grouped with severity labels and evidence.

  5. Map

    Likely source locations and recommendations when mapping succeeds.

  6. Compare

    Baseline comparison on the next run for regression signal.

Why a11yst

Modern applications are not a single static DOM snapshot. Accessibility changes as routes, flows, and interactive states change.

a11yst can test more than one page at a time, with keyboard and large-text profiles, responsive viewports, and multi-step flows with checkpoints.

Compare the next run against a baseline to see new, known, regressed, and resolved findings instead of treating every audit like day one.

Audit routes, multi-step flows, and interactive states instead of a single static snapshot.

  • Routes across supported frameworks
  • Flows with checkpoints after user actions
  • Profiles such as keyboard and large-text conditions
  • Viewports for responsive coverage

Compare the next run against a baseline to see what changed after code updates.

  • Baselines for known findings
  • New, regressed, and resolved findings surfaced automatically
  • Policies for CI exit behavior

Give developers and reviewers enough context to fix issues without starting from raw rule IDs.

  • Evidence with selectors and snapshots
  • Source mapping to likely source files
  • Framework-aware recommendations when evidence allows
  • CI artifacts and exit codes

When evidence allows, a11yst maps DOM findings to probable source locations and suggests remediation guidance.

Results use wording such as likely source rather than claiming exact line certainty in every case.

Read about source mapping

Terminal output for developers, readable HTML and Markdown for review, and JSON, SARIF, and JUnit for automation.

Report formats

Route discovery and adapters for the languages, frameworks and libraries teams use today.

  • HTML
  • React
  • Next.js
  • Vue
  • Nuxt
  • Angular

Framework documentation

Getting started

Browser checks, profiles, and structured reports ship in one CLI. Install dependencies once, initialize your project, and your first audit is ready in minutes.

pnpm add -D @a11yst/cli
pnpm exec playwright install chromium
  1. Install a11yst
    pnpm add -D @a11yst/cli
    pnpm exec playwright install chromium
  2. Initialize your project
    a11yst init
    a11yst detect
  3. Run your first audit
    a11yst audit
  4. Review your reports
    HTML        .a11yst/reports/audit.html
    Markdown    .a11yst/reports/audit.md
    JSON        .a11yst/reports/audit.json
    SARIF       .a11yst/reports/audit.sarif
    JUnit       .a11yst/reports/audit.junit.xml

Want more detail? Read the docs.

Open source community

a11yst Community is licensed under MPL-2.0.

Issues welcome. Pull requests welcome. Documentation PRs welcome. Code PRs welcome.

External code merge will require the CLA workflow once active. Current CLA status: not active.

Contributing · License