Chapter 17. Configuring the desktop environment for accessibility

As a system administrator, you can configure a system with the desktop environment to support users with a visual impairment.

Accessibility in Red Hat Enterprise Linux 8 desktop for the blind users is ensured by the Orca screen reader, which is included in the default installation of the operating system.

Orca reads information from the screen and communicates it to the user using:

  • Speech synthesizer - provides a speech output
  • Braille display - provides a tactile output

For more information on Orca settings, see Orca’s help page.

For Orca’s communication outputs to function properly, the system administrator must:

  • Configure the brltty service
  • Switch on the Always Show Universal Access Menu option
  • Enable the Festival speech synthesizer

17.1. Configuring the brltty service

The Braille display is a device that uses the brltty service to provide tactile output for visually impaired users.

In order that a Braille display works correctly, system administrators must:

17.1.1. Enabling the brltty service

The Braille display cannot work unless the brltty service is running. By default, brltty is disabled.

To enable brltty to be started on boot, use the following procedure.

Procedure

  • To enable the brltty service on boot, run:

    # systemctl enable --now brltty

Verification steps

  1. Reboot the system.
  2. Make sure that the brltty service is running:

    # systemctl status brltty
    ● brltty.service - Braille display driver for Linux/Unix
       Loaded: loaded (/usr/lib/systemd/system/brltty.service; enabled; vendor pres>
       Active: active (running) since Tue 2019-09-10 14:13:02 CEST; 39s ago
      Process: 905 ExecStart=/usr/bin/brltty (code=exited, status=0/SUCCESS)
     Main PID: 914 (brltty)
        Tasks: 3 (limit: 11360)
       Memory: 4.6M
       CGroup: /system.slice/brltty.service
               └─914 /usr/bin/brltty

17.1.2. Authorizing users of a Braille display device

To set the users who are authorized to use a Braille display device, you can choose one of the following methods, which have an equal effect:

Authorization using the /etc/brlapi.key file is suitable only for the file systems where users or groups can be assigned to a file.

Authorization using the /etc/brltty.conf file is suitable even for the file systems where users or groups cannot be assigned to a file.

17.1.2.1. Authorizing users of a Braille display device with brltty.conf

Procedure

  1. Open the /etc/brltty.conf file, and find the section called Application Programming Interface Parameters.
  2. Specify the users.

    • To specify one or more individual users, list the users on the following line:

      api-parameters Auth=user:user_1, user_2, ...    # Allow some local user
    • To specify a user group, enter its name on the following line:

      api-parameters Auth=group:group    # Allow some local group

17.1.2.2. Authorizing users of a Braille display device with brlapi.key

Authorization using the /etc/brlapi.key file is suitable only for the file systems where users or groups can be assigned to a file.

Prerequisites

  • Your system must use a file system where users or groups can be assigned to a file.

Procedure

  1. Create the /etc/brlapi.key file.

    # mcookie > /etc/brlapi.key
  2. Change ownership of the /etc/brlapi.key to particular user or group.

    • To specify an individual user:

      # chown user_1 /etc/brlapi.key
    • To specify a group:

      # chown group_1 /etc/brlapi.key
  3. Adjust the content of /etc/brltty.conf by including the following line:

    api-parameters Auth=keyfile:/etc/brlapi.key

17.1.3. Setting the driver for a Braille display device

The braille-driver directive in /etc/brltty.conf file specifies a two-letter driver identification code of the driver for the Braille display device.

Procedure

  • Decide whether you want to use the autodetection for finding the appropriate driver for your Braille display device.

    • To use autodetection, use the default option as follows:

      braille-driver	auto	 # autodetect
      Warning

      Autodetection tries all drivers. Therefore, it might take a long time or even fail. For this reason, setting up a particular driver is recommended.

    • If you do not want to use the autodetection, specify the identification code of the required driver in the braille-driver directive.

      Choose the identification code of required driver from the list provided in /etc/brltty.conf, for example:

      braille-driver	xw	 # XWindow

      You can also set multiple drivers, separated by commas, and autodetection is then performed among them.

17.1.4. Configuring a Braille display device

The braille-device directive in the /etc/brltty.conf file specifies the device to which the Braille display device is connected.

17.1.4.1. Supported types of Braille display device

This section describes which types of Braille display devices are supported.

Table 17.1. Braille display device types and the corresponding syntax

Braille device typeSyntax of the type

Serial device

serial:path [a]

USB device

[serial-number] [b]

Bluetooth device

bluetooth:address

[a] Relative paths are at /dev.

[b] The brackets ([]) here indicate optionality.

Example settings for particular Braille display devices:

braille-device	serial:ttyS0	                # First serial device
braille-device	usb:	                        # First USB device matching braille driver
braille-device	usb:nnnnn	                # Specific USB device by serial number
braille-device	bluetooth:xx:xx:xx:xx:xx:xx	# Specific Bluetooth device by address

You can also set multiple devices, separated by commas, and each of them will be probed in turn.

Important

If the device is connected by a serial-to-USB adapter, setting braille-device to usb: does not work. In this case, identify the virtual serial device that the kernel has created for the adapter. The virtual serial device can look like this:

serial:ttyUSB0

You can find the actual device name in the kernel messages on the device plug with the following command:

# dmesg | fgrep ttyUSB0

17.1.4.2. Setting specific parameters for Braille display devices

To set specific parameters for particular Braille display devices, use the braille-parameters directive in /etc/brltty.conf file. The braille-parameters directive passes non-generic parameters through to the braille driver. Choose the required parameters from the list in /etc/brltty.conf.

17.1.4.2.1. Setting the text table

The text-table directive in /etc/brltty.conf specifies which text table is used to encode the symbols. Relative paths to text tables are stored within the /etc/brltty/Text/ directory.

Procedure

  1. Decide whether you want to use the autoselection for finding the appropriate text table.
  2. If you want to use the autoselection, leave text-table specified to auto, which is the default option.

    text-table	auto	 # locale-based autoselection

    This ensures that local-based autoselection with fallback to en-nabcc is performed.

    For example, to use the text table for American English:

    text-table	en_US	 # English (United States)
17.1.4.2.2. Setting the contraction table

The contraction-table directive in the /etc/brltty.conf file specifies which table is used to encode the abbreviations. Relative paths to particular contraction tables are stored within the /etc/brltty/Contraction/ directory.

Procedure

  • Choose the required contraction-table from the list in /etc/brltty.conf.

    For example, to use the contraction table for American English, grade 2:

    contraction-table	en-us-g2	 # English (US, grade 2)
Warning

If not specified, no contraction table is used.

17.2. Switching on the Always Show Universal Access Menu

To activate the Orca screen reader, switch on Always Show Universal Access Menu as described in the following procedure.

Procedure

  1. Open the Gnome Settings menu, and click Universal Access.
  2. Switch on Always Show Universal Access Menu.

    Switching on the Always Show Universal Access Menu in GNOME Settings

    always show univ acces menu new

Verification steps

  • Optionally, verify that the Universal Access Menu icon is displayed on the top bar even if all options from this menu are switched off.

    universal access menu

Alternatively, you can switch the Orca screen reader on by pressing the Super+Alt+S key combination. As a result, the Universal Access Menu icon is displayed on the top bar.

Warning

If you activate Orca by pressing Super+Alt+S, the icon disappears in case that the user switches off all of the provided options from the Universal Access Menu. Missing icon can cause difficulties to users with a visual impairment. System administrators can prevent the inaccessibility of the icon by switching on the Always Show Universal Access Menu as described in the above procedure. When the Always Show Universal Access Menu is switched on, the icon is displayed on the top bar even in the situation when all options from this menu are switched off.

17.3. Enabling the Festival speech synthesis system

By default, Orca uses the eSpeak speech synthesizer, but it also supports the Festival speech synthesis system. Both eSpeak and Festival synthesize voice differently. Some users might prefer Festival to the default eSpeak synthesizer.

17.3.1. Enabling Festival

To enable Festival to be automatically started on boot, follow this procedure.

Prerequisites

  • All packages that are necessary for the Festival stack are installed on the system:

    # yum install festival festival-freebsoft-utils

Procedure

  1. Create a new systemd unit file in the /etc/systemd/system/ directory, and make the file executable:

    # touch /etc/systemd/system/festival.service
    # chmod 664 /etc/systemd/system/festival.service
  2. Ensure that the script in the /usr/bin/festival_server file is used to run Festival by adding the following content to the /etc/systemd/system/festival.service file:

    [Unit]
    Description=Festival speech synthesis server
    [Service]
    ExecStart=/usr/bin/festival_server
    Type=simple
  3. Notify systemd that a new festival.service file exists:

    # systemctl daemon-reload
  4. Start and enable the festival service:

    # systemctl enable --now festival

17.3.2. Enabling the required voice

Festival offers multiples voices provided in these packages:

  • festvox-awb-arctic-hts
  • festvox-bdl-arctic-hts
  • festvox-clb-arctic-hts
  • festvox-kal-diphone
  • festvox-rms-arctic-hts
  • festvox-slt-arctic-hts
  • hispavoces-pal-diphone
  • hispavoces-sfl-diphone

To make a particular voice or voices that users require available, follow this procedure.

Prerequisites

  • You know which voices are available and which voices the users of the system prefer. For detailed information about a particular voice, run:

    # yum info package_name

Procedure

  1. To make the required voice available, install the package with this voice:

    # yum install package_name
  2. Reboot the system to apply changes:

    # reboot