I recently read an interesting blog post by Chris Hofstader, which is in part inspired by Mike Calvo's recent article The Coming Crisis. He argued that open-source access technology is starting to gain traction and that open-source AT might be a viable solution to our industry's current problems. In response, I believe it's extremely unlikely that an open-source or non-profit project would match the usefulness and usability of commercial AT. In this post, I will try to explain why.
Let's consider this statement from Chris's post:
"It would also be useful if Microsoft made Narrator open source, slapped on GPL and let the bazillion Windows hackers around the world take a crack at it. There are a ton of blind programmers who program for Windows who would enjoy the opportunity to hack away at a stable, albeit feature poor, screen reader."
(end of quote)
Does this strike anyone else as naive? Sure, there are a bazillion Windows programmers around the world, but how many of them would have any interest whatsoever in Narrator? Moreover, who would coordinate all of those contributions to produce something that's useful to non-geeks? NVDA seems to fit the description of "stable, yet feature poor"; it's not as feature poor as Narrator, but it's still feature poor in comparison to its commercial counterparts. So if a ton of blind programmers would enjoy hacking away at such a screen reader, then why doesn't NVDA even have all of the features of System Access 1.0?
Before I attempt to answer that question, let me defend the assertion I just made, that NVDA doesn't have all of the features that System Access had at version 1.0. My intent is not to belittle the efforts of Michael Curran and the other NVDA developers. In fact, Serotek has contributed code to the NVDA project in the past. However, I believe that the open-source development model is not well-suited for developing a screen reader. I make the comparison between NVDA and System Access 1.0 for two reasons. First, as sole developer of System Access thus far, I know its history very well. Second, even we at Serotek considered System Access 1.0 feature poor; though we marketed its strengths aggressively, we knew the product needed more work in certain areas. Yet System Access 1.0 had a few important features that NVDA does not. It seems, then, that this is the best possible comparison I can make between an open-source AT project and a commercial one. So let's zoom in to a level of detail that has been missing from this discussion thus far, to compare NVDA and System Access 1.0 on a few points.
First, System Access 1.0 had an off-screen model (OSM). To be sure, the OSM was in its infancy at version 1.0; it needed much work for version 2.0. Still, the OSM was very useful in some situations. It enabled access to some menus which don't expose item names through MSAA, such as those in RealPlayer. It was able to detect highlighted text, such as in custom list views. It made owner-drawn status bars, such as the one in Skype, accessible. It helped us provide access to the spell checker in Word 2002. In short, an off-screen model is a very important feature that's missing in all of the current free screen readers for Windows. System Access 1.0 had one because we knew it was a must-have, and we realized that even a primitive OSM was appreciably better than no OSM.
Second, System Access 1.0 provided automatic access to the Microsoft Word spell checker. I remember well the time that I spent making System Access work well with the spell checker in different versions of Word; the aforementioned Word 2002 was especially problematic. We knew that the spell checker is one of the most important features of Word and that any serious screen reader alternative for Windows needs to support Word well. In contrast, NVDA doesn't seem to support the spell checker at all. If you press F7 in a document with a misspelled word, you will eventually hear the content of the "not in dictionary" edit box, after NVDA reads the rest of the dialog with a level of verbosity comparable to Narrator. However, as far as I know, NVDA cannot spell the misspelled word. This feature isn't nearly as difficult as the OSM, so why hasn't one of the blind programmers hacking away at NVDA attacked this feature yet?
Third, System Access 1.0 generally presented information in a more intuitive, efficient way than NVDA does. I realize that this is the most subjective of the three features I've mentioned, but I also believe it's more important than the other two. As I mentioned before, NVDA's verbosity is comparable to Narrator's. The result of such verbosity is that users must either listen through a lot of extraneous speech to hear what they want, or master the keyboard commands that are needed to obtain the desired information. Thus, System Access has always aimed to present relevant information automatically while not being too verbose. This is a delicate balancing act, but it's necessary for a product that aims to be useful to a large number of people.
So why doesn't NVDA have these important features of System Access 1.0, which was developed in about three months and released in January 2005? Jamie Zawinski, one of the original programmers at Netscape, gives us a few clues in his rant "Resignation and Postmortem." Among his list of common excuses for why the Mozilla project didn't even release a beta in its first year is this one:
"People only really contribute when they get something out of it. When someone is first beginning to contribute, they especially need to see some kind of payback, some kind of positive reinforcement, right away."
(end of quote)
Unfortunately, many of the features that are most needed in a screen reader, especially a Windows screen reader, are not the kind that can be casually hacked together with an immediate payback to the contributor. Consider the off-screen model. It took me at least a week of full-time work to develop even the primitive OSM that shipped in System Access 1.0. Thus, after a large number of easily implemented features are done, it becomes much harder for casual contributors to help the project, and the features that remain undone are the hard but important ones.
Elsewhere in his rant, Zawinski said:
"There exist counterexamples to this, but in general, great things are accomplished by small groups of people who are driven, who have unity of purpose. The more people involved, the slower and stupider their union is."
(end of quote)
Oddly, he wasn't talking about the Mozilla project here; he was talking about Netscape the company. Still, though he may not have realized it, I believe the same principle applies to open-source projects. What we need is not a large number of volunteers hacking away at an open-source screen reader; we need a small team of dedicated, motivated programmers. And to be sufficiently dedicated to the project, said programmers probably need to be paid to work on it full-time.
We need to consider, then, who currently funds work on open-source AT, and what effect the source of the funding has on the outcome. The most obvious example is Sun. Based on the rate at which Sun's work on GNOME accessibility has moved forward over the past seven years, it's safe to say that Sun's GNOME accessibility team isn't sufficiently "driven," with "unity of purpose," to use Zawinski's words. Considering that Sun is a large hardware and software company whose core business is not accessibility, it's safe to suppose that their chief motivation for funding work on GNOME accessibility is to be compliant with certain legislation, in order to increase sales to government agencies. Thus, those who make high-level decisions about accessibility probably don't care much about producing something that's actually useful to blind and low-vision people.
Consider the history of screen reader development for the GNOME desktop. As Chris rightly noted, the Gnopernicus screen reader failed quite miserably. Yet as of mid-2003, Sun could claim that GNOME was accessible to blind users, albeit barely so. As far as I know, the situation didn't change substantially until mid-2004, when my good friend Marc Mulcahy, who worked for Sun on GNOME accessibility at the time, took the initiative to start developing Orca on his own. He had to get through much corporate red tape just to get Orca released. I've seen evidence that there's still too much bureaucracy in the Sun GNOME accessibility team; refer to the Orca Documentation Series to see what I mean. Perhaps bureaucracy is just another name for what Zawinski describes as a slow, stupid union of too many people. The history of Gnopernicus and Orca is an example of what happens when AT development is funded by a big corporation that has no incentive to deliver truly useful results. Incidentally, Marc left Sun in late 2004 to start working on what is now the LevelStar Icon PDA.
Chris suggests that development of open-source AT could be coordinated by a foundation or consortium with support from corporations and governments around the world. But would the results be any better than what Sun has produced thus far? Would such an organization attract the right people, that is, great programmers who are driven to produce better AT that really improves people's lives? We must also wonder what kind of leadership such an organization would have. I suspect that especially if many large sponsors are involved, politics would get in the way, resulting in less than optimal leadership, which can be at least as harmful as bad or mediocre programmers.
Another problem with the notion of no-cost AT as the norm is that it would take power away from blind and low-vision people as consumers. In a free market, where companies compete for the consumer's business, the consumer wins. If no-cost AT, open-source or otherwise, were the norm, then most blind and low-vision people would have no say in the development of the available products, because there would be no natural incentive for any particular company or organization to rise to the top. In this light, one might argue that even a temporary monopoly is better. Chris observes that FS and AI Squared have obtained virtual monopoly status in their markets. But they got there by developing great products. And why did they develop great products? To increase their sales during a period when the AT industry was fiercely competitive. Of course, now that they have monopoly status, these companies have apparently stopped innovating. But monopolies won't last; even empires fall. Perhaps the strongest motivation to develop an excellent product is the prospect of a temporary monopoly in an industry fueled by strong competition for the wallets of consumers. If this is so, then no-cost AT as the norm would be bad news indeed for blind and low-vision people, as it would kill the catalyst for innovation: competition for sales.
Yet another problem with the notion of no-cost AT backed by a non-profit organization or government agency is that it perpetuates a sense of entitlement among blind and low-vision people. No, it's not our fault that we're blind or low-vision. But it's not society's fault either. We shouldn't depend on governments, philanthropists, or anyone else to solve our problems. They don't have our best interests at heart, anyway; only we do. Remember that by and large, politicians and philanthropists care most about what's in it for them, be it publicity, power, or an appeased conscience. There are exceptions, of course, but this is the rule. It stands to reason, then, that politicians and philanthropists wouldn't really care about providing technology that best meets our needs. No, it's up to us to buy and use technology, assistive or otherwise, that improves our lives.
Mind you, I'm by no means an advocate for the status quo. It's widely accepted that because most current AT products are so expensive, they're purchased mostly by government agencies. This, too, deprives blind and low-vision people of the power that normally belongs to consumers, and perpetuates a sense of entitlement, as discussed above. Furthermore, as Mike Calvo points out in The Coming Crisis, the community of blind and low-vision people at large is grossly underserved by current AT. Yes, FS and AI Squared dominate their markets, but these markets certainly don't represent blind and low-vision people at large. It's odd, then, that the most commonly cited reason for the high cost of AT is the small size of the market. If AT is developed for more than just a niche market, maybe competition will be effective again.
The solution is neither high-cost AT that has a virtual monopoly on a small market, nor no-cost AT that isn't widely useful because it lacks the drive of competition for consumers. Rather, the solution is low-cost AT that competes for the business of a large and mostly untapped market. If this happens, then blind and low-vision people all over the world will ultimately win.