# `mix excessibility.review`
[🔗](https://github.com/lessthanseventy/excessibility/blob/v0.18.1/lib/mix/tasks/excessibility_review.ex#L1)

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 glance
  * `auto`   — 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

    # Emit one machine-readable JSON object on stdout instead of the human
    # report (for CI/PR bots — see the schema below). --json is an alias.
    mix excessibility.review --format json

    # Also fail the build on a serious *behavioral* finding. Off by default:
    # behavioral findings have no baseline (they're absolute measurements of
    # a single run), so they're advisory unless you opt in.
    mix excessibility.review --timeline test/excessibility/timeline.json --fail-on-behavioral

    # 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-diff

New 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`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
