Recent posts (max 20) - Browse or Archive for more

Yahoo! Supports the NVDA Project

We're pleased to announce a formal partnership with  Yahoo! to support the NVDA project. Their first funding contribution will enable us to implement enhanced table navigation and reporting in virtual buffers, ARIA land marks, ARIA drag and drop and other ARIA improvements in NVDA over the next couple of months. This will greatly improve the experience on the web for NVDA users for both web pages and advanced web applications. We'd like to thank Yahoo! for their support and hope to continue this partnership into the future.

ALVA BC640/680 Braille Display Driver now in NVDA

I'm pleased to announce that  Optelec contributed a driver for their  ALVA BC640/680 braille displays, which is now included in NVDA. Like NVDA itself, these displays do not require any drivers or software to be installed on the computer (and therefore don't require administrator privileges), which makes for a fantastic combination when used with a portable copy of NVDA. The displays can optionally contain a built-in flash drive, so you don't even need to carry around a separate USB flash drive for NVDA. As well as contributing the driver, Optelec also provided us with a BC640 so that we can continue to maintain the driver. It is fantastic to have such great support from braille display manufacturers, first  Handy Tech, who participated in the initial design and prototyping of NVDA's braille support and provided a driver for their displays, and now Optelec. We'd like to sincerely thank Optelec for contributing both the initial BC640/680 driver and the BC640 itself.

Future Goals Document Posted

I have posted a document outlining future goals for NVDA which are all candidates for funding sources. This document is intended to evolve as relevant information changes. If you or your organisation are interested in funding any of these goals or know of a potential source of funding,  NV Access would love to hear from you.

A Vision Australia Making a Difference Award goes to NV Access

 NV Access is pleased to have received a 2009 Making a Difference award presented by  Vision Australia for its work on NVDA. You can read more about this on  NV Access's blog post.

NVDA on Windows Logon, UAC and Other Secure Screens

Several months ago, we started work to allow NVDA to read secure Windows screens such as the Windows logon screen, User Account Control (UAC) screens, the Windows lock screen and the control+alt+delete screen. This work stalled for several months, but due to increasing requests from users (as well as our own frustration), I finally revitalised the effort a couple of weeks ago. I am happy to announce that this work has now been merged into the main NVDA development branch, which means that it is now available for testing by users in daily snapshots. There are doubtless some issues still to be fixed, but this should now be quite useable. This code also added an option to the General Settings dialog which allows you to configure the system to automatically start NVDA after logging on to Windows. In addition, there is an option to configure whether NVDA will be used on the Windows logon screen. Disabling this will still allow other Windows secure screens to be read while NVDA is running.

Some additional info for those that care: The standard way to configure assistive technology products to access secure Windows screens on Windows Vista and later is to use the Ease of Access framework. However, using a service (which is the approach used for Windows XP) appears to work quite well on Windows Vista and later as well. Therefore, rather than implementing support for Ease of Access in NVDA, we just use the service for all supported versions of Windows for now. (The documentation for Ease of Access is also incorrect in some areas, which stops us from implementing useable support right now.) We may consider implementing support for Ease of Access later if we discover a significant reason to do this.

UI Automation support and Windows 7 improvements in NVDA snapshots

Thanks to a  grant from Microsoft to NV Access, I have been able to implement support in NVDA for Microsoft's unmanaged UI Automation client API found in the up and coming Windows 7 Operating System. I have been working on this support since the start of this year and just a few days ago we decided that it was complete enough to be included in our main development branch for NVDA, which means that this support is now available to the public via the daily NVDA snapshots. We ask that any NVDA users that have access to the Windows 7 Release Candidate please try out an NVDA snapshot on Windows 7, and provide feedback, so that we can continue to improve and tidy up support for Windows 7, before both the next version of NVDA, and the Windows 7 Operating System, are released officially.

