Chapter 5. Blindness

5.1. Introduction

This chapter describes assistive technologies for users who are blind, focusing primarily on screen readers and tools designed to work in conjunction with them. The chapter deliberately contains no images and aims to minimize the use of elements other than plain text.

5.2. Screen Reader

Currently, screen readers function only within the X Window System and are not supported in the Virtual Terminal. FreeBSD does not currently support Braille displays, so they rely exclusively on speech synthesizers.

5.2.1. Orca

Orca is a widely used and well-known open source screen reader. It offers a comprehensive set of features and is available on FreeBSD through the accessibility/orca package.

5.2.1.1. Installation

To install it, execute:

# pkg install orca

5.2.1.2. Launch

Orca can be launched in several ways. From a terminal, type:

% orca

Some desktop environments (KDE Plasma, XFCE, GNOME) provide a keyboard shortcut to launch Orca: Super + Alt + s.

The Super key is usually labeled as Windows icon, Command symbol, or "Super". Refer to https://en.wikipedia.org/wiki/Super_key_(keyboard_button) for more information.

5.2.1.3. Usage

Orca provides a manual page: orca(1). However, most of the documentation is available online. The main reference is the starting point in the Orca Users Guide, which includes:

  • Getting Started

  • Reading Documents and Web Pages

  • Reviewing and Interacting with Screen Contents

The screen reader includes many keyboard commands for navigation and interaction. Refer to the Orca’s Commands page for a full list.

5.2.1.4. Configuration

Orca can be configured through a graphical settings interface. To open it, run:

% orca -s

Configuration options are documented on the Orca’s Preferences Dialogs page.

5.2.2. yasr

The accessibility/yasr utility is a lightweight screen reader that operates exclusively in a terminal environment. Yasr requires a speech synthesizer to work. Its default configuration file is set up to use accessibility/eflite.

To install both yasr and eflite, run:

# pkg install yasr eflite

To start the screen reader, execute:

% yasr

The global configuration file for yasr is located at /usr/local/share/yasr/yasr.conf. To create a user-specific configuration file, copy the global one to your home directory:

% cp /usr/local/share/yasr/yasr.conf ~/.yasr.conf

For details on configuration options and keyboard shortcuts, refer to yasr(1).

5.3. Speech Synthesizer

The purpose of the speech synthesizer is to provide audio output for screen readers by converting on-screen text to speech. This section explains how to install speech synthesizers, perform a basic functionality test, and locate their documentation for further configuration.

Detailed information about the FreeBSD audio subsystem can be found in the sound(4) manual page.

5.3.1. eSpeak NG

The audio/espeak-ng package provides espeak-ng(1), a multilingual speech synthesizer.

To install, run:

# pkg install espeak-ng

To test, execute the following command:

% espeak-ng "Hello World, FreeBSD!"

eSpeak NG is a versatile and feature-rich utility. For more information, consult its manual page, espeak-ng(1), and the official online documentation.

5.3.2. Flite

audio/flite is a speech syntetizer that is part of the FestVox project. It is designed as a small and fast alternative to Festival, built using the FestVox suite. To install, run:

# pkg install flite

To test, execute the following commands:

% flite "Hello world, BSD!"
% flite_time 10:30
The time is now, exactly half past ten, in the morning.

The project does not provide a manual page. Documentation is available in /usr/local/share/doc/flite/README.md and online.

5.3.3. Festival

The audio/festival package provides festival(1), a multilingual speech synthesizer. To install, run:

# pkg install festival

Festival needs at least one festvox-voice package to generate a syntetich voice. Run the following command to list available voice packages:

% pkg search festvox

Then install a voice package. For example, to install the American English male voice festvox-kal16-1.4.0, run:

# pkg install festvox-kal16

To test, execute:

% echo "Hello world, BSD!" | festival --tts

In the case of the error Can’t access NAS server, example:

% echo "Hello world, BSD!" | festival --tts
Can't access NAS server %

Add the following line to /usr/local/share/festival/lib/siteinit.scm:

(Parameter.set 'Audio_Method 'freebsd16audio)

For more information about Festival, consult its manual page, festival(1), and the official online documentation.

5.3.4. Speech Dispatcher

The Speech Dispatcher project provides a high-level device independent layer for access to speech synthesis. To install accessibility/speech-dispatcher, run:

