# Excessibility v0.15.1 - Table of Contents

> Library for accessibility snapshot testing in Phoenix applications using axe-core and Playwright.

## Pages

- [Excessibility](readme.md)
- [MIT License](license.md)

## Modules

- [Excessibility.Capture](Excessibility.Capture.md): Tracks capture state for auto-snapshot functionality.
- [Excessibility.LiveView.Behaviour](Excessibility.LiveView.Behaviour.md): Behaviour for LiveView HTML rendering.
- [Excessibility.LiveViewHelpers](Excessibility.LiveViewHelpers.md): Wrapper functions for Phoenix.LiveViewTest helpers that automatically
capture snapshots when `@tag capture_snapshots: true` is used.

- [Excessibility.LiveViewRules](Excessibility.LiveViewRules.md): LiveView-aware accessibility rules.
- [Excessibility.LiveViewRules.Rule](Excessibility.LiveViewRules.Rule.md): Behaviour for LiveView-aware accessibility rules.
- [Excessibility.LiveViewRules.Rules.ClickAwayWithoutEscape](Excessibility.LiveViewRules.Rules.ClickAwayWithoutEscape.md): Flags elements that use `phx-click-away` for dismissal but provide no
keyboard equivalent, leaving keyboard and screen-reader users unable
to close the overlay.
- [Excessibility.LiveViewRules.Rules.DebounceWithoutLiveRegion](Excessibility.LiveViewRules.Rules.DebounceWithoutLiveRegion.md): Flags `<input phx-debounce>` when the snapshot has no ARIA live region
anywhere.
- [Excessibility.LiveViewRules.Rules.HiddenFormControlWithoutAria](Excessibility.LiveViewRules.Rules.HiddenFormControlWithoutAria.md): Flags visually hidden `<input type="checkbox">` / `<input type="radio">`
elements used as the programmatic backing for custom UI, when the
visual replacement does not communicate checked state via ARIA.
- [Excessibility.LiveViewRules.Rules.PhxClickOnNonInteractive](Excessibility.LiveViewRules.Rules.PhxClickOnNonInteractive.md): Flags `phx-click` and `phx-click-away` placed on elements that are not
natively keyboard-accessible.
- [Excessibility.LiveViewRules.Rules.RevealWithoutAnnouncement](Excessibility.LiveViewRules.Rules.RevealWithoutAnnouncement.md): Flags initially hidden containers that are revealed from the server
without exposing that reveal to assistive technology.
- [Excessibility.LiveViewRules.Rules.ToggleMissingAriaState](Excessibility.LiveViewRules.Rules.ToggleMissingAriaState.md): Flags elements that use `Phoenix.LiveView.JS.toggle/show/hide` in
`phx-click` but do not expose the expand/collapse state to assistive
technology.
- [Excessibility.MCP.ClientContext](Excessibility.MCP.ClientContext.md): Helpers for getting the MCP client's context (working directory, etc).
- [Excessibility.MCP.Elicitation](Excessibility.MCP.Elicitation.md): Handles the MCP elicitation protocol for structured user interaction.
- [Excessibility.MCP.Progress](Excessibility.MCP.Progress.md): Helper for sending MCP progress notifications.
- [Excessibility.MCP.Prompt](Excessibility.MCP.Prompt.md): Behaviour for MCP prompts.
- [Excessibility.MCP.Registry](Excessibility.MCP.Registry.md): Auto-discovers MCP tools, resources, and prompts at compile time.
- [Excessibility.MCP.Resource](Excessibility.MCP.Resource.md): Behaviour for MCP resources.
- [Excessibility.MCP.Resources.Config](Excessibility.MCP.Resources.Config.md): MCP resource for accessing excessibility configuration.

- [Excessibility.MCP.Resources.Snapshot](Excessibility.MCP.Resources.Snapshot.md): MCP resource for accessing HTML snapshots.

