CASOON research project · in development
A website is a surface. Relief makes its structure tangible.
Relief is a research browser built on Chromium. It reads the accessibility tree inside the browser, turns it into a semantic model of the page and lets people operate the page by intent — alongside VoiceOver or NVDA, not instead of them.
0.134 start 0.176 mode kWebContents | kInlineTextBoxes | kExtendedProperties 0.187 reset attach 1613.693 page dropped=0 trees=0 hosts=0 1939.479 tree main https://www.spiegel.de 1942.228 packet version=1 created=567 nodes=567 latency_us=2758 2046.775 tree iframe https://www.spiegel.de 2046.817 packet version=2 created=2 nodes=569 latency_us=62 3405.416 packet version=3 created=0 nodes=569 latency_us=44
- p95 from accessibility packet to updated page model
- ≤ 1.1 ms
- small patches outside Relief’s own directory in the Chromium fork
- 9
- recorded pages with correct page type and primary action
- 13 / 13
- VoiceOver output with Relief running, compared step by step
- unchanged
What Relief is built to do
Understand the page, not just read it
Page type, functional groups, the primary action and what changed — derived from Chromium’s own accessibility tree, including cross-site iframes such as consent dialogs.
Operate by intent, safely
“What can I do here?”, “add size 43 to the cart”. Every action runs through a validated plan in Rust; risky actions need an explicit confirmation. A model may suggest, never act.
Say where a statement comes from
Every answer carries its certainty: known from the page, inferred, or uncertain. Guesses are never presented as facts.
Test accessibility the way people use it
The same core runs as a test mode: form journeys, focus after errors, live announcements and the real VoiceOver output, checked in the real browser.
Where the project stands
Phase 0 — feasibility inside a real Chromium build — is complete. The user-facing surfaces of phase 1 now run in the fork.
- Done: Chromium fork builds on Apple silicon; accessibility tree → Rust → page model → action → result, measured on real sites. VoiceOver keeps working unchanged next to Relief.
- Done: actions through Chromium’s accessibility actions, an inspector with findings, a command bar, keyboard hints, a form assistant, consent handling and a semantic view.
- Done: speech — a talk button with live microphone, recognition on the device, spoken answers; “cancel” interrupts at once.
- Done: ability profiles — output, input and presentation adapted to abilities, globally or per site, stored locally only.
- Done for testing: form assertions, headless runs with JUnit reports, Playwright access to the page model.
- Next: real screen-reader output in tests, an accessibility baseline for Relief’s own interface checked with VoiceOver, the runtime in a sandboxed utility process.