From a user point of view, there are a few specific situations where having UI Automation support in NVDA improves usability in Windows 7. They are:

  • The search field in Windows Explorer and the Start Menu. As this search control is no longer a standard Edit field like in previous Windows Operating Systems, it is necessary for NVDA to make use of the UI Automation text pattern in order to track the caret and access the text content.
  • Announcement of row and column info in the new Windows Explorer Items View. Unlike previous Windows Operating Systems, Windows 7's Windows Explorer uses a new Items View control to present the files and folders (replaces the older ListView? control). Although this control can be accessed pretty well just using MSAA, using UI Automation has the advantage of providing row and column information for any given item. This is not only useful when navigating multiple columns of files, but this is also useful if you choose to view your files in Details View, and you use the left and right arrow keys to navigate the fields of the item (date modified, size, type etc). This field navigation is a new feature that the Items View provides.
  • Reading basic XPS documents in XPS Viewer. XPS Viewer is an application that is included in Windows 7 which allows you to view XPS documents. XPS documents are yet another file format which tries to maintain actual presentation across systems and devices. To allow screen readers and other assistive technologies access to the document content, XPS viewer implements some support for UI Automation. NVDA of course makes use of this where it can, thus allowing users to navigate documents, using the NVDA review cursor. For now a more regular arrows-based mode of navigation in XPS Viewer is not possible as XPS Viewer does not allow you to move its caret (editing cursor), and we have not yet considered implementing any kind of fake cursering such as a cursor manager or virtual buffer. Note also that due to a bug in XPS Viewer, navigating by word or line navigates by paragraph. As this is definitly not suitable, we have made sure Microsoft is aware of this problem.

Like support in NVDA for other APIs such as IAccessible2, our support for UI Automation is not locked down to any specific control or application. This means that if any application in Windows 7, or even a third party application correctly implements UI Automation natively, NVDA will make use of it. When using NVDA with Windows 7, it is most likely that you will come in to contact with UI Automation in many more situations than the ones listed above. However, as UI Automation is rather new in the Windows Operating System, it is likely that most support you will get will closely mirror what you would get with pure MSAA (I.E. using an older non-UIAutomation version of NVDA will probably provide the same access). When running in Windows 7, NVDA still must in many situations make use of either MSAA, or other native win32 APIs in order to provide suitable access to the Operating System. We definitly do look forward to future Windows releases where UI Automation may be implemented more fully through out the Operating System more widely, providing one simple way of gaining access to all controls, including standard Edit and RichEdit? fields.

Apart from direct support for UI Automation, I have also fixed up a few other bugs present with older versions of NVDA in Windows 7.

  • Stopping error sounds when moving around Windows Explorer and the Windows Shell (actually a bug in the Python Comtypes package we use).
  • Improve reporting of the alt+tab task list while the Windows Desktop Window Manager is enabled (NVDA now reports the same way it reports the older classic alt+tab task list).
  • Stop repeating the name of a control panel item twice. This is actually a reported Windows 7 bug where the name is duplicated in the description, and Microsoft is looking in to this.
  • Stop announcing typed characters twice in dos consoles. Also includes no longer announcing typed characters when they do not appear in the console (e.g. password entry).

While working on this grant, we have reported many bugs we found in the Windows 7 public beta, up to the current Windows 7 RC. We are happy to say that Microsoft has taken all of these bugs on board, and most have been addressed. And the ones that have not be fixed, at least are being researched a bit more. Getting these bugs fixed not only helps NVDA, but we hope also any other assistive technologies that make use of the same features in Windows 7.

Before reporting any bugs in NVDA to us to do with Windows 7, it may be useful to know about the following bugs either in NVDA or Windows 7, which you may run in to.

  • When using the mouse quite heavily, NVDA may loose its mouse hook, and therefore NVDA will no longer be able to track the mouse. Restarting NVDA will fix the problem temporarily. We need to investigate what is different about the Windows 7 hooking functionality to solve this.
  • When the system is quite busy and you try to use the keyboard, its possible that NVDA may loose its keyboard hook, and therefore you will no longer be able to control NVDA via the keyboard (includes NVDA commands, and shutting up speech etc). Killing NVDA from task manager and restarting it will fix the problem temporarily. We need to investigate what is different about the Windows 7 hooking functionality to solve this.
  • The new Windows 7 Calculator is not accessible with NVDA. We must together with Microsoft investigate this one further.

