check_a11y
Analyze UI accessibility by evaluating theme contrast, control labeling, and text legibility using APCA and WCAG 2 standards, returning a structured report of failures.
Instructions
Check accessibility of a UI from the real render: theme contrast, labeling of every interactive control, and per-text-node APCA + WCAG 2 legibility. text_contrast_failures lists nodes failing the strict body-text floor even when the theme verdict is legible (catching authored low-contrast text). Returns a structured report; this is a normal result whether or not it passes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | ||
| theme | No | ||
| description | Yes | The UI description: a `fenestra/1` JSON object. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| legible | Yes | True when the theme reports no contrast violations — its calibrated legibility contract. See `node_legibility` for the strict per-node detail. | |
| unlabeled | No | Interactive nodes with no accessible name. | |
| node_legibility | No | Per-text-node legibility measurements. | |
| contrast_violations | No | Theme role pairs that fall short of their APCA floor. | |
| text_contrast_failures | No | Text nodes that fail the strict per-node APCA floor, measured on real resolved colours. Surfaced even when `legible` is true: the theme's calibrated contract uses a relaxed floor for filled-control labels, so an authored low-contrast text run would otherwise pass silently. The honest per-node evidence behind a strict legibility gate. |