a11y-perception 0.2.1

Accessibility perception over browser data: AX tree, snapshot, reading-order projection and the diff of two snapshots. Computes, does not collect.
Documentation

a11y-perception

What is perceivable on a page — as a snapshot, as a reading-order projection, and as the difference between two snapshots.

This crate computes, it does not collect. It opens no page, speaks no Chrome DevTools Protocol and reads no DOM. A host hands in an accessibility tree with focus state; this crate answers what follows from it:

Building block The question it answers
AXTree, AXNode what is in the tree, and how do I find a node again
AXSnapshot, FocusSnapshot what a given moment looked like
AXTreeDiff what an interaction changed perceivably
linearize, ReadingItem in which order a screen reader would encounter it

Limits

The projection approximates over browser data. It does not prove what a screen reader announces: a live region receiving content means the browser had cause to announce — not that NVDA read it out.

Two snapshots do not carry every case either. A transient change — an error message inserted, announced and removed again — may never be visible between two moments. For that a host needs an event trail over time.

Node identity holds within one document, via backend_dom_node_id. Missing id, frame switch or navigation means the identity is unclear — and that gets reported, not guessed.

Origin

The code ran in auditmysite first and was measured against 133 pages with 692 journey instances. Details: docs/packages/a11y-perception.md.

License

MIT