The Microsoft grant not only covered UI Automation, but also Internet Explorer. We have slowly started improving our support for Internet Explorer, as we have been finnishing things up on the UI Automation support. I will not go in to much detail about Internet Explorer in this post, but I will say that so far we have managed to reimplement support in NVDA for basic static documents in Internet Explorer, so that load times have been improved by over 20 times, and the commands and feel now mirror NVDA's support for Mozilla Firefox. Support for dynamic content still has a long way to go, but we are making progress.

Technical Design Overview Posted

I've just posted an article which attempts to provide an overview of NVDA's technical design and architecture. It is quite lengthy, as it is probably impossible to explain this briefly. It is also necessarily somewhat technical in nature. If you're an interested or potential developer, please give it a read. Feedback is very much welcome.

NVDA in New Zealand Public Libraries

NVDA is now available on public access computers in public libraries right across New Zealand!

Last year, after discovering that NVDA was being blocked from running from a USB drive on public access computers at his local library in Stratford, Gene Gibson contacted  The Aotearoa People's Network, who provide and manage public internet access for public libraries across the country, to request that NVDA be allowed to run. They happily obliged, first for the Stratford district library and later for all libraries served by the APN. In addition, the APN are currently rolling out a software upgrade to all of their computers which includes the latest version of NVDA. Gene has also been instrumental in getting free magnification software installed on APN computers. This is fantastic news for blind and vision impaired New Zealanders! See our Recognition page for press articles and other links.

We'd like to extend our thanks to Gene for his great advocacy and support of the NVDA project.

CSUN 2009 NVDA Presentation Slides now Available

I'm still working on my CSUN 2009 report as I find the time. It's coming. Really. :) In the meantime, I've posted the slides for our NVDA presentation. We used  S5 for these slides. If you want to see all of the slides in a handout format, press the letter t. (NVDA users will need to pass this key through to the browser by first pressing NVDA+f2.)

New Virtual Buffers now in Main Code Base!

Last September, Mick started completely refactoring our virtual buffer library, a task which ended up becoming almost a complete redesign. This new library is called nvVBufLib. Over the last few months, he has been working on porting the Mozilla Gecko back-end to the new library. We encountered a few major hiccups along the way, which have now thankfully been solved.

Meanwhile, a few weeks ago, I decided to try my hand at implementing a new Adobe Acrobat/Reader back-end for this new library. In addition, Mick recently started implementing a back-end for Microsoft Internet Explorer. This means that support for Adobe Reader and Internet Explorer is now unified with the same core code used for Mozilla Gecko, which means that features such as fast page rendering, extensive quick navigation, links list, text selection, auto focus mode and braille support are now available with these documents.

I'm happy to announce that I've just merged all of this code into the main code base, which means it will also be available in binary snapshots. This is obviously very exciting! However, while the new code appears to be relatively stable, there may still be serious bugs which need to be resolved. Also note that the Internet Explorer support is still not yet complete; form fields may not appear, some controls may not be rendered, there may be problems with frames and the buffer is not updated dynamically, just to list a few of the big issues. Having said this, if you're willing to live on the bleeding edge, please do test and shoot us your feedback! Those of you who aren't willing to deal with problems should probably avoid snapshots for a while until things settle down.

Enjoy!

NVDA 0.6p3.2 Released

This release includes an updated Polish translation which was meant to be included in 0.6p3 but missed out by a few days. It also includes a fix for an issue where some documents would not load at all in Adobe Reader. However, note that support for Adobe Reader in this release is still very rudimentary at best.

Download links and change log:

NV Access at CSUN 2009

As noted previously, we will be attending  CSUN 2009, which is now less than two weeks away. We are presenting on NVDA and will also feature in two other presentations. We've posted our plans for the conference, including details of these presentations and our schedule. IF you're interested in meeting, drop us an email.

NVDA 0.6p3 with Mozilla Products

NVDA 0.6p3.1 Released

This release provides a quick fix for those who could not start NVDA after installing NVDA 0.6p3 with the installer. In these rare cases, the NVDA start sound would be played, but NVDA would immediately exit with a critical error. If you did not experience this problem, you probably don't need to update. There is also another minor fix for those running NVDA using an 8.3 file path, which will again not affect most users.

