A Rant on the Frustrations of Jaws for Windows

This post is based on a Facebook accessibility rant which has been expanded to include background information and edited for clarity. It is also brought to you by the letter "W," because seriously "WTF!"

After completing my last hobby project a few weeks ago, which was building a network-attached storage (NAS) system based on Ubuntu and OpenZFS, (that I have yet to convince myself to write up for the blog), I was in search for a new project. After discovering The Eudyptula Challenge, I thought it would be the perfect thing to consume my free time and teach myself some potentially useful skills.

Due to the nature of the project, I knew that I would need access to a Linux-based system. Instead of finding a Linux computer, I figured that I would use a virtual machine that I had previously put together for another project. A virtual machine is a computer that is emulated in software, and can be run just like another application such as Microsoft Word or Internet Explorer. I went to the application VMware Workstation that I already had installed on my laptop, fired it up, and launched the virtual machine to bring it up-to-date.

When I tried to interact with the virtual machine, I found that my screen reader, Jaws for Windows, would capture the keystrokes and block them before they reached it. Apparently, since the last time I used VMware Workstation about six months ago, Jaws somehow broke accessibility, and now the application is a PITA to use. Before I continue, I should explain that I know Jaws is the culprit since out of the two applications, Jaws is the only one that has been updated, and it worked last time I used the application. Now my workflow consists of launching VMware Workstation with Jaws running in order to select which virtual machine to boot, and then if I actually want to interact with that virtual machine, I must shut down Jaws. This means if I'm switching between VMware Workstation and any other application, such as a web browser in order to paste commands into a Linux terminal, I constantly have to kill and then relaunch Jaws (each one of these actions taking about eight to ten seconds). When I switch between applications about 4 times a minute, you begin to see how inefficient this really is.

What are my support options? Considering just how expensive Jaws really is, I should be able to let the manufacturer know about the problem and have things fixed, right? Not so fast. First, I don't have a current Software Maintenance Agreement (PDF document) with Freedom Scientific, meaning that I would not get an update that fixed my problem if I reported it to them. More importantly, the last time I reported a bug to them, it went absolutely nowhere via emails and phone calls very very slowly. For years now, I've adopted the attitude that if I found a bug, I should just find a workaround and hope that it magically gets fixed in the next update. However, each update may break compatibility with one of the applications that I use, so I also live in fear of updates, especially when I'm trying to get class project work done during the semester.

Users of Jaws may be familiar with its scripting facilities, and wonder why I don't just use them. Essentially, Jaws allows you to write small programs that enable Jaws to work with most applications, assuming that you have the expertise to write the scripts. While I'm sure that I could learn the scripting language and customize it so that Jaws will essentially play dead when I press a specific keystroke, and spring back to life when I press another, I really don't want to go through the process for a highly domain specific language that will never be useful except for one purpose. Furthermore, since Jaws is a commercial product, I don't think it is unreasonable to expect that updates shouldn't randomly break applications and cause me to spend my time fixing them. If I'm going to have to program my screen reader to do what I want, I may as well go big or go home, which brings me to my answer to this problem.

So, what is my solution? I'm now considering switching my primary screen reader to NonVisual Desktop Access (NVDA), a free and open source screen reader. Most importantly, a couple of years ago, I reported a bug to them on how they were mishandling certain Java Accessibility Bridge updates, and they actually fixed it in the next release. Thanks to their willingness to fix a bug that was properly reported and explained, NVDA is now able to work with GSK, an application that gives blind people access to graphs (node-link diagrams) that I helped design. To my scripting point made in the previous paragraph, NVDA uses Python, a widely used programming language that I am already competent in using from my research-related activities. I can customize how NVDA works with other applications with a very little learning curve, and then can contribute my changes back to the project for others to benefit from as well.

Even though this is a rant because I'm angry, I really do think that there are some fundamental problems with Jaws. Unfortunately, because I have been using Jaws for more than ten years now, changing to another screen reader is a significant undertaking which will force me to unlearn habitual actions that I have burned into my mussel memory . The fact that I am willing to do this only underscores how frustrating Jaws can be, and is one of the reasons why NVDA and other screen readers are starting to gain traction against the once monopolistic behemoth screen reader that Jaws used to be.