- [Excessibility.MCP.Server](Excessibility.MCP.Server.md): MCP server for excessibility tools, resources, and prompts.
- [Excessibility.MCP.Subprocess](Excessibility.MCP.Subprocess.md): Subprocess execution with proper timeout handling.
- [Excessibility.MCP.Tool](Excessibility.MCP.Tool.md): Behaviour for MCP tools.
- [Excessibility.MCP.Tools.A11yCheck](Excessibility.MCP.Tools.A11yCheck.md): MCP tool for running accessibility checks.
- [Excessibility.MCP.Tools.CheckWork](Excessibility.MCP.Tools.CheckWork.md): Composite MCP tool that runs tests, accessibility checks, and optional
performance analysis in one call.
- [Excessibility.MCP.Tools.Debug](Excessibility.MCP.Tools.Debug.md): MCP tool for running debug analysis on LiveView tests.
- [Excessibility.MCP.Tools.DiffSnapshots](Excessibility.MCP.Tools.DiffSnapshots.md): MCP tool: diff two rendered HTML states and report what changed and
whether the change introduced accessibility regressions.
- [Excessibility.MCP.Tools.GenerateTest](Excessibility.MCP.Tools.GenerateTest.md): MCP tool for scaffolding accessibility snapshot tests.
- [Excessibility.MCP.Tools.GetSnapshots](Excessibility.MCP.Tools.GetSnapshots.md): MCP tool for listing or reading HTML snapshots.

- [Excessibility.MCP.Tools.GetTimeline](Excessibility.MCP.Tools.GetTimeline.md): MCP tool for reading captured timeline data.

- [Excessibility.Review](Excessibility.Review.md): A blast-radius report for a snapshot run, measured against the baseline.
- [Excessibility.Review.Behavioral](Excessibility.Review.Behavioral.md): Behavioral findings for a review, drawn from the telemetry timeline.
- [Excessibility.Review.Judge](Excessibility.Review.Judge.md): Turns a `Excessibility.Review` change into a release-risk **verdict**.
- [Excessibility.Review.Judge.Heuristic](Excessibility.Review.Judge.Heuristic.md): Default judge: a transparent, dependency-free verdict derived directly
from the change. The tier is the change's own tier; each newly-introduced
finding becomes a risk. No model is consulted, so `confidence` is `nil`.