# pkg install speech-dispatcher

To test, execute:

% spd-say "Hello world, FreeBSD!"

Speech Dispatcher provides two manual pages, spd-say(1) and speech-dispatcher(1), as well as online documentation.

The audio/festival-freebsoft-utils package provides additional features for Festival to interact with Speech Dispatcher. Refer to the online documentation to know more.

5.4. Ports Collection

FreeBSD provides the Ports Collection, which offers a simple way to install applications. Some ports allow you to configure options before building and installation. By default, configuration is handled through a TUI menu not accessible by a screen reader.

The ports-mgmt/portoptscli utility is a text-only tool specifically designed to configure ports using a screen reader. To install it, run:

# pkg install portoptscli

Then add to /etc/make.conf:

DIALOG4PORTS=/usr/local/bin/portoptscli

From now on, the Ports framework will automatically invoke portoptscli whenever a port offers configurable options.

For detailed information about its features and usage, refer to the manual page portoptscli(1) and consult the online README.

5.5. Editor

5.5.1. ed

The ed(1) utility is a line-oriented text editor used to create, view, and modify text files. It is included by default in a standard FreeBSD installation. To start the editor, run:

% ed

ed is a powerful editor. Refer to its manual page ed(1) for a complete overview of its features and command syntax.

ed does not support multibyte characters and may not handle non-ASCII text correctly. Alternatively, consider using edbrowse, which offers robust text editing features in addition to its browsing capabilities.

5.6. Internet and WEB

5.6.1. Edbrowse

Edbrowse is a text-based browser, editor, IRC chat client, and mail client, specifically designed for screen reader users. Its interface is similar to ed(1), but with extended functionality.

5.6.1.1. Installation

To install www/edbrowse, execute:

# pkg install edbrowse

5.6.1.2. Usage

To launch Edbrowse, run:

% edbrowse

The first time you run edbrowse, it will not find the configuration file ~/.ebrc. It will automatically create a default configuration file, display a message, and exit:

% edbrowse
Your edbrowse config file is missing; a default file has been created for you.
Before running edbrowse again, take the time to personalize your config file:
/home/yournickname/.ebrc
edbrowse -c to edit
%

You can now relaunch Edbrowse; it will use the default configuration file. To customize it, either run:

% edbrowse -c

Or use your preferred text editor, for example:

% ed ~/.ebrc

Example configuration files are provided in /usr/local/share/doc/edbrowse/. These include:

  • sample.ebrc: with comments in English

  • sample_fr.ebrc: with comments in French

  • sample_it.ebrc: with comments in Italian

5.6.1.3. Documentation

The utility provides a manual page: edbrowse(1). However, the main documentation is available online in the User’s Guide.

The package also installs a local copy of the documentation at /usr/local/share/doc/edbrowse/usersguide.html. To view it using edbrowse, run:

% edbrowse /usr/local/share/doc/edbrowse/usersguide.html

Translated versions of the user guide are available in the same directory:

  • usersguide_es.html: Spanish

  • usersguide_fr.html: French

  • usersguide_pt_br.html: Brazilian Portuguese

5.6.2. Web Apps

Some web applications cany use APIs to send output to audio devices. Refer to Speech Synthesizer to install a utility and the corresponding library.

The Firefox browser can reports the error message: You can’t use speech synthesis because the Speech Dispatcher library is missing or other errors. To solve, install Speech Dispatcher.

5.7. Liblouis

devel/liblouis is a translator for many languages to and from Braille. It provides a large number of conversion tables. To install, execute:

# pkg install liblouis

The package installs both libraries and utilities. The translation utility is lou_translate(1).

The following example demonstrates how to transcribe the text FreeBSD Accessibility Handbook into Braille with English Grade 2 translation table and the unicode.dis display table. The final output is Braille encoded as Unicode dot patterns.

% echo "FreeBSD Accessibility Handbook" | lou_translate -f unicode.dis,en-us-g2.ctb
⠠⠋⠗⠑⠑⠠⠠⠃⠎⠙⠀⠠⠁⠒⠑⠎⠎⠊⠃⠊⠇⠰⠽⠀⠠⠓⠯⠃⠕⠕⠅

Documentation and additional examples for this utility are available on the project website, specifically in the Testing Translation Tables interactively section of the official documentation.


Last modified on: July 14, 2025 by Alfonso Siciliano