Tuesday, May 5, 2015

NVDA: In preparation for a milestone in April 2016: what is happening, what needs to be done, now and for years to come

When it comes to being an apprentice and observing changes in an organization or seeing new trends in technology landscape, I'm often reminded of a quote I read from a book on apprenticeship that goes like this: be sure to learn a lot in your early days. Another quote, one that I heard recently, seems to summarize my experiences with NonVisual Desktop Access and other projects: you cannot call yourself an expert unless you have experience. But having just experience isn't enough: I believe we need visionaries to steer the discussion forward - people like Steve Jobs who had a powerful vision for the computer industry, and now we're reaping what he has sowed so many years ago.
Almost a decade ago, two young men came onto the screen reader stage, announcing an idea that was considered outrageous at that time that wasn't accepted by the mainstream screen reader commentators. Nine years later, these two young men, who I came to appreciate as friends, have done something that commentators in 2006 haven't thought was possible: widespread support for open-source, community-driven projects that have made impact not only in blindness organizations, but also in mainstream society. These men, along with countless blind and sighted men and women around the globe, have set the stage for what it may turn out to be the largest shift in screen reader industry for years to come: community participation, learning from source code and appreciating colaboration between users, developers and supporters.
Despite these advances, there are still parts of this project that may haunt the leaders and contributors later. Increased deployment of NVDA will mean increased outcry on lack of support for some professional applications used in enterprise environments. We have some misconceptions about various parts of NVDA development and translations that needs to be rectified now. Worse, we need a way to allow knowledge to be passed down to the next generation of potential developers so NVDA can truly become a testament of the power of community-driven project for decades to come. And we can start working on them now, as this moment (few months before we say "happy tenth birthday" to NVDA) is an excellent opportunity to engage developers, users and supporters of this influential project to get together to plan ahead for the next ten years and beyond.
In a recent statistics published by Source Forge on NVDA downloads, about 70000 or more blind users have downloaded recent versions of NVDA. When we examine raw download numbers (including multiple downloads from the same IP address), we can clearly see increases in number of downloads, more so for more recent versions of NVDA such as 2015.1. This shows that, although NVDA might be developed by a handful of developers, this project is reaping many benefits and have made impact throughout the world, especially in developing countries.
One of the benefits and side effects of this trend has been a general consensus that NVDA lacks support for more advanced features of some software, or in some cases, does not work well with some professional applications used in enterprise environments. This is a growing concern, as adoption of NVDA means more enterprises will embrace this free screen reader, a viable alternative to commercial screen readers. While screen readers such as JAWS will continue to champion support for vast number of professional applications, NVDA has something that is unmatched in the history of screen readers: open-source, use of a mainstream programming language for scripting and freedom to be tailored for specific needs.
But tailoring NVDA to work with enterprise applications doesn't happen magically. You cannot expect NVDA to read contents of the professional apps the day after you suggest support for it. Even if someone promises to write an add-on for the application in question, it will take at least several hours (up to months, and in some cases, years) to prepare a polished add-on that will indeed let you have access to advanced parts of the program you are using at work. A good example is Skype where it took NV Access several weeks to fix a broken typing indicator announcement in Skype 7.2 and later.
But it isn't a good idea to blame just NV Access for lack of support for professional apps. In my previous article on Windows 10 and screen readers, I emphasized that third-party developers also hold the key to accessibility of their applications, and professional and enterprise apps are no exception to this criteria. At the end of the day, what will make a difference for accessibility of professional applications is willingness from app developers to learn best practices to support current and future screen readers, namely taking advantage of accessibility framework in their apps. And without support for screen readers, even the so-called "native screen reader in Windows 10" will not be able to claim that it supports professional apps, more so if third-party screen readers are involved.
Some of us might be wondering, "how can we make third-party app developers aware of screen readers and accessibility frameworks?" This question ties in with one of my biggest concerns in NVDA development: passing our knowledge to the next generation and rectifying misconceptions about NVDA project, its development and translations. As a contributor to NVDA project, my main concern for a number of months has been, "what will happen when we depart, and who will be willing to step in to fill our shoes?" This naturally raises a follow-up question: how can we pass on our knowledge? There are a number of avenues that have sprung up that may help, including a dedicated mailing list for blind people to learn Python, increased awareness of accessibility standards by sighted developers, and willingness for people to contribute source code patches for NVDA.
However, what concerns me the most is perceived misconceptions about NVDA project and development, especially translations. In the past, the NVDA development community have received requests for translating NVDA into new languages with mixed success. While we do have languages that are actively being developed, most are in a state where the only translations available is the version of NVDA that was first translated into that language (a good example is Amheric, for which NvDA 2012.3 is the first and only full (and the latest) translation of NVDA into that language). Other languages are now considered "not up to date" and are in danger of not receiving latest features translated into that language.
Perhaps this came about due to a possible misconception on doing just enough work for the upcoming version. That is, a translator of NVDA may think, "okay, because I've provided translations for the upcoming NVDA version, I've done my part." Translation of a software package, especially a package that is critical for a population of the world that has experienced information blackout, means you are committing to that project, and it isn't a good idea to see it come to a halt after a single version is released. In other words, a translation that doesn't show continued signs of perspiration will come back to haunt the translator, the language community, NVDA developers, users and third-party supporters in the future, which may tarnish the reputation of NVDA and will hinder efforts to pass on our knowledge to the next generation of users and developers.
Another possible misconception might be a notion that NVDA doesn't have flaws, and that NvDA might be portable across operating systems. Like any man-made structure (including software), NVDA does have flaws, some of which are major such as the issue on lack of support for advanced features of programs. Someone can argue, "if we have talented programmers, we can add support for such and such features easily". I, as someone who have watched assistive technologies such as screen readers and notetakers and who has actual experience in software and the engineering field that powers it, am confident that this isn't true in all cases, including screen reader development. This is more so when you are tasked with writing support for advanced features of an app that is critical to successful employment of someone halfway across the globe.
In regards to portability to different operating systems, this can be compared to demolishing and rebuilding a mansion from ground up. Anyone with experiences with two or more different operating systems such as Windows and Linux can confidently tell you that different operating systems work differently. Not only user interfaces are different (although they have blurred somewhat), their internals, design and goals are different. This is more so when a program uses API's from one operating system a lot (NVDA, like any screen reader, is a case of an app that makes heavy use of API's provided by the host operating system). Because of this, do not expect NVDA to cooperate well with Wine, nor think NvDA will become a fully functional screen reader under React OS or replace Orca on Linux. Misconceptions like these, especially something major like the ones described above, may become land mines in the end.
In conclusion, consider the words of Thomas Edison: success requires 99 percent perspiration, 1 percent inspiration. Considering that we're about to prepare to celebrate a major milestone of NvDA next April, let us not forget how much sweat developers poured out to make NvDA to what it is today. Let misconceptions, lack of support for professional apps and no avenues to pass on our know-how to next generation not become hinderences to the ultimate vision of NonVisual Desktop Access: a critical tool for information access for blind people around the world. Let us also start thinking about the long term goals for this project so it can be prepared to open new roads for people with disabilities for decades to come. Long live NVDA!