Linux is going big time, and it’s going to run into big-time challenges. One of those challenges concerns accessibility—the degree to which a computer system is usable by people with limited vision, hearing, or dexterity. As organizations increasingly move toward using Linux as the platform of choice for desktop computing, Linux system and network administrators will need to take accessibility seriously. In this Daily Drill Down, you’ll learn why accessibility is so important, why poorly designed computers systems and programs can prove very frustrating to people with disabilities, and—best of all—why Linux may very well be the platform of choice for organizations committed to taking accessibility needs seriously. You’ll also learn about the many excellent Linux utilities and programs that can enable an employee with disabilities to make a more meaningful contribution.
Why does accessibility matter?
Organizations should make sure that they’ve equipped people with disabilities with computer systems that are as accessible as possible, given the limitations of current technology. The main reason, and by far the most important one, is that it’s simply the right thing to do. Properly designed and equipped computers can positively transform the lives of people with disabilities, enabling them to contribute—and often to become stellar employees—in ways that would not have been imaginable a generation ago. And we’re not talking about small numbers here. According to a recent estimate, more than 30 million Americans have disabilities that could be negatively impacted by poor computer software or system design. At a time when companies are struggling to find competent employees in a tight labor market, it makes excellent sense to hire people with disabilities and to make sure they get the computing support they need. It’s not only the right thing to do; it’s the smart thing to do.
It’s also the law. In the U.S., thanks to the 10-year-old Americans with Disabilities Act (ADA), companies with more than 15 employees must be prepared to make reasonable accommodations for the needs of employees and customers with disabilities. Such accommodations include providing them with accessible computer systems and assistive technologies, such as text-to-speech readers, as long as the cost of providing such accommodations is not prohibitively high. Companies that refuse to make reasonable computing accommodations run the risk of a lawsuit. For example, the National Federation of the Blind and four blind customers filed a lawsuit against Mellon Bank last year, alleging that the bank’s new ATM machines do not include voice guidance features that are widely available in the marketplace. As a result, visually impaired Mellon customers must depend on friends or colleagues to accompany them to an ATM. Although the ATMs are equipped with Braille-labeled keypads, these labels are static and don’t explain the prompts displayed on the computer screen.
What does accessible mean?
For people with disabilities, computers represent a double-edged sword. On the one hand, they’re often the key to attaining full and productive membership in society. But poorly designed computer systems and computer software may contain traps, dead ends, inconveniences, or stumbling blocks that, for a person with limited vision or dexterity, transform the computing experience into a nightmare. Often, the problem lies in thoughtless design, such as a program that provides key information by means of a beep but without any visual signal. For a person with limited hearing, this fundamental design error—one that is unfortunately all too common—could result in lost work and frustration.
When it comes to accessibility, thoughtfulness counts, but only if it’s implemented throughout the system or program’s design. For example, many people with limited vision use screen-reading programs to navigate through the maze of GUI applications. Often, they cannot see well enough to click an on-screen icon with a mouse, so they’re limited to keyboard navigation techniques. But too many applications contain maddening, thoughtless traps, such as situations where the user cannot proceed without using the mouse. All too often, users find themselves at the end of a long series of dialog boxes with a lot of unsaved work back in the application’s window, and the result may be hours of lost effort.
If you’d like to experience this sense of frustration for yourself, just pop open a GNOME or KDE application and see how far you get with the keyboard alone. With KMail, for example, you’ll be stopped pretty quickly; you can download your mail, but there’s no documented keyboard method for switching to the Inbox folder if it’s not already open. I don’t mean to single out KMail here; it certainly isn’t alone, but it’s sufficient to make my point: The application could have been designed more thoughtfully, and doing so would have meant that a user with limited vision might have been able to use the program quite happily. The National Federation of the Blind made a similar point recently in launching a lawsuit against America Online. AOL’s proprietary software prevents users from going online unless they’re able to locate and click unlabelled graphics—a deficiency that could have been easily remedied by means of a keyboard shortcut.
As the above example indicates, creating accessible software doesn’t require all that much effort, but it does require thoughtfulness and knowledge of the challenges faced by users with disabilities. The following guidelines specify the basic principles of accessible software design:
- Allow users to customize system screen display size, foreground and background colors, focus colors, and selection colors to their needs. Ensure that all information conveyed with color is also available without color.
- Implement a high-contrast option without requiring the user to alter a document or run specially designed software.
- Provide well-documented keyboard access to all program features, and thoroughly test keyboard controls to make sure that a user with limited vision will not become trapped or run into unpredictable consequences while attempting to navigate the application using only the keyboard. There’s a strong need for keyboard-shortcut standards that are uniformly applied and utilized both at the desktop environment and application levels; consistency is an important element of software accessibility.
- Provide notification of the keyboard focus location in a way that’s not too subtle for people with limited vision.
- Provide visual as well as auditory information; don’t convey information by sound alone.
In summary, an accessible program is designed with the needs of people with limited vision, hearing, and dexterity in mind. Perhaps most important, it is extensively designed and tested so that it can be successfully navigated using only the mouse or only the keyboard. It’s worth noting that this design imperative also creates value for users who do not have impaired vision or dexterity; many people hate using the mouse and would prefer to navigate their applications by means of the keyboard alone.
Accessible software alone can’t fully address the needs of people with more serious vision or dexterity limitations. These disabilities call for assistive technologies, such as text-to-speech readers, which are not part of the computer operating system or software environment. However, assistive technologies work best with software designed with accessibility in mind. A text-to-speech screen reader won’t do a user who is blind much good if the program leads the user to a dialog box trap, from which the only escape is assistance from a sighted user who can locate the correct icon to click.
Accessibility in the Linux environment
As in every other aspect of desktop computing, Microsoft has a huge lead in the accessibility department. Thanks to the efforts of Greg Lowney and other Microsoft employees who have internally championed the accessibility cause, Microsoft has implemented a set of accessibility guidelines for software design that meet all five of the accessibility criteria mentioned above. What’s more, Microsoft’s Windows Logo program requires independent software vendors to meet its basic accessibility criteria. As a result, Microsoft can claim that Windows is the platform of choice for employers who want to do the right thing for their employees—and reduce the risk of lawsuits in the process. As the KMail example makes clear, the current crop of window managers and desktop environments falls far behind Microsoft’s accessibility standards.
But that doesn’t mean that Linux is out of the running in the accessibility sweepstakes. With a bit of consciousness-raising, we can bring GNOME and KDE up to the minimum accessibility standards found in Windows applications—it’s easy. But there’s a deeper point here, and it shows why Linux is in fact a superior computing environment when it comes to accessibility concerns: Microsoft has improved the accessibility of Windows and Windows applications, but by far the best computing environment for people with disabilities combines a fully developed text-only environment with a highly customizable graphical interface. (Hint: Does that remind you of Linux?)
It’s important to remember that the rise of the graphical user interface in general (and Microsoft Windows in particular) was nothing short of a disaster for people with disabilities, who had learned to make full and rewarding use of a slew of MS-DOS-based technologies. Microsoft has turned the situation around to some extent by developing accessibility guidelines for Windows and Windows applications, but the company has done so at the cost of pushing DOS to the wayside. It’s precisely because Linux combines a healthy text-only environment with an equally flourishing (and highly customizable) graphical environment that makes it clearly superior—at least potentially—in the accessibility department.
The Linux environment has another important advantage over commercial operating systems: the prevalence of open source licensing. Currently, the GNOME and KDE projects aren’t doing as good a job as they could be when it comes to meeting basic accessibility guidelines. But there’s nothing to stop a group of volunteers, an organization, or a group of researchers from bringing one or both environments in line with accessibility standards and starting their own release. That’s precisely the philosophy behind ZipSpeak, a Slackware-based distribution that incorporates kernel support for speech synthesis. (To obtain a copy of ZipSpeak, contact the Computer Braille Facility ftp site.
And let’s not forget about cost. As many as 500 million people worldwide have disabilities that are negatively impacted by thoughtless computer design, but many live in impoverished countries where the purchase of commercial software is out of the question. In addition, many people with disabilities in affluent countries are forced to live on sharply restricted incomes because of the difficulties they face obtaining employment. Cost matters. It matters a lot. Here’s where Linux really shines. As you’ll see in the following section, there’s a fast-growing pool of accessible and assistive software for Linux, and nearly all of it is available under the terms of the GNU General Public License, which means that, like Linux, it can be obtained for free.
To grasp the accessibility benefits of Linux’s text-only interface, take a look at Emacspeak, a speech interface that enables visually impaired computer users to work independently and efficiently with the computer. Emacspeak supports the freely downloadable IBM ViaVoice speech synthesis engine and software development kit. Hats off to IBM for making this outstanding software available. Thanks to ViaVoice, Emacspeak users can synthesize speech using an ordinary sound card. Previously, their only option was the DECTalk Express, a hardware-based speech synthesizer that costs a hefty $1,195.
Emacspeak perfectly exemplifies the leveraging that’s possible by making use of Linux’s fully developed text-only environment. As Linux hackers are well aware, Emacs is far more than a text editor; over the years, it has acquired so many accretions that it can function quite nicely as a mail reader, calendar and scheduling program, Internet browser, and much more. Emacspeak gives Emacs the consistent keyboard input design that people with limited vision require, and its consistent, comprehensive implementation of speech synthesis doesn’t leave users in the lurch. With Emacspeak, people with limited or no vision can quickly become successful and competent users of e-mail, the Internet, and text-based documents. Emacs can also function as a text-based interface to the bash shell, which means that users can harness the full power of thousands of console mode programs and utilities.
The virtues of Emacspeak become apparent when the package is compared to the pricey commercial screenreading programs that are designed to help people with limited vision navigate Microsoft Windows. These programs are costly and, what’s more, they’re maddeningly difficult to use. To see why, close your eyes for a moment, and imagine yourself navigating through a Windows dialog box and having the contents of each area read to you out loud. Divorced from its visual context, this information might be just so much gibberish to you. Emacspeak isn’t a screenreading program. In contrast, it’s a comprehensive interface to Emacs for people with limited vision. Emacspeak always provides the context that’s needed to grasp the meaning of the information it’s conveying.
For an interesting Real Audio demonstration of a “live” Emacspeak session, click here.
On the horizon
To reach full maturity as the ideal, low-cost computer platform for people with disabilities, Linux needs high-quality, freely distributable speech recognition and speech synthesis software. Happily, they appear to be on the way, thanks to two ongoing efforts that have already produced impressive results.
Promising to fill the speech synthesis void is Sphinx, a project housed at Carnegie Mellon University’s Department of Computer Science. Sphinx is an experimental speech-recognition system that’s available for any POSIX-compatible system, a category that includes Linux. For more information on Sphinx, visit the Sphinx Group at Carnegie Mellon University.
On the speech synthesis end, Festival enables Linux users to generate speech using ordinary sound cards, which means that it brings to Linux the benefits of IBM’s ViaVoice but without the restrictive licensing. Distributed under an X11-like license, Festival is quite usable right now; to try it out, visit the Center for Speech Technology Research at the University of Edinburgh to get this application.
There’s a project underway to develop a screenreading program for X, one that’s comparable to the screenreaders developed for Microsoft Windows. The software is being developed by the Mercator Project at Georgia Tech’s Graphics, Visualization, and Usability Center. A port to Linux is underway; visit Brian Selldon’s page for more information.
For more information
- BLINUX is a site devoted to improving the usability of Linux for people who are blind. There are three mailing lists (blinux-announce, blinux-develop, and blinux-list).
- Visible Bell mini-HOWTO This mini-HOWTO shows how to implement a visual bell for users with limited hearing.
- X11-Big-Cursor mini-HOWTO This mini-HOWTO explains how to enlarge the X cursor for users with limited vision.
Bryan Pfaffenberger, a UNIX user since 1985, is a University of Virginia professor, an author, and a passionate advocate of Linux and open source software. A Linux Journal columnist, his recent Linux-related books include Linux Clearly Explained (Morgan-Kaufmann) and Mastering Gnome (Sybex; in press). His hobbies include messing around with his home LAN and sailing the southern Chesapeake Bay. He lives in Charlottesville, VA. If you’d like to contact Bryan, send him an e-mail.
The authors and editors have taken care in preparation of the content contained herein but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for any damages. Always have a verified backup before making any changes.