2.5 KiB
Screen readers
Since: 25.08
Niri has basic support for screen readers (specifically, Orca) when running as a full desktop session, i.e. not as a nested window.
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:
- workspace switching, for example it'll say "Workspace 2" when you switch to the second workspace;
- the exit confirmation dialog (appears on SuperShiftE by default);
- entering the screenshot UI and the overview (niri will say when these are focused, nothing else for now);
- whenever a config parse error occurs;
- the important hotkeys list (for now, as one big announcement without tab navigation; appears on SuperShift/ by default).
Here's a demo video, watch with sound on.
Make sure Xwayland works, then run orca.
The default config binds SuperAltS to toggle Orca, which is the standard key binding.
Note that we don't have an Alt-Tab window switcher yet (it's in the works), and we also don't have a bind to move focus to layer-shell panels.
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:
- Change the default terminal from Alacritty to one that supports screen readers. For example, GNOME Console or GNOME Terminal should work well.
- Change the default application launcher and screen locker to ones that support screen readers. For example, xfce4-appfinder is an accessible launcher. Suggestions welcome! Likely, something GTK-based will work fine.
- Add some
spawn-at-startupcommand that plays a sound which will indicate to users that niri has finished loading. - Add
spawn-at-startup "orca"to run Orca automatically at niri startup.
Desktop zoom
There's no built-in zoom yet, but you can use third-party utilities like wooz.