- [Excessibility.Review.Judge.LLM](Excessibility.Review.Judge.LLM.md): A judge that asks a model to reason about a change's blast radius.
- [Excessibility.SnapshotDiff](Excessibility.SnapshotDiff.md): Cross-snapshot diffing: compare two HTML snapshots of the same view and
report the regions whose rendered content changed.
- [Excessibility.TelemetryCapture](Excessibility.TelemetryCapture.md): Telemetry-based automatic snapshot capture for LiveView tests.
- [Excessibility.TelemetryCapture.Analyzer](Excessibility.TelemetryCapture.Analyzer.md): Behaviour for timeline analyzers.
- [Excessibility.TelemetryCapture.Analyzers.AccessibilityCorrelation](Excessibility.TelemetryCapture.Analyzers.AccessibilityCorrelation.md): Correlates state changes with accessibility implications.
- [Excessibility.TelemetryCapture.Analyzers.AssignDiff](Excessibility.TelemetryCapture.Analyzers.AssignDiff.md): Detects large assigns that get re-diffed frequently.
- [Excessibility.TelemetryCapture.Analyzers.AssignLifecycle](Excessibility.TelemetryCapture.Analyzers.AssignLifecycle.md): Analyzes assign lifecycle patterns.
- [Excessibility.TelemetryCapture.Analyzers.CascadeEffect](Excessibility.TelemetryCapture.Analyzers.CascadeEffect.md): Analyzes event cascade patterns.
- [Excessibility.TelemetryCapture.Analyzers.CodePointer](Excessibility.TelemetryCapture.Analyzers.CodePointer.md): Maps timeline events to likely source code locations.
- [Excessibility.TelemetryCapture.Analyzers.ComponentRerender](Excessibility.TelemetryCapture.Analyzers.ComponentRerender.md): Detects unnecessary component re-renders.
- [Excessibility.TelemetryCapture.Analyzers.DataGrowth](Excessibility.TelemetryCapture.Analyzers.DataGrowth.md): Analyzes data growth patterns across timeline events.
- [Excessibility.TelemetryCapture.Analyzers.EctoQueryAnalysis](Excessibility.TelemetryCapture.Analyzers.EctoQueryAnalysis.md): Analyzes Ecto query patterns across timeline events.
- [Excessibility.TelemetryCapture.Analyzers.EventPattern](Excessibility.TelemetryCapture.Analyzers.EventPattern.md): Analyzes event patterns and sequences across timeline.
- [Excessibility.TelemetryCapture.Analyzers.FormValidation](Excessibility.TelemetryCapture.Analyzers.FormValidation.md): Analyzes form validation patterns.
- [Excessibility.TelemetryCapture.Analyzers.HandleEventNoop](Excessibility.TelemetryCapture.Analyzers.HandleEventNoop.md): Detects handle_event calls that don't modify state.
- [Excessibility.TelemetryCapture.Analyzers.Hypothesis](Excessibility.TelemetryCapture.Analyzers.Hypothesis.md): Generates hypotheses about likely root causes.
- [Excessibility.TelemetryCapture.Analyzers.Memory](Excessibility.TelemetryCapture.Analyzers.Memory.md): Analyzes memory usage patterns across timeline events.
- [Excessibility.TelemetryCapture.Analyzers.MessageFlooding](Excessibility.TelemetryCapture.Analyzers.MessageFlooding.md): Detects high-frequency handle_info message patterns.
- [Excessibility.TelemetryCapture.Analyzers.Performance](Excessibility.TelemetryCapture.Analyzers.Performance.md): Analyzes performance patterns across timeline events.
- [Excessibility.TelemetryCapture.Analyzers.PushEventVolume](Excessibility.TelemetryCapture.Analyzers.PushEventVolume.md): Detects excessive push_event calls to JS hooks.
- [Excessibility.TelemetryCapture.Analyzers.RenderEfficiency](Excessibility.TelemetryCapture.Analyzers.RenderEfficiency.md): Analyzes render efficiency by detecting wasted renders.
- [Excessibility.TelemetryCapture.Analyzers.StateMachine](Excessibility.TelemetryCapture.Analyzers.StateMachine.md): Analyzes state transitions across timeline events.
- [Excessibility.TelemetryCapture.Analyzers.Summary](Excessibility.TelemetryCapture.Analyzers.Summary.md): Generates natural language summary of timeline.
- [Excessibility.TelemetryCapture.Diff](Excessibility.TelemetryCapture.Diff.md): Computes differences between sequential telemetry snapshots.
- [Excessibility.TelemetryCapture.Enricher](Excessibility.TelemetryCapture.Enricher.md): Behaviour for timeline event enrichers.
- [Excessibility.TelemetryCapture.Enrichers.AssignSizes](Excessibility.TelemetryCapture.Enrichers.AssignSizes.md): Enriches timeline events with per-assign byte size information.
- [Excessibility.TelemetryCapture.Enrichers.BinaryContent](Excessibility.TelemetryCapture.Enrichers.BinaryContent.md): Enriches timeline events with information about large binary content.
- [Excessibility.TelemetryCapture.Enrichers.Changeset](Excessibility.TelemetryCapture.Enrichers.Changeset.md): Enriches timeline events with Ecto changeset information.
- [Excessibility.TelemetryCapture.Enrichers.CollectionSize](Excessibility.TelemetryCapture.Enrichers.CollectionSize.md): Enriches timeline events with collection size information.
- [Excessibility.TelemetryCapture.Enrichers.ComponentTree](Excessibility.TelemetryCapture.Enrichers.ComponentTree.md): Enriches timeline events with LiveComponent structure information.
- [Excessibility.TelemetryCapture.Enrichers.Duration](Excessibility.TelemetryCapture.Enrichers.Duration.md): Enriches timeline events with duration information.
- [Excessibility.TelemetryCapture.Enrichers.EctoQueries](Excessibility.TelemetryCapture.Enrichers.EctoQueries.md): Enriches timeline events with Ecto query information.
- [Excessibility.TelemetryCapture.Enrichers.PushEvents](Excessibility.TelemetryCapture.Enrichers.PushEvents.md): Enriches timeline events with push_event call information.
- [Excessibility.TelemetryCapture.Enrichers.Query](Excessibility.TelemetryCapture.Enrichers.Query.md): Enriches timeline events with query/database information.
- [Excessibility.TelemetryCapture.Enrichers.Staleness](Excessibility.TelemetryCapture.Enrichers.Staleness.md): Enricher that detects stale timestamp fields in assigns.
- [Excessibility.TelemetryCapture.Enrichers.State](Excessibility.TelemetryCapture.Enrichers.State.md): Enriches timeline events with state structure information.
- [Excessibility.TelemetryCapture.Filter](Excessibility.TelemetryCapture.Filter.md): Filters noise from telemetry snapshot assigns.
- [Excessibility.TelemetryCapture.Formatter](Excessibility.TelemetryCapture.Formatter.md): Formats telemetry timeline data for different output formats.
- [Excessibility.TelemetryCapture.Profiles](Excessibility.TelemetryCapture.Profiles.md): Predefined analyzer profiles for common use cases.
- [Excessibility.TelemetryCapture.Registry](Excessibility.TelemetryCapture.Registry.md): Auto-discovers enrichers and analyzers at compile time.
- [Excessibility.TelemetryCapture.Timeline](Excessibility.TelemetryCapture.Timeline.md): Generates timeline data from telemetry snapshots.