Download links and change log:

NVDA 0.6p3 Released!

NVDA 0.6p3 has just been released. Unfortunately, it is almost two months later than the original release estimate, as we encountered some major problems which we felt needed to be fixed before the release. We also took the opportunity to update the user guide and provide several minor fixes.

Highlights of this release include:

  • Support for braille displays! NVDA can now display both contracted and uncontracted braille on supported braille displays, and includes support for displaying the cursor and cursor routing.
  • Many users found the term "virtual buffer pass through" confusing. Therefore, instead of virtual buffer pass through on and off, NVDA now reports focus mode (pass through on) and browse mode (pass through off).
  • In virtual buffers, when the focus changes or the caret is moved, NVDA can automatically switch to focus mode or browse mode as appropriate for the control under the caret. For example, if a page automatically moves to an interactive control or a user tabs to or clicks an interactive control with the mouse, focus mode can automatically be enabled. This is configured from the Virtual Buffers dialog.
  • Rewritten SAPI4 synthesizer driver which replaces the sapi4serotek and sapi4activeVoice drivers and should fix the problems encountered with these drivers.
  • The configuration file and speech dictionaries are now saved in the user's application data directory if NVDA was installed using the installer. This is necessary for Windows Vista and also allows multiple users to have individual NVDA configurations.
  • NVDA can now read text past 65535 characters in standard edit controls (e.g. a large file in Notepad).
  • NVDA no longer sometimes freezes completely when editing text in OpenOffice.

Please read What's New in NVDA 0.6p3 for a more detailed list of changes.

Please note that this is a preview release, meaning that there are still some issues to be fixed before the next stable release. For more information about the current status of releases, see this article. Nevertheless, this release is recommended for most users. The old stable release, 0.5, is no longer recommended.

Download links and change log:

Web Site Problems Now (Hopefully) Resolved

