docs/wiki/Accessibility.md
<sup>Since: 25.08</sup>
Niri has basic support for screen readers (specifically, Orca) when running as a full desktop session, i.e. you need to start niri through a display manager or through niri-session.
To avoid conflicts with an already running compositor, niri won't expose accessibility interfaces when started as a nested window, or as a plain /usr/bin/niri on a TTY.
We implement the org.freedesktop.a11y.KeyboardMonitor D-Bus interface for Orca to listen and grab keyboard keys, and we expose the main niri UI elements via AccessKit.
Specifically, niri will announce:
Here's a demo video, watch with sound on.
<video controls src="https://github.com/user-attachments/assets/afceba6f-79f1-47ec-b859-a0fcb7f8eae3">https://github.com/user-attachments/assets/afceba6f-79f1-47ec-b859-a0fcb7f8eae3
</video>Make sure Xwayland works, then run orca.
The default config binds <kbd>Super</kbd><kbd>Alt</kbd><kbd>S</kbd> to toggle Orca, which is the standard key binding.
Note that there are some limitations:
If you're shipping niri and would like to make it work better for screen readers out of the box, consider the following changes to the default niri config:
spawn-at-startup command that plays a sound which will indicate to users that niri has finished loading.spawn-at-startup "orca" to run Orca automatically at niri startup.There's no built-in zoom yet, but you can use third-party utilities like wooz.