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. They can communicate exclusively with speech synthesizers and do not support Braille displays.

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 provide a keyboard shortcut to launch Orca:

  • XFCE: Super + Alt + s

  • GNOME Super + Alt + S

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 The starting point is 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. 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.4. Editor

5.4.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.5. Internet and WEB

5.5.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.5.1.1. Installation

To install www/edbrowse, execute:

# pkg install edbrowse

5.5.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.5.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. 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 translate the FreeBSD Accessibility Handbook in Braille with English Grade 2 translation table and the unicode.dis diplay 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: June 17, 2025 by Alfonso Siciliano