Equall

Scanning

Run scans locally, in CI, or as a pre-commit hook. All CLI flags for the scan command.

Basic usage

equall scan [path]

path defaults to the current directory. Exit codes:

ExitMeaning
0Scan completed. This is the default for any successful scan, whatever the score.
1Only when --min-score <n> is set and the score is below n (or --min-score itself is invalid).
2Runtime error (invalid path, scanner crash, etc.)

A successful scan exits 0 by design, so an interactive run never looks like a failure. Opt into a CI gate with --min-score.

Support Summary

The terminal report ends with its takeaway — printed last so it's what stays on screen when the scan finishes. The 0–100 score (a trend indicator, not a pass/fail grade) and an honest verified-subset statement sit just above a WCAG 2.2 Support Summary — three buckets, derived from criterion_conformance, that sum to the target level's criteria total:

◆ EQUALL — Accessibility Score

  [...issues and details...]

  87   WCAG 2.2 · score is a trend indicator
  0 A/AA failures among the 25 criteria automatically verified (31 not evaluated).

  WCAG 2.2 Support Summary — AA target · automated basis only
  ✓ Supports (automated) 25   ✕ Does not support 0   ○ Not evaluated 31
  Automated verdicts only — a full statement needs manual + assistive-tech testing. Run --verbose for the per-criterion table.

"Supports (automated)" and "Does not support" count criterion_conformance entries with verdict pass_automated and fail; "Not evaluated" is every other verdict combined. --verbose expands the full per-criterion table and splits "Not evaluated" into its three reasons — rendered check, assisted, or manual. The count of criteria "automatically verified" comes from summary.criteria_tested — the criteria genuinely exercised this scan, not merely the ones a scanner is capable of; a clean scan states this verified subset, never "None". None of the words "Meets", "conformant", "compliant", or "conformance" appear in the output — automated verdicts state a basis, not a certification.

Flags

FlagDescriptionDefault
-l, --level <level>WCAG conformance target: A, AA, or AAAAA
--standard <standard>WCAG version to evaluate against: wcag22 (Equall's identity) or wcag21 (the public-sector legal bar, WAD/EN 301 549)wcag22
--include <patterns...>Glob patterns to include(auto)
--exclude <patterns...>Glob patterns to exclude(auto)
--jsonEmit machine-readable JSON to stdout (log goes to stderr)
-i, --show-ignoredInclude ignored issues in the output
-v, --verboseExpand the full per-criterion support table + all occurrences for best-practice issues
-m, --show-manualList WCAG criteria that require manual review
--no-colorDisable ANSI colors
--no-readabilitySkip the Flesch-Kincaid reading-grade scanner
--min-score <n>CI gate: exit 1 if the score is below n (0–100). Omit to always exit 0 on a successful scan(off)

Common recipes

Target Level A only

equall scan ./public --level A

Export a JSON report

equall scan . --json > report.json

Scope to a subfolder

equall scan . --include "src/**"

Run in CI (fail the build below a score threshold)

# .github/workflows/a11y.yml
- run: npx equall-cli scan . --level AA --min-score 90

Without --min-score, the scan reports the score but still exits 0 — handy for an informational CI step that never blocks the build.

Skip readability checks for non-English projects

equall scan . --no-readability

Evaluate against the WCAG 2.1 legal bar instead of 2.2

equall scan . --standard wcag21

--standard is a view filter on the conformance table, coverage, and verdict — the 0–100 score is identical regardless of which standard is selected. Under wcag21, the 9 success criteria new in 2.2 (e.g. 2.5.8 Target Size) leave the conformance table (findings on them remain visible as issues elsewhere in the output), and 4.1.1 Parsing reappears as a documented automated pass (obsolete per W3C erratum, so nothing new to check).

Verifying page-level rules

Landmark, document-title and language rules can't be judged from a single component — scan your built output (dist/) to verify them on the composed page. See Verifying page-level rules.

Ignore subcommand

Managing inline equall-ignore comments also ships with a dedicated subcommand — see Ignore system.

On this page