Category: Introduction

This page was last edited on December 17, 2025

My assistive technology stack is a combination of hardware and software that work together to enable me as a blind person to perform tasks on computers that would be impossible without assistance. The stack that I use includes a screen reader with speech and braille output, speakers, a refreshable braille display, and a mechanical keyboard, that enhance accessibility and usability in various Linux environments.

I've found some skills to be invaluable to use an assistive technology stack effectively such as braille literacy, the ability to touch type, and have comprehensive knowledge of keybindings for keyboard navigation.

Screen reader

My assistive technology stack uses the Orca screen reader that provides access to the graphical desktop via user-customisable combinations of speech and/or braille. Orca requires the BRLTTY daemon to provide screen review and speech functionality via a refreshable braille display.

Orca translates the written text on a digital screen into audible speech played through speakers on my Linux system, whether that is text on a web page, alternative text for an images, or output from bash on the command line. With the BRLTTY daemon package installed Orca can also convert the same text information that is read aloud with a speech synthesiser into braille output onto my refreshable braille display that I can read.

Speakers

Each workstation in my computer lab has its own pair of dedicated speakers. I'm currently using Creative Labs Pebble v2 speakers which is ample for listening to the speech output from my screen reader. These speakers do not have Bluetooth, which I find unreliable. Instead they have a dedicated audio cable with a 3.5mm jack, and a USB cable for power. This setup works extremely well on my Linux workstations.

Keyboard navigation

Being blind means I can't use a mouse to navigate a computer screen. Instead I use keyboard navigation to control the focus of the screen reader to move through page content, and jump to different elements in the screen. The way that I navigate a system is not all that different from how some with sight would. The majority of the keybindings I use are the default found on a Linux desktop, together with some screen reader specific keybindings.

My keyboard of choice is a Unicomp New Model M with a keypad. This full-size mechanical keyboard has the same mechanism, feel and layout, with a solid feel reminiscent of the classic IBM Model M keyboard, but with a slightly smaller footprint. Its my love for the buckling spring design with its heavy, audible click, and tactile feedback for each keystroke that makes typing a joy.

The keyboard sits behind my refreshable braille display. So I had a customised keyboard riser made. Its basically a 20 mm thick sheet of acrylic cut to the size of the keyboard with rounded corners. I have several 5mm felt pads on the bottom to prevent it slipping on my gaming mat that I use to cover the surface of my desk. This puts the keyboard 25 mm higher than my braille display making it easier to move my fingers back and forth between the two peripheral devices. The only exception is my VarioPro 80 with the Status Module as that braille display has a platform for the keyboard builtin.

Refreshable braille display

A refreshable braille display is an electronic device that lets me read the text output from the screen reader by raising and lowering pins in braille cells – to form braille signs – that I can read by touch.

In the computer lab I prefer the larger 80-cell braille dislays. My favourite is an aging VarioPro 80 with a status module from Baum, and an even older Brailliatn B 80 from Humanware. My least favourite is the Focus 80 Blue from Freedom Scientific.

Braille tables

There are two braille codes that I use on a daily basis: NABCC (North American Braille Computer Code), and UEB (Unified English Braille).

NABCC (North American Braille Computer Code)

Even though I am located on the eastern side of the Atlantic Ocean, directly across from North America, I still prefer to use the NABCC instead of the "8-dot United Kingdom Computer Braille Code". The reason is simple. It is the default braille table for BRLTTY. The only real difference between the two 8-dot codes is how some of the special characters are formed.

I use the NABCC for installing Linux distros with a refreshable braille display It is also very useful when working on the command line, to get precise representation of computer-related material such as bash commands, its output, program lines, filenames, passwords ... it's also useful for writing code, scripts, and debugging.

The North American Braille Computer Code uses an 8-dot system that has 256 different combinations, with each cell representing one character. You can find the 88 most used signs – all the characters found on a QWERTY keyboard with the UK layout – that I use on a daily basis in a post I wrote back in December 8, 2025: 8-dot computer braille code

UEB (Unified English Braille)

Unified English Braille (UEB) is my primary braille code. It was developed by the International Council on English Braille (ICEB). UEB is a complete code that is used for both literary (non-technical) and STEM (technical) materials in English-speaking countries. The general principle of UEB is that each print symbol has one and only one braille equivalent by using the same physical symbol regardless of context (literary or technical).

UEB is a 6-dot braille code but there are only sixty-four possible combinations with a 6-dot cell. To overcome this limitation some signs will have more than one braille cell, or one braille cell will represent more than one character. A good example would be an asterisk (*) which is formed with two cells, a prefix, and a root. In UEB a prefix is a braille character that has only right-hand dots. The root is any of the fifty-six braille characters that are not a prefix. In the case of an asterisks, it has a dot 5 prefix and a root with dots 3 and 5. Whereas the word “and” is a strong wordsign and the three characters are represented as one braille cell with dots 123 and 46. This is known as contracted braille.

Summary

These tools are crucial for making digital content and functionality accessible to me as a blind Linux user. Over time I will write in more in depth about how I use my assistive technology stack with Orca and BRLTTY, how and when I use speech and/or braille, and why I switch between the en-nabcc and en-ueb-g2 braille tables.