Before I dive in, I suggest that you read 6 reasons people with disabilities should use Linux, which provides background for my article.

Gnu/Linux distributions provide great advantages over proprietary alternatives for people with disabilities. In this article, I'll discuss some of the advantages, as well as areas that need improvement. Because I use Fedora, my article is written based on my experience with that Linux distribution.

What's good

Built in accessibility tools

Unlike proprietary alternatives, Fedora (and other Linux distros with the Gnome desktop) includes accessibility tools out of the box, such as:

Screen reader: A text-to-speech system to read what's on the screen

Magnifier: Helps users with visual impairments who need larger text and images

High-contrast mode: Helps users who have trouble seeing text unless contrast is corrected, such as white text on a black background, or vice versa

Mouse keys: Controls the mouse using the number pad

Sticky keys: Helps users who have trouble pressing multiple keys at once, and users who have use of only one hand

Bounce keys: To ignore rapidly pressed keys or if a key is accidentally held down

On screen keyboard: Helps users who cannot type at all, but who can use a mouse

Visual alerts: Replace system sounds with visual cues

For information on changing accessibility settings or toggling the different tools on and off, visit Gnome's help by pressing F1 on Gnome desktops.

Open source licensing

The importance of open source when it comes to accessibility may not seem that big a deal at first, but it is. Depending on the tools you need to use your computer, accessibility tools for other platforms can cost hundreds or thousands of dollars, and that's just for the initial software or hardware. Upgrades generally cost nearly as much. All the accessibility tools included in Linux are open source, meaning their code is readily available if you want to examine or improve it, and cost nothing. Hardware devices, of course, are still going to cost money. Additionally, accessibility software on other platforms generally contain licensing constraints on the user. That is, you are generally only allowed to use the software on a few computers at a time, depending on the license you've purchased.

Linux is different because you can install the operating system, including assistive technology, on as many computers as you want, without any license fees.

Distributions tailored to help people with disabilities

Versions of Linux designed for people with disabilities generally start with speech on by default, and contain selections of applications that are known to be accessible. Examples include:

Vinux, based on Ubuntu

Sonar, based on Arch Linux

Knoppix ADRIANE, based on Debian

They may also have a default theme and background that makes seeing them easier for people who have visual impairments. Knoppix ADRIANE, for example, uses SBL (Screenreader for Blind Linux users). Unlike specialized blind devices, the Linux distributions bring a bunch of unique advantages. They cost nothing, you can install any software you want (provided your distribution has it), and upgrades are free. This beats the alternative of expensive software maintenance agreements and a locked down environment.

Optional GUI

The desktop in Linux is optional; users can choose to run command-line programs instead. This means users can avoid potential graphics card incompatibilities because generally they are supported well enough to use text mode. Text mode also doesn't suffer from as many accessibility bugs that graphical programs often do.

The Linux kernel has a built-in screen reader, called Speakup, which, along with a software speech synthesizer like eSpeak or a hardware synthesizer like DoubleTalk, will read the screen to you. This might be an ideal option for extremely low-powered computers, where the desktop does not run well, or for those who don't need or want a desktop environment. Speakup also supports braille displays if you have the brltty package installed.

There are distros specifically designed to be accessible in text mode, as well as distributions that become accessible with an option at boot time, such as TalkingArch. Debian is accessible in text mode if you press s after you start booting the distribution (but before it boots).

Speakup is not included in Fedora's Linux kernel. I'm not completely sure why, but I think it's largely because the Speakup code has never moved out of the staging (i.e., unstable) area of the kernel tree, and Fedora doesn't include staging code. I don't understand why Speakup is considered unstable still, because it's not.

Choice of desktop environments

Linux also gives you a choice of desktops to use, but not all desktops are equally accessible, which I'll explain more later. Major Linux distributions are either accessible in their default .iso, such as Fedora and Ubuntu, or they include a version with an accessible desktop. Accessible desktops include Gnome, Mate, and Unity.

Independent installation and maintenance

Independent installation and maintenance is a huge advantage Linux has over alternatives. Because many Linux distributions come with accessibility tools built in, you are able to independently install, upgrade, and maintain your system, without having to rely on a sighted person. (Linux still has situations in which you might need sighted assistance, such as when entering the system firmware before booting, but I plan to improve this if I can.) This was not available on any other platform when I switched to Linux, but I understand that Windows now has an .iso you can use to install it; however, that .iso only runs on a limited set of hardware. Mac OSX has a screen reader built in (and possibly other accessibility tools), but that operating system and hardware is not an option for me because it is closed source and prohibitively expensive.

Linux accessibility could be much better

When it comes to accessibility, Linux is not without issues. Some problems are software related, such as bugs, but most are not. Here are a few Linux accessibility weak spots, and my suggestions for how to make Linux better:

Small accessibility community

The community of people with disabilities who are using Linux is much smaller other open source communities, which leads to a number of issues, such as slow-paced bug fixes. I'm not certain how many Linux users are blind, but relatively few of us take the time to give back to the community. We don't file bugs or write patches, so accessibility bugs can sometimes take a while to get fixed. But they do get fixed. One solution is to get more blind people using Linux. A bigger community, with more people filing bugs, could lead to a more accessible Linux. In my experience, the Fedora community really cares about accessibility, so when they know about a bug, they work to fix it quickly.

Small developer community

