Files
niri/docs/wiki/Accessibility.md
Ivan Molodetskikh af4b5f99e9 Bump version to 25.08
2025-08-29 22:01:28 +03:00

2.1 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";
  • 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).

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. Suggestions welcome! Likely, something GTK-based will work fine.
  • Add some spawn-at-startup command 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.