Accessibility
What we have built for, what we have measured, and what we have not yet tested.
Last updated 8 September 2026.
Built in
- Every control is a real, focusable element reachable and operable by keyboard, with a visible focus ring.
- A skip link to the main content is the first thing in the tab order.
- The simulator’s sliders are labelled native range inputs, so they work with screen readers and assistive input, and expose a spoken value that explains the scale.
- Mode and look selectors are exposed as radio groups, not unlabelled buttons.
- The canvas has a text description that updates with the look and value, so the transformation is not invisible to a screen reader.
- The system reduced-motion setting is respected, transitions are suppressed, and a pause control is always available in Auto.
- Nothing flashes, strobes or pulses rhythmically. Colour changes are smoothed by design.
- Text uses relative units and reflows; the layout is responsive from small phones to desktop.
- Colour is never the only way information is conveyed — status is always also stated in words.
Contrast
Text colour pairs are computed rather than assumed. The measured ratios for the palette are recorded in the project’s docs/CONTRAST.md, and body text pairs meet WCAG AA (4.5:1) against their backgrounds.
Not yet tested
We would rather name these than imply coverage we do not have:
- No screen reader pass with VoiceOver, NVDA or JAWS on this site.
- No testing with speech control or switch access.
- No formal WCAG 2.2 audit, and no conformance claim.
- English only.
- The WebGL simulator has no non-visual equivalent beyond its text description.
Telling us
If something here is hard to use, we want to know: hello@realitymodulation.com.