- Core
  - [Excessibility](Excessibility.md): Accessibility snapshot testing for Phoenix applications.
  - [Excessibility.HTML](Excessibility.HTML.md): HTML parsing, wrapping, and static asset path handling.
  - [Excessibility.Scanner](Excessibility.Scanner.md): Runtime scanner for arbitrary URLs.
  - [Excessibility.Snapshot](Excessibility.Snapshot.md): Core snapshot generation and file management.
  - [Excessibility.Source](Excessibility.Source.md): Protocol for extracting HTML from various test sources.

- Behaviours
  - [Excessibility.BrowserBehaviour](Excessibility.BrowserBehaviour.md): Behaviour for browser page source extraction.
  - [Excessibility.ScannerBehaviour](Excessibility.ScannerBehaviour.md): Behaviour for URL scanning (axe-core analysis and screenshots).
  - [Excessibility.SystemBehaviour](Excessibility.SystemBehaviour.md): Behaviour for system-level operations.

- Implementations
  - [Excessibility.LiveView](Excessibility.LiveView.md): LiveView HTML extraction for snapshot testing.
  - [Excessibility.System](Excessibility.System.md): Default implementation for system commands.

## Mix Tasks

- [mix excessibility](Mix.Tasks.Excessibility.md): Runs axe-core accessibility checks on HTML snapshots.
- [mix excessibility.baseline](Mix.Tasks.Excessibility.Baseline.md): Copies current snapshots to the baseline directory.
- [mix excessibility.check](Mix.Tasks.Excessibility.Check.md): Runs axe-core accessibility checks against any URL.
- [mix excessibility.compare](Mix.Tasks.Excessibility.Compare.md): Compares current snapshots against the baseline and prompts for resolution.
- [mix excessibility.debug](Mix.Tasks.Excessibility.Debug.md): Run tests and generate a comprehensive debug report with all snapshots.
- [mix excessibility.install](Mix.Tasks.Excessibility.Install.md): Installs Excessibility into a host project using Igniter.
- [mix excessibility.latest](Mix.Tasks.Excessibility.Latest.md): Display the most recent debug report without re-running tests.
- [mix excessibility.package](Mix.Tasks.Excessibility.Package.md): Create a debug package for a test.
- [mix excessibility.review](Mix.Tasks.Excessibility.Review.md): Reports what the current snapshots changed relative to the baseline.
- [mix excessibility.snapshots](Mix.Tasks.Excessibility.Snapshots.md): List, clean, or open HTML snapshots.

