Relief

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.

Research projectChromium 154Rust coremacOS firstMIT
Relief --relief-log (spiegel.de, excerpt)
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

  1. 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.

  2. 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.

  3. Say where a statement comes from

    Every answer carries its certainty: known from the page, inferred, or uncertain. Guesses are never presented as facts.

  4. 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.

  1. 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.
  2. 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.
  3. Done: speech — a talk button with live microphone, recognition on the device, spoken answers; “cancel” interrupts at once.
  4. Done: ability profiles — output, input and presentation adapted to abilities, globally or per site, stored locally only.
  5. Done for testing: form assertions, headless runs with JUnit reports, Playwright access to the page model.
  6. 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.