Some of you might have noticed that recently, the NVDA and NV Access web sites have been hideously slow and unreliable at certain peak times. Pages often took a very long time to load, and sometimes even failed to load at all, simply throwing up a nasty error. Our server was struggling (and failing) to cope with the traffic it was receiving. While this is exciting in one sense (we're obviously getting quite a lot of hits!), it was obviously a rather large problem. Therefore, I've spent quite a few hours optimising it and made some rather substantial changes to its configuration. It took me quite a few tries to get everything working correctly, so the site has been in various states of functionality over the last day or so. Everything should be working now and the server does seem to be running much better than it was before. Please let me know if there are any further problems. Our apologies for the downtime.

Mozilla Grant Progress Report

It is drawing towards the end of the year for which the  Mozilla Foundation provided a grant to NV Access to employ me to work full time on NVDA. This post examines the grant goals and summarises our progress for each goal. It is important to note that the original grant goals were written for a three year period, whereas this grant was for one year.

1. NVDA Core Development

* General core improvements: This includes speed improvements, memory usage optimisation, fixing memory leaks and improvements to user experience.

We have made many considerable improvements to the performance, stability, accuracy and reliability of NVDA throughout the year. We constantly strive to ensure that the NVDA code is efficient, optimal and reliable. The user interface has also evolved to better serve its users.

* Debugging and testing: Improvements to the debugging facilities in NVDA will assist in finding and fixing problems. In addition, an automated testing system needs to be developed to allow for faster discovery of problems and to prevent unnoticed regressions in functionality.

NVDA's logging code was refactored to be more flexible and simpler for developers to use. The log viewer was introduced to facilitate quick viewing of the log file for the running copy of NVDA. The Python console, which provides an interactive Python interpreter inside NVDA, has vastly simplified and expanded the possibilities of debugging, research and testing. Unfortunately, an automated testing system has not yet been developed.

* IAccessible 2 support: IAccessible 2 is an emerging accessibility API that has the potential to vastly improve the accessibility of many applications and is thus very important for NVDA's success. It is already used by a growing amount of important applications, including such applications as Mozilla Firefox, Mozilla Thunderbird and Chatzilla which use Mozilla Gecko / XUL.

Since early 2007, NVDA has had comprehensive support for IAccessible2 and uses it wherever it has been implemented in applications. Particularly worthy of note is NVDA's use of IAccessible2 in Mozilla applications, where the rich accessibility provided by IAccessible2 is especially benefitial. In 2008, as well as general enhancements to this support, we implemented support for text attributes, which enables NVDA to read formatting information, spelling errors, etc.

2. Braille Output Support

NVDA should support dynamic output of both contracted and uncontracted braille on various popular refreshable braille displays.

Braille display support has now been implemented, including support for cursor routing. Users have been extremely impressed by the speed and responsiveness of this implementation. Some noteable features are still missing and some polish is required, but this initial implementation is very useable already. NVDA attracted the attention of the braille display manufacturer  Handy Tech, who participated in the initial design and prototyping of NVDA's braille support and provided a driver for their displays.

3. NVDA Customisation for Applications and Web Pages

There was little significant change to NVDA's support for application specific scripting. The code documentation and design were improved slightly. However, there has been no request or need for enhancements or changes to this functionality, although there is definitely room for improvement concerning documentation for new developers. NVDA has no functionality to facilitate customisation for specific web sites. Again, there has been no request or need for this in NVDA from our users so far. The  WebVisum Firefox extension has facilitated some page customisation. WebVisum is independent of the screen reader used and its page modifications are automatically shared by its user community. Due to its popularity with NVDA users, we made some changes to NVDA to better support WebVisum.

4. Static Web Support

I will address only Mozilla Gecko 1.9 (used in Firefox/Thunderbird 3.x) here, as this is what concerns Mozilla. It is worth noting that NVDA's early support of Gecko 1.9 meant that it was able to work with Firefox 3.0 out of the box as soon as it was released.

* Fast, efficient access to basic html content in a flat representation

NVDA renders most pages presented with Mozilla Gecko such that no additional delay is perceived by the user. Some highly complex pages involving many nodes may incur a noticeable delay, but these tend to be the exception rather than the rule. Pages are rendered into a flat representation which can be read and navigated like a normal text document. Once rendered, navigating the page is instantaneous. The first official release to include this functionality was 0.6p1 in March 2008.

* Support for dynamic updates to a page resultant to JavaScript events

Dynamic updates are automatically reflected in the flat representation of the page (the virtual buffer).

* Synchronicity between the flat representation and the actual controls to provide access to forms, and to facilitate navigation of a page using a hierarchical structure

This synchronisation has now been achieved. Users can choose to interact with a control from within the flat representation, and the cursor position within the flat representation will be updated appropriately when a control receives focus. In addition, object navigation can be used to hierarchically navigate a page, with the review cursor moving to the appropriate position in the flat representation.

5. Research and Development of New Accessibility Concepts

These concepts included:

  • Accessible drag and drop
  • Custom accessible widgets
  • Mathematics accessibility
  • Diagram accessibility

Accessible drag and drop is already possible through the use of ARIA drag and drop. This has not yet been implemented in NVDA. (See below for more details.) There is not yet a complete specification or application implementation for the remaining three items. We have been participants in working groups concerning the development of these specifications and plan to participate to a larger extent in future work.

6. Web Application Support

* ARIA widgets

NVDA now has very useable support for ARIA widgets, although some polish is required in certain areas. In strong commendation of this support, NVDA has featured in several presentations by Yahoo developers about ARIA widgets; see this blog post for one example.

* Rich text editing in rich internet applications

NVDA does have some support for this. However, it is buggy and incomplete. Improving this to a satisfactory level will be quite a large, difficult undertaking.

* Live regions

NVDA has very limited, unsatisfactory support for live regions at present. Implementing better support is quite difficult under Windows. (Technically, this is due to the need to go in-process for efficient handling of events.)

* ARIA drag and drop

This is not currently supported, although we have investigated this and have some idea of how it will be implemented.

* HTML 5

This requires more work in web browsers before it can be considered in NVDA.

7. XUL Application Support

As already mentioned, NVDA has comprehensive support for IAccessible2 and the Gecko 1.9 rendering engine, which means that accessible widgets in recent XUL applications should be accessible.

* Thunderbird

NVDA has excellent support for Mozilla Thunderbird 3. Many users, including us, use Thunderbird as our email client of choice.

* Komodo

This is untested.

* Songbird

This is untested. We have reason to believe that more work may be required in Songbird to make it accessible.

* Miro

This is untested.

* Popular Mozilla extensions; e.g. Adblock Plus

Popular Mozilla extensions are far too numerous to test and report upon here. Noteably, NVDA works very well with  Adblock Plus and  WebVisum.

8. Mozilla Accessibility Community Interaction

* Filing bugs for Mozilla issues

At the time of this writing, we have filed  32 bugs related to Mozilla accessibility. Additionally, many more have been communicated to the Mozilla accessibility team (primarily Aaron Leventhal and Marco Zehe) for filing by them.

* General interaction with the Mozilla accessibility community

We regularly participate in discussions with both users and developers in the Mozilla accessibility community via its mailing list and IRC channel.

* Involvement in and Contribution to the development of accessibility frameworks and standards

We have participated in and contributed to the development of the IAccessible2 accessibility API. We have also provided feedback on ARIA issues such as landmarks.

9. NVDA Community Development

The development of the resources described below has encouraged a strong, diverse community of both users and contributors supporting the NVDA project, which continues to grow steadily. The NVDA web site received a major overhaul in mid 2008. All of our web services were integrated into one site based on  Trac, which allows for seemless referencing and interaction between services, greater community collaboration and ease of maintenance, among other benefits.

* Development documentation

Some development articles are provided on the NVDA wiki. Much of NVDA's code includes documentation and comments, although there is still quite a bit of undocumented code. Further development articles are probably required to assist new developers who wish to contribute to NVDA.

* Issue database

An issue database was established in 2007. People can report and view issues in this database. Although the system was always used to some degree, we began to use it to a much greater extent in 2008 and strongly encouraged both users and other developers to use it as well. This has been quite successful and has greatly improved the management of the project, as well as increasing community contribution.

* Community resources; e.g. mailing lists, wiki, blog, etc.

  • The Community page provides information about mailing lists and the NVDA IRC channel, as well as links to other sites related to NVDA that have been created by the community.
  • The NVDA web site is largely based around a wiki. The Documentation page provides links to categories of wiki articles relevant to users and developers.
  • The NVDA blog is regularly updated with news and progress updates.

10. Assisting Application Developers to Implement Accessibility

* Promoting application accessibility

We constantly strive to promote application accessibility through our strong participation and presence in various accessibility communities, as well as our work with application developers such as Mozilla. We seek to improve accessibility in general by assisting in the development of new accessibility technologies such as IAccessible2. We encourage interest and open participation by regularly keeping the community up to date through our blog. We have filed or contributed to accessibility bug reports and enhancement requests for several products, and have made similar requests for other products via other means. Through the recent grant from Microsoft, we will provide a public case study of the emerging UI Automation API from the perspective of a screen reader and will implement support for UI Automation in NVDA, as well as testing and providing feedback on accessibility in Windows 7.

* Documenting strategies, techniques and examples for implementing optimal accessibility

Although we have certainly participated in discussion about such documentation, we have not written any ourselves at this time.

* Providing tools and consultation to assist application developers in implementing accessibility

NVDA itself serves as an invaluable tool which assists application developers in implementing accessibility. The blog post about Yahoo developers using NVDA cited above is just one example. Integrated tools such as the Python console and the display synthesiser (which displays text that would normally be sent to a synthesiser in a window on the screen) have been very useful to application developers. We have provided advice to developers of software such as  foobar2000 seeking to improve accessibility.

Conclusion

With regard to success criteria, the grant proposal stated:

The success of this grant will be determined by the progress of NVDA in general, with particular emphasis on the goals described above, especially those related to Mozilla software. As noted above, due to the new territory being explored, some of these goals may change. However, these goals should be mostly completed, allowing for deviations as appropriate.

Most of the important goals were achieved with great success. Two noteable exceptions are satisfactory support for live regions and rich text editing, both extremely complex undertakings. Some goals were unachievable due to the lack of complete specification or application implementation. In addition, it must again be emphasised that the original grant goals were written for a three year period, rather than the one year covered by this grant. The benefits that NVDA has had for the community are evident in the rapid growth in NVDA's popularity. NVDA 0.6p2 has been downloaded over 18000 times since its release in August 2008. NVDA has also received considerable Recognition, including an article in the press, reviews, testimonials and an award. Given all of these factors, we believe that this grant has been very successful.

NVDA Presentation at CSUN 2009

The  Annual International Technology and Persons with Disabilities Conference, hosted by California State University, Northridge (and thus usually known simply as the CSUN conference), is perhaps the world's largest conference on assistive technology. Thanks to the generocity and support of the  Mozilla Foundation, Mick attended CSUN 2007 and both Mick and I attended CSUN 2008. We gained a great deal from these conferences, as they enabled us to meet and share information and ideas with prominent figures in the industry, as well as giving us a fantastic opportunity to spread the word about NVDA. For CSUN 2009, given the positive response from users and the industry as a whole, we decided to take a step forward and run our own presentation about NVDA. We are pleased to announce that our submission was accepted. We are very much looking forward to the conference and are keen to once again spread the word about open accessibility technology from the Mozilla booth. CSUN 2009 will be held from 16-21 March at the Los Angeles Airport Marriott & Renaissance Montura Hotels.

Following is the abstract for our presentation.


NVDA: A FREE, OPEN SOURCE SCREEN READER FOR MICROSOFT WINDOWS

Michael Curran
President/Software Developer
NV Access Inc.
Email:  mick@nvaccess.org

James Teh
Vice President/Software Developer
NV Access Inc.
Email:  jamie@nvaccess.org

NonVisual Desktop Access (NVDA) is a free, open source screen reader for Microsoft Windows. Providing feedback via synthetic speech and braille, it enables blind and vision impaired users to access a computer running Microsoft Windows for no more cost than a sighted person. In the short time since its inception in mid 2006, NVDA has already developed into a viable alternative to commercial screen readers, outperforming them in some areas. It has rapidly gained popularity and is used by many blind and vision impaired people across the globe. As at November 2008, the current version had been downloaded over 10000 times since its release less than three months prior. In this session, the primary developers of NVDA will provide an introduction to NVDA, including a discussion of its history, features, philosophy, community drive, design and plans for the future. Demonstrations will be provided where appropriate. NVDA began its life in mid 2006 when Michael Curran, unhappy with the excessive cost of existing screen readers, endeavoured to write his own screen reader in the Python programming language. In the first part of this session, the history of the NVDA project will be outlined, right from its humble beginnings to the considerable success it enjoys today. This will include the introduction of the other primary developer, James Teh, to the project, the creation of NV Access as a non-profit supporting organisation for the NVDA project, and Michael's journey to CSUN 2007. Subsequently, the increasing support of the Mozilla Foundation will be covered, including the grants they provided to enhance support for Mozilla Firefox and to employ James full time. CSUN 2008's impact on the project will then be discussed, followed by the developments in the rest of the year. Perhaps the greatest appeal of NVDA is its zero cost, but this is certainly not a reflection of its quality or functionality. The session will focus on the many features of NVDA and the benefits they offer to its users. This includes its vast support for over twenty languages (all of which are included in the main distribution) and bundling with the free, open-source, multilingual speech synthesiser eSpeak. NVDA'S ability to run entirely from portable media such as USB flash drives will be covered, as well as the optional capability for installation with a talking installer. There will be a focus on NVDA's excellent support for Mozilla Firefox 3, including quick navigation keys, links list, support for the Accessible Rich Internet Application (ARIA) standard and basic support for live regions, as well as support for Mozilla Thunderbird 3, accessible Java applications and Windows Command Prompt and console applications. Innovative features such as audible progress bar beeps and audible indication of the mouse position will be outlined. As well as describing these features, the session will detail how they have been applied by users in their daily lives and why a user might choose NVDA over its commercial equivalents. The guiding principle of both NV Access and the NVDA project is that accessibility should not be an extra cost for the user. The session will explain how NV Access fulfills this goal and the philosophy of NV Access and NVDA, including their commitment to openness and community. First, the benefits of open source software will be discussed, such as the ability to draw on a diverse, global pool of development expertise and the benefits of openly sharing knowledge for accessibility as a whole. These benefits are very much evident in the multitude of contributions already made to NVDA by the global community. Peter Vágner, the internationalisation coordinator for NVDA, will talk about his role in managing the translation and internationalisation effort, which has assisted in making NVDA's excellent multilingual capabilities a reality. There will also be discussion surrounding the NVDA developers' active participation in and support of the development of other open source software as well as open accessibility standards and technologies. Marco Zehe from the Mozilla Corporation will discuss the relationship between Mozilla and the NVDA project, which has had substantial benefits for both parties. Also, importantly, the growth of NVDA's own community will be discussed, including the development of community resources such as the NVDA web site, email lists, blog entries, an internet relay chat channel and an issue tracking system for users to report and discuss bugs and feature requests. Finally, NVDA's potential for innovation and experimentation will be covered.

NVDA's success as a product is in no small way due to the care with which it has been designed and implemented. The developers will briefly describe the principles underlying NVDA's design and implementation. This includes the use of the Python programming language to enable simple, rapid development, the extensible, modular, abstract design, and the focus on accuracy and efficiency.

The final part of this session will outline possible plans for the future for both NV Access and the NVDA project. Topics discussed will include the enhancement of support for Internet Explorer, support for UI Automation, the ability to read display information and improved support for office suites.

Microsoft provides grant to improve NVDA

Microsoft has recently decided to support  NV Access and the NVDA screen reader project by providing funding and support that will allow NV Access to improve NVDA in two key areas:

  • Allowing NVDA to support Microsoft's UI Automation API in Windows 7 (the next Microsoft Windows Operating System); and
  • Improving NVDA's support for Microsoft Internet Explorer and other related applications.

Please visit the NV Access site for a  more detailed blog post.

NVDA Weekly Update (December 18 2008)

This past week we have been busy preparing for the up and coming NVDA 0.6 p3 release, which we hope will be out in the next week or so. Work has been mainly fixing bugs that we and users have been noticing as we check that all is working as it should for the release.

I have fixed a bug introduced some time after 0.6p2 where NVDA would not detect that a new page had been loaded in Internet Explorer. This code broke when we moved to a new version of the Python COM Types library, which seems to have changed the way it handles COM events.

Users of Windows Mail or Outlook Express who read their emails in plane text will be happy as now when a message is opened, NVDA makes sure that the user is actually placed on the message text so that they can read it with the arrows. This is actually a bug in the Email software, but NVDA has a pretty simple peace of code to make this a little nicer for the user.

Jamie has been fixing some bugs in NVDA's Audiologic synth driver. As we do not have access to all synthesizers and braille displays we support, it is rather hard to make sure that these drivers will always work. Though we do rely on users to let us know if something does break, and to provide suitable information so that we can try and fix the problem.

I have spent a bit of time fixing some issues with text selection in NVDA. In some situations in Windows, when the user moves away from a text control that has selected text, the selection is unselected at the same time the focus moves. NVDA now should hopefully not inappropriately announce this selection change as the focus moves, as it is some what unuseful to the user. Users may notice this fix especially on the Internet Explorer address bar, and in Thunderbird 3 when moving from an email address field after an address auto-completes.

I have also possibly fixed a small bug in NVDA's support for Outlook Express where it would play its error sound when the user is sending an email.

Jamie has fixed a bug where NVDA would freeze, or read too much, or play its error sound, when bringing up the Bookmarks dialog in Mozilla Firefox. The issue was that NVDA was going in to an endless loop when collecting the text to speak in the dialog. Technically this is a bug with Firefox, but he was able to change the code for other advantages, which also indirectly fixed this problem. He has also improved the rule for when NVDA should respond to alert events and speak them. NVDA will no longer speak an alert event if the focus is already inside it as NVDA therefore must have already spoken the alert.

Finally, Peter has continued to be an extremely important asset to the NVDA project, updating NVDA's language and documentation translations on behalf of our translators, providing support to current and perspective translators, and of course also fixing bugs and adding new features through out NVDA's core and application-specific code. I personally would like to extend my thanks for his time and effort.