The number of developers who specifically work on accessibility tools is quite small. For example, there is only one Orca developer, two AT-SPI developers, and a single GTK developer. I don't know how many developers on other platforms are assigned specifically to accessibilit,y but I would guess the number is much higher. One obvious solution is to get more developers interested in—and hacking on—accessibility. This will give the already great accessibility experience in Linux a big boost.

Lack of highly specialized applications

Linux can sometimes be lacking in highly specialized applications, such as applications to handle the DAISY (digital accessible information system) book formats that are common in the blind community. There are a few applications to handle this format, but most have been abandoned or don't support the newer DAISY 3 format used by Bookshare. (DAISY books can be opened up in Firefox, and there is a software package called Emacspeak that can read them, so we're not completely without options.)

Linux also has a noticeable lack of audio games, as well as self-voicing applications. The solution to this might take some effort because these applications need to be developed and made available to blind users. As a sponsored project, Fedora could be in the best position to do this, but community developers would need to pitch in.

No support from blind government agencies and organizations

This isn't so much an issue as it is an annoyance. As far as I know, blind government agencies responsible for purchasing adaptive equipment for blind and disabled people have little (if any) interest in supporting Linux and open source projects. I have yet to find a good reason for this. On the plus side, if you are a blind Linux user and you run into an issue, there are several ways to get help; you don't need to call up your blind agency and start complaining over the phone. I'm not sure what a solution is here. This seems more like a PR or political problem rather than an issue of Linux lacking in any one area. If you are an open source enthusiast, and you depend on any type of assistive technology and you use Linux, I urge you to try to spread the word to blind users and blind agencies that there are other options out there.

General ignorance of accessibility among sighted developers

Developers who do not depend on assistive technologies tend to forget—or don't know—that a disabled person might want to use their applicaiton, read their web page, and so on. Obviously there are categories where accessibility would be difficult or simply impossible—sighted games and possibly video editors spring to mind—but the rest should be accessible to any disabled person, whether that means adding special support for screen readers to be able to access your application and its controls, or designing it to scale well so that people with magnifiers can use it without having to blow up their computer screens too much. The problem is not necessarily that developers do not care. Rather, it's is that accessibility is highly specialized and requires someone with knowledge in the area, regardless of platform.

Other issues could be the lack of built-in accessibility tests in user interface designing applications and too little documentation explaining how accessibility works. There are accessibility tests in Qt (and as a result, almost all apps written in either Qt 4 or 5 work across platforms with little trouble), but I'm not sure about other toolkits. There also is a tool in Linux called accerciser, which you can run while your application is running to test the accessibility of your app, but unless you have some knowledge of how accessibility works, the output won't make much sense.

The Gnome project has good developer documentation on accessibility, so if you're a developer and you just need an idea of how it works, check it out. From there you have links to all the geeky details.

Gnome is more accessible than other Linux desktops

The Gnome foundation employs developers who improve accessibility for that project, but other desktops are often less accessible, and in some cases aren't accessible at all. Communication and collaboration between desktop developers would help ensure that regardless of which desktop you use, you get a great accessibility experience. (If you are a developer of a desktop environment, please consider accessibility for the disabled when you're developing it. The small amount of extra effort can help you get more users.)

Smaller choice of text to speech voices

Linux does not have enough high-quality (i.e., natural) text-to-speech voices for screen readers. The main ones that are in use today include eSpeak and IBM ViaVoice. There are others, but Linux doesn't have as many options in this area as other platforms do. Once again, the smaller developer community is an issue. Once blind organizations and agencies get involved in Linux, hopefully this will improve rapidly.

Final thoughts

Despite all the issues I've outlined above, I am convinced that Linux is an obvious solution for the needs of the disabled. Accessibility has come a long way, and there is always room for improvement, but the cost savings of Linux, coupled with its open source model, make it ideal for anyone, and especially those of us who are unlucky enough to have a disability. I'm on a mission to help improve Linux accessibility and to get the word out about this marvelous, accessible operating system. I do this by filing bugs, idling in chat channels to help others when I can, and trying to get other developers and users interested in Linux.

If you are a disabled new Linux user, congratulations on either making the switch or adding Linux to your tool set. Many of accessibility shortcomings in Linux can be solved by growing its communities of users and developers. Linux's ability to work out of the box on most hardware, as well as being portable between hardware, makes it a good choice for anyone with multiple computers or devices. Linux communities are full of people who are enthusiastic about their software and distribution choices, and about helping others along the way. They may not always know about accessibility, but my experience is that they take accessibility seriously once they are aware of its importance. You can't ask for much more than that. If you are a new Linux user, or are thinking about making the switch but need help, there are many resources available, including:

Orca list: A mailing list of Orca users where bugs are discussed, features added, and so on.

Gnome accessibility mailing list: This is a mailing list for general accessibility of the Gnome desktop.

There are also general open source accessibility mailing lists, as well as more distro-specific accessibility mailing lists. Searching online should help you find them. Also, distribution-specific IRC channels often include people who are willing and eager to help. If your target is specifically about accessibility, you might be better off emailing one of the lists above, or signing up to your distro's mailing list and posting there.

If you're a Fedora user, I'm always around on the users channel (#fedora on irc.freenode.net), and I'll be glad to help. You can also email me questions. If you have additions on accessibility tools and resources to add to this article, please let me know in the comments.

Improving Linux accessibility requires collaboration among users and developers, and needs people with disabilities to stand up for their rights to have an accessible experience with no extra cost, and to be able to examine, modify, and change the software they use. Thank you for reading.