Project
Project overview
See what each generative-a11y package does and how the project keeps integrations small and reliable.
A focused package family
Each package has one job: decide what to announce, update the browser, connect React, or connect an AI framework. Install only what your app needs.
| Package | Purpose | What it does not depend on |
|---|---|---|
| core | Policy, scheduling, segmentation | No DOM or framework dependency |
| dom | Browser delivery, focus, attention, preferences | No React or AI framework dependency |
| react | Provider and host-element bindings | Leaves the visual interface unchanged |
| ai-sdk | useChat lifecycle translation | Public state and callbacks only |
| assistant-ui | Thread runtime translation | getState and subscribe only |
| ag-ui | Protocol lifecycle translation | Documented subscriber callbacks only |
| devtools | Bounded redacted diagnostics and a trace explorer | No application content or runtime control |
| test | Deterministic event replay and semantic assertions | No browser or speech claims |
Test each part at the right level
Runtime, adapter, browser, and hands-on screen-reader tests answer different questions. Keeping them separate prevents anyone from mistaking an automated transcript for what a person heard.