# pkg install orca
Chapter 5. Blindness
Table of Contents
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.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
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.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:
|
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