Accessibility Features on Fedora

A Complete Overview

Fedora provides Orca screen reader and high-contrast themes accessible via GNOME Settings or the `orca` command.

When the default desktop misses the mark

You install Fedora Workstation on a new machine. The desktop boots fine, but the default text size is too small, the color contrast washes out on your monitor, or you need a screen reader to navigate the file manager. You open Settings, find the Accessibility panel, and toggle a switch. Nothing happens. Or it works in GNOME Files but breaks in your terminal emulator. You need a reliable way to manage these features without guessing which GNOME Shell extension is blocking the signal.

How Fedora handles accessibility under the hood

Fedora does not ship a single accessibility daemon. The system relies on the Assistive Technology Service Provider Interface (AT-SPI), a freedesktop standard that lets applications expose their UI structure to external tools. GNOME Shell translates those signals into screen readers, magnifiers, and high-contrast themes. When you toggle a switch in the GUI, GNOME writes a key to the dconf database and starts a background service. The service then broadcasts a D-Bus signal. Every running application receives the signal and redraws itself or hands control to Orca. If the signal drops, the feature breaks. Understanding that chain lets you fix it when the GUI fails.

Think of AT-SPI like a translator at a conference. The application speaks GTK or Qt. The translator converts those UI elements into a standardized tree. Orca or a braille display listens to the translator and speaks the output to you. If the translator process crashes, the application is still running, but it goes silent to assistive tools. Fedora ships at-spi2-core as the bus manager and at-spi2-atk as the bridge to ATK/GTK applications. Both must be present and running on the user session bus.

Convention aside: gsettings is the safe wrapper for user configuration. dconf is the raw database underneath. Always prefer gsettings for day-to-day changes. It validates keys against the schema and prevents database corruption. If you need to push settings to every user on a shared machine, write a profile to /etc/dconf/db/local.d/ and run sudo dconf update. Never edit the compiled database files directly.

Enable and configure from the terminal

The GUI is convenient for one-off changes. The terminal gives you persistence and scriptability. Fedora stores accessibility preferences in the org.gnome.desktop.a11y schema. You can read and write these keys with gsettings. The command reads the current value, applies it to the active session, and writes it to your user database.

Here is how to enable the core features and start the screen reader immediately.

# Enable the system-wide screen reader flag in the user database
gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true
# Tell GNOME Shell to load the accessibility extensions on the next shell cycle
gsettings set org.gnome.desktop.a11y.applications screen-magnifier-enabled true
# Start Orca in the background and attach it to the current AT-SPI bus
orca &

High contrast and color filters work differently. High contrast swaps the GTK theme to a predefined palette. Color filters modify the X11 or Wayland compositor output. You enable them through the same schema, but the effect depends on your display server.

# Switch the active GTK theme to the high-contrast variant
gsettings set org.gnome.desktop.a11y.applications high-contrast-enabled true
# Apply a blue-light filter to reduce eye strain during night sessions
gsettings set org.gnome.settings-daemon.plugins.color night-light-enabled true
# Set the color temperature to a warmer 4000 Kelvin
gsettings set org.gnome.settings-daemon.plugins.color night-light-temperature 4000

Braille support requires a dedicated daemon. Fedora ships brltty as the standard bridge between the kernel input subsystem and the AT-SPI bus. You must install the package and start the service before the system recognizes the hardware.

# Install the braille display daemon and its AT-SPI bridge plugin
sudo dnf install brltty brltty-at-spi
# Enable the service so it starts automatically on boot
sudo systemctl enable --now brltty.service
# Reload the udev rules so the kernel recognizes the USB device immediately
sudo udevadm control --reload-rules && sudo udevadm trigger

Manage Orca preferences without the GUI

Orca stores its configuration in a Python dictionary inside ~/.orca/orca_prefs.py. You can edit this file to change speech rate, punctuation verbosity, and key bindings. The GUI writes to this file, but direct editing gives you precise control.

# Open the user preference file in your default terminal editor
nano ~/.orca/orca_prefs.py
# Change the speech rate to a faster value between 0 and 100
prefs['speechRate'] = 75
# Enable verbose punctuation so Orca reads commas and periods aloud
prefs['speakPunctuation'] = 'all'
# Save the file and restart Orca to apply the new dictionary
killall orca && orca &

Convention aside: Orca reads the preference file on startup. Changes made while Orca is running require a restart. The killall orca && orca & pattern is the standard recovery step when preferences drift or speech synthesis hangs.

Verify it worked

Toggling a key does not guarantee the daemon started. AT-SPI requires a running bus and a connected client. Run these checks to confirm the stack is active.

# Confirm the screen reader flag is persisted in the dconf database
gsettings get org.gnome.desktop.a11y.applications screen-reader-enabled
# Verify Orca is running and listening on the user session bus
ps aux | grep -E '[o]rca|at-spi2-registryd'
# Check the D-Bus session for active accessibility services
busctl --user list | grep -i atspi

If ps aux returns nothing, the session bus dropped the process. Log out and log back in. GNOME Shell initializes the AT-SPI bridge during the login sequence. Running orca & manually bypasses that initialization and often results in a detached process that cannot read window titles.

Reboot before you debug. Half the time the symptom is gone after a clean session start.

Common pitfalls and what the error looks like

Accessibility features fail in predictable ways. The GUI toggle stays green, but the screen reader stays silent. Or the magnifier zooms the cursor but ignores keyboard navigation. These symptoms usually point to three specific issues.

The first issue is a missing AT-SPI bridge package. Fedora splits the bridge into at-spi2-core and at-spi2-atk. If you installed a minimal desktop or removed packages to save space, the bridge might be gone. The terminal will print Error: org.a11y.atspi.Event: Connection refused when you try to launch Orca. Install the missing packages and restart your session.

The second issue is a conflicting GNOME Shell extension. Some extensions override the default cursor size, disable the magnifier, or intercept keyboard shortcuts. The accessibility panel will show the toggle enabled, but the feature will not activate. Disable extensions one by one using gnome-extensions-app. The moment the feature works, you found the culprit.

The third issue is Wayland vs X11 compositor differences. High contrast and color filters apply differently depending on your display server. On Wayland, the compositor handles color management. On X11, the X server handles it. If you switch display servers at the login screen, your gsettings values persist, but the visual output changes. Check your active session with echo $XDG_SESSION_TYPE. Adjust your expectations accordingly.

Run journalctl -xe --user first. Read the actual error before guessing. AT-SPI logs its failures clearly when you add the x flag for explanatory text.

Choose the right tool for your workflow

Fedora gives you multiple paths to the same result. Pick the one that matches your environment.

Use the GUI when you are configuring a single machine and want visual feedback. Use gsettings when you are scripting a fresh install or managing multiple workstations. Use dconf directly when you need to override locked-down keys or export a full configuration snapshot. Use orca --debug when the screen reader crashes on a specific application and you need the AT-SPI tree dump. Use brltty configuration files in /etc/brltty/ when you are mapping custom keybindings for a specific braille display model. Stay on the default GNOME accessibility stack if you only need standard screen reading and high contrast.

Where to go next