Reports what the current snapshots changed relative to the baseline.
For every snapshot with a baseline, this diffs the rendered output and reports, per view, the regions that changed and the accessibility issues the change newly introduced, with a risk tier:
block— a new critical/serious issue (e.g. a keyboard-inaccessible control introduced by this change)review— a new moderate/minor issue; worth a human glanceauto— rendering changed but introduced no accessibility issues
Usage
# Generate/refresh snapshots, then review against the baseline
mix test
mix excessibility.review
# Fail the build only on :block (default), on :review, or never
mix excessibility.review --fail-on review
mix excessibility.review --fail-on never
# Fold in behavioral findings from a telemetry timeline (N+1 queries,
# dead state, render thrash) captured by `mix excessibility.debug`
mix excessibility.review --timeline test/excessibility/timeline.json --judge
# Skip the axe-core browser scans and review on the LiveView rules only
mix excessibility.review --no-axe
# Also flag content that changed without an aria-live announcement.
# Only turn this on when both sides rendered the SAME fixture data:
# baseline and current usually come from two independent `mix test`
# runs, and with non-deterministic fixtures the text delta reports
# fixture drift, not accessibility regressions.
mix excessibility.review --content-diffNew findings are the union of axe-core violations (scanned per snapshot pair through Playwright) and the LiveView rules. If the axe scan fails (e.g. Playwright isn't installed), the review degrades to the LiveView rules and prints a warning.
Establish the baseline with mix excessibility.baseline.