Linux Makes Sense For Blind Users

Charles E. Hallenbeck, Ph.D.

December 2000

As Linux matures and finds a home in the desktop PC, blind users are discovering that it is easy to gain access to this system with speech or braille displays. This article summarizes how such access is achieved.

Background. The first personal computer to be used widely by the blind was the Apple II and II-E dating from the late 1970's. With an inexpensive speech synthesizer plugged into one of its slots, a number of useful programs were written with their output directed to that slot. Programs included word processors, simple data base engines, text to braille translators, and modem/comm programs. What else could a blind person ask for? The modem program especially opened the way to local BBS's and from there to university and commercial time-sharing systems and to the rest of the world of computing. The downside was that each application carried its own unique access solutions, and blind users ended up using - forgive the expression - "separate but equal" applications, and of course separate was not equal then either. Blind users and sighted users did not use the same applications and software development rapidly stagnated for blind users.

Then came DOS and the IBM compatible PC. (I am omitting the CP-M story). On a DOS machine the solution for the blind to achieve speech access was much more satisfactory. A special screen access program could be run at bootup as a TSR (Terminate and Stay Resident) designed to steal a copy of each keystroke and each character sent to screen memory, and direct those copies to a speech synthesizer. The text on the screen at any given moment was stored in memory as ASCII character codes and could conveniently be rereferenced or reviewed by the screen access software. Once such a TSR program was run, all subsequent applications would automatically become accessible to blind users, who would hear each key say its name as it was pressed and hear all information sent to the screen. The application need not be modified in any way. Blind users used the same applications as everyone else. Liberation! Long live WordStar, Kermit, and Lotus 123!

Then came Windows. The GUI (Graphical User Interface) presented blind users, or rather designers of screen access software for the blind, with a very serious challenge. There were no characters sent to screen memory. In fact screen memory contained no ASCII character codes at all; it contained only pixels whose patterns sometimes looked like letters and numbers, but sometimes looked like paperclips, smiley faces, wastebaskets, hourglasses, or whatever. The preferred mode of input was by mouse droppings, and eye-hand coordination was the supreme skill. Windows designers boasted that there were "no complicated commands" to learn, such as "DIR," "COPY," or "DEL" I suppose. Visual intuition and the "point and click" reflex response sufficed. At the present time GUI screen access software for Windows exists, but it is expensive, functions imperfectly, and is rarely as current as the most recent Windows releases. Users rely on keystroke equivalents of mouse commands, and so those "complicated commands" have crept back in, at least for blind users.

Linux at last. With the advent of Linux for the desktop PC, several access solutions for blind users have been proposed. The simplest is so obvious it hardly needs mentioning. Connect the Linux machine by a serial null modem cable to a second PC which is already accessible, and dial into the Linux box from there. The second machine could be an Apple with a "talking COMM" program, or a DOS box with a standard modem program such as Procomm, Kermit, or Telix. I used that method happily for a couple of years until something better came along. It is very much like having a shell account on your own machine, and it is not a bad solution at all.

Emacs and Emacspeak. Richard Stallman and the Free Software Foundation will long be remembered for the GPL concept, for the GNU C/C++ compiler GCC, and for the gonzo editor Emacs. Emacs is more than an editor; its enthusiasts regard it as an IDE (Integrated Development Environment) and boast that one can perform any computing task one desires without ever leaving Emacs. While there is a steep and daunting learning curve, the payoff at the top is said to be substantial for mastering its conventions. And as far as blind users are concerned, such an integrated environment is perfect as a means of gaining access. T.V. Raman has developed a set of Lisp macros to render Emacs functions accessible in speech, and the package (called Emacspeak) is in widespread use. Its author vigorously pursues its development, and an active email discussion lists exists to support users. Emacspeak can even be used without a hardware voice synthesizer, since it supports the IBM ViaVoice software synthesizer. The downside of this solution is that one must bring the system up, log into a user account, and run Emacs with the Emacspeak macros before having access to the screen. In addition, if for any reason you cannot do it in Emacs, it cannot be done.

Speakup. Have you noticed that I saved the best for last? Kirk Reiser at the University of Western Ontario has developed an access solution called "Speakup" which takes a very different path. Speakup is a set of kernel patches applied to the source code for the Linux kernel. With the Speakup patches applied and the kernel recompiled and reinstalled, the same powerful solution that made DOS so "blind friendly" now exists for Linux. In particular, all screen output is spoken right from the start - including those sometimes all important bootup messages. Each key says its name when pressed, and every application speaks its output as well as placing it on the screen. With Speakup, the numeric keypad is dedicated to review functions; i.e., moving an imaginary cursor around the current screen to review its contents a line at a time, a word at a time, or character by character. Recompiling and installing a kernel patched with Speakup is not as difficult a task as it sounds, and the payoff is a totally accessible desktop PC running a world class operating system.

Many developers of access technology are themselves blind, including both Raman and Reiser. There is a clear sense of self-help at work here. In addition to the usual support structures for all Linux users, blind persons using Linux have available several specialized support lists dealing with access issues. Blind plus Linux equals BLINUX, a term often appearing in the names of email lists on this subject. Two examples are blinux-list@redhat.com and blinux-newbie@braille.uwo.ca. You should also visit http://www.linux-speakup.org for the best information and the latest developments.

Unsolved problems. A handful of minor problems remains, and a few rather major ones. The smaller problems have to do with those as yet unfinished features of Speakup, which time and diligence will surely fix. Speakup has a principal author, but it is offered as an Open Source project and has an impressive number of very talented lieutenants providing Kirk Reiser with very capable assistance.

One major problem is that Speakup requires a hardware speech synthesizer at the present time. A software synthesizer would either increase the kernel size unreasonably or would be designed as a kernel module. In the latter case, it would not be able to execute until after Linux has completed loading and configuring itself, and so much important early information would be lost to the blind user. Fortunately hardware synthesizers are not terribly expensive.

Another major problem is that neither Emacspeak nor Speakup provide access to the Linux GUI, the X windowing system. Unlike Windows, where the GUI is the only interface offered, Linux makes its GUI a user choice, and so in its character mode the full power of Linux is available for the blind to enjoy. However, when running X, Linux is no longer an accessible environment for the blind. There are a few X applications that blind users might like to use, including Netscape and WordPerfect, although there are text based alternatives that are very useful tools. I myself rely on Lynx and Pine in the Linux character environment. Quite recently a text based interface for Realplayer by Matt Campbell, called "trplayer," has made audio streams and realaudio files accessible without resort to a GUI context.

Linux is not Unix of course, but the differences are legal and economic rather than real. As such its conventions and its style date from the early 1970's and anticipate DOS by a decade and Windows by two. It is based on open standards and flourishes under Open Source. It makes a great choice for any serious PC user, and especially for those who must rely on speech access to the digital world.


Back to home page