NVDA 0.6p2 released!
NVDA 0.6p2 has just been released. The release is almost two weeks later than the original estimate proposed at the recent hack fest, as we decided to implement some additional noteworthy features, user interface changes, bug fixes and documentation updates.
Please note that this is a preview release, meaning that there are still some major issues to be fixed before the final 0.6 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:
NVDA Featured in Yahoo UI Blog Post About Tab View Accessibility
NVDA features prominently in this post (and accompanying video) on the Yahoo UI blog: Enhancing TabView Accessibility with WAI-ARIA Roles and States
This highlights one of the great benefits and potential uses of NVDA. The fact that NVDA is free and open source software allows developers to test the accessibility of their web sites and/or applications with a fully functional screen reader without having to purchase an expensive product they would not otherwise use.
Aside from the great plug for NVDA (thanks!), this is an excellent, well documented use of WAI-ARIA to improve web accessibility.
NVDA Hack Fest June 2008
Last week, Mick and I met in person in Melbourne, Australia for the second NVDA hack fest. It was a rather intense, brain-melting five days. Despite the name "hack fest", we actually didn't do a great deal of serious coding/hacking. Much of the time was spent in gruelling discussion and debate. We did some long overdue planning of NVDA milestones. In particular, we decided to make another preview release, 0.6p2, to be released by 25 July. We also covered difficult topics such as support for tables, better implementation of formatting support, flexible mapping of widgets to NVDAObjects, centralisation of key bindings for NVDAObjects and virtual buffers, language detection and automatic voice change, live regions, and hierarchical documents (e.g. Lotus Symphony and OpenOffice). See NVDAHackFestJun2008 for full details of the topics and outcomes.
Now Using 7-Zip Self-extracting Archives
We are now using 7-Zip self-extracting archives instead of zip archives; i.e. for portable NVDA snapshots and the NVDA Miscellaneous Dependencies package. 7-Zip archives provide better compression than zip archives and thus facilitate smaller file sizes. Also, self-extracting archives are more convenient for some users. If you want to perform operations other than extracting the entire archive, you can open these archives using 7-Zip.
New NVDA Miscellaneous Dependencies Package (version 2008-06-26-01)
A new version of the NVDA Miscellaneous Dependencies package has been released. This version rearranges some files, which was necessary to fix #122.
This will be included in NVDA snapshots from r2161.
Users running from source must update to this new version if running r2160 or later.
New NVDA Miscellaneous Dependencies Package (version 2008-06-20-01)
A new version of the NVDA Miscellaneous Dependencies package has been released. This includes a new version of the virtual buffer library containing changes necessary for the implementation of the new quick navigation keys outlined in ticket #102. It also introduces a change to allow quick navigation and links list to detect some elements which were previously skipped.
This will be included in NVDA snapshots from r2149.
Users running from source must update to this new version if running r2149 or later.
New NVDA Miscellaneous Dependencies Package (version 2008-06-17-01)
A new version of the NVDA Miscellaneous Dependencies package has been released. This includes a new version of the virtual buffer library. It also includes mfc71.dll, which is required to compile NVDA into an executable and is missing on many systems.
Noteworthy changes in the new version of the virtual buffer library include:
- Don't render unlabelled, non-interactive (i.e. not linked or clickable) graphics. This removes a lot of unnecessary clutter from many pages.
- Fix a bug where text would eventually mysteriously disappear for virtual buffers for dynamic sites such as GMail and PennyTel?.
- Eliminate extraneous whitespace in several circumstances.
- Treat sections, separators, tables, iframes and unknown objects as block elements. This means that these elements will never be rendered on the same line as another element.
- Ignore unlabelled graphics inside links if the graphic is not the link's only content and is not clickable.
- Filter the URL for links with no content in the same way that URLs for graphic links are filtered. Implements #104.
- Improvements to the method used to avoid rendering invisible elements.
- Other minor optimisations and fixes.
This will be included in NVDA snapshots from r2138.
New NVDA Web Site Launched
I am happy to announce that we have just launched the new NVDA web site on which we have been working for the past couple of weeks. This new site is based entirely on Trac and integrates all of our web services, including general information pages, downloads, wiki, issue tracker and blog. This allows for seemless referencing and interaction between services, greater community collaboration and ease of maintenance, among other benefits.
Note that www.nvda-project.org is the preferred address for this new site. trac.nvda-project.org redirects to this address.
Feedback is very much welcome.
New NVDA Miscellaneous Dependencies Package (version 2008-05-29-01)
A new version of the NVDA Miscellaneous Dependencies package has been released. This includes a new version of the virtual buffer library.
Highlights include:
- Fix some potential lag in NVDA on very dynamic sites such as MSDN.
- Fix crashes on certain sites such as http://www.pennytel.com/.
- Fix crashes in documents that only contain an empty node.
- For images which aren't contained within a link, use the URL of the image itself. This means that images which aren't links will now be rendered with some information. Addresses #51.
- Filter the URLs rendered for images to make them more readable. This should make for much nicer reading on pages with unlabelled graphics. Addresses #51.
This will be included in NVDA snapshots from r2079.
For users running from source, please update to at least r2079 before installing this package.
General Progress Update
It has been quite some time since the last general post. A great deal has happened over the past couple of months, including the CSUN conference and preparation therefor, about which I posted separately. I have thus been dreading writing this, as I struggle to remember some of the minor, but nonetheless important, happenings of the last couple of months.
Perhaps the most exciting work on NVDA has been that relating to the new in-process virtual buffers for Mozilla Gecko 1.9, which includes Firefox 3 and Thunderbird 3. Current NVDA users would certainly be aware of this, even if they haven't tried it personally. NVDA 0.6p1, released just before CSUN, was the first release to feature these new buffers. Aside from massive improvements in reliability and accuracy, the new code allows for almost instantaneous rendering of pages in most cases thanks to its in-process workings. The new code also sports a far better design which makes many exciting features possible that were either impossible or extremely difficult to implement in the old code. For example, it took me only about half an hour to plan and implement the links list, a feature coveted by many users and which I use frequently myself. This was a great reinforcement of our design choices. The code in both the virtual buffer library and NVDA itself has continued to improve steadily since CSUN. While still under steady development, the goals in the web access grant from the Mozilla Foundation are almost complete. One major feature which is currently missing is the ability to efficiently navigate and read tables. Also, NVDA currently does not automatically report changes in live regions, although it does dynamically update the buffer. Nevertheless, Mick and I both use NVDA on the web full time and are very satisfied. Mick, who did the majority of the work on this project, has done an absolutely fantastic job.
Aside from assisting Mick with the virtual buffer work, I have worked on a lot of bug fixes, general improvements and code cleanup. One of the largest of the improvements is perhaps the refactoring of the NVDA GUI, which was included in 0.6p1. The NVDA window is now gone and everything is instead accessed from the NVDA system tray menu. A lot of issues with NVDA windows not gaining focus were fixed. In the last few days, I introduced more fixes in this area, including the elimination of the freezing in NVDA dialogs which occurred on some systems, particularly in Windows Vista. These are important changes in terms of user experience. I have also spent some time working on two tools useful in NVDA development. The log viewer simply allows the user to quickly view the NVDA log file right from the NVDA menu, rather than having to find the NVDA log file and open it with a text editor. It can be refreshed with a single key press and refreshes automatically when switching back to the window. In addition, it allows the user to save the current log content. It is thus useful to both users and developers alike. The other tool is the NVDA Python console, which allows developers to interact with the running internals of NVDA using a Python interpreter. Not only is this extremely useful in debugging NVDA, but it can also assist in inspecting the accessibility architecture of other applications.
I have been holding the fort somewhat more than usual in the last month, as Mick became the proud father of a baby girl in April. Congratulations, Mick! This has been a bit of a challenge for me, as I have had to adapt to working with less of his valuable feedback and collaboration. Even so, despite the exhaustion and chaos of early fatherhood, Mick has still managed to make some very significant contributions to NVDA and has been steadily increasing his working hours over the last couple of weeks.
Other than coding, we have done a lot of work in relation to the NVDA project resources and collaboration tools. I have been strongly encouraging users to use Trac to report issues and Mick and I now make extensive use of it ourselves. Thanks to all of the users who have started to use this resource. It is certainly improving the organisation of the project and makes it much easier for developers and other users to keep track of reported issues. Due to our previous hosting provider becoming ever more unreliable, we moved all of our internet services to a new server. I moved all of the important articles from our old wiki, taken down due to increasing spam and lack of maintenance, to the Trac wiki. Some work still needs to be done to the Trac front page to allow these articles to be found and to provide better direction for new users. I made some long needed updates to the NVDA web site. Most recently, we migrated the NVDA Wordpress blog to Trac, which allows for easier posting, maintenance and integration with the rest of Trac.
Outside of NVDA, both Mick and I have spent a great deal of time testing Mozilla Firefox 3. We have filed several significant bug reports relating to accessibility, some of which have resulted in noteable improvements to Mozilla accessibility, sometimes not just for NVDA, but for other assistive technologies as well. We have continued to attend meetings and contribute to the IAccessible2 effort. Due to the increasing number of external issues we are reporting and tracking, we have started the ExternalBugs wiki page to list and provide links to all of these reports.
Although Mick and I talk via phone on a daily basis, we decided in a recent discussion that we will meet in person for another NVDA hack fest some time in June. We have plans for some major improvements to the core of NVDA; specifically, the creation and handling of NVDAObjects. Topics such as proper support for tables and future plans will also be covered. We will probably make another 0.6 preview release some time over the next few months. I will then embark on implementing support for braille in NVDA.
nvaccess.org and nvda-project.org Moved to New Server
As many of you can probably attest, services on nvda-project.org, including the web site and Trac, have been extremely unreliable over the past few months. There has been frequent downtime, sometimes lasting for hours at a time, and even when services were functional, they were often extremely slow. Thus, a few weeks ago, we decided that it was time to move to a new server. Rather than moving to another service hosting package, we opted for our own virtual server. While this increases the technical administration tedium that Mick and I must endure, it also allows for much greater flexibility.
Despite the rather shaky transition, all services for nvaccess.org and nvda-project.org have now been moved to the new server. There certainly does appear to be a definite improvement in speed and reliability and we're hoping it will continue thus.
CSUN 2008
As I begin writing this, I'm sitting on a plane enduring the 13 hour flight back to Sydney from Los Angeles. As many of you know, the week prior to CSUN was insanely busy, as Mick and I hurried to make the 0.6p1 release in time for the conference. (In fact, we ended up deferring the release until soon after we arrived in the U.S.) CSUN was similarly busy, which, alongside far too little sleep, has left us exhausted. Despite a consequent need for some serious R&R, CSUN 2008 was an absolutely fantastic experience, both for NVDA and for Mick and I personally.
We arrived in L.A. late on Monday morning and were settled into our hotel room by around lunch time. No one else we knew was to arrive before Tuesday afternoon, so we spent the first two days working on some final touches for 0.6p1, which was released some time on Tuesday afternoon. (Unfortunately, we also had to endure a dodgy internet connection during this work, which persisted in its dodginess throughout the week. Arrrg!) We also burnt around 30 CDs containing NVDA, Firefox 3beta4 and information about both for distribution to potential new users whom we encountered during the conference.
10 a.m. on Wednesday morning saw us at the IAccessible2 face to face meeting. This ended up exceeding its 1 hour time slot by almost another hour! Discussion was quite broad, covering IAccessible2 itself but also extending beyond into many other topics relating to open accessibility standards. Nevertheless, i think the meeting was very successful. We were told that IAccessible2 support for OpenOffice?.org would hopefully ship in a 3.x release some time within the next year, which is very exciting. There was a great deal of discussion in terms of the future of IAccessible2, especially relating to the establishment of guidelines beyond the specification for application implementations. Currently, there are widely varying ideas on how IAccessible2 should be implemented, with applications such as Lotus Symphony taking a rather flat approach as compared with Mozilla Gecko's extremely hierarchical approach. Mick and I believe that there need to be guidelines for the ways in which IAccessible2 should be implemented in various applications to prevent this getting out of hand. This idea was met with overall approval and a great deal of discussion ensued as to how this might be achieved. Other issues included problems with the use of IAccessible2 for portable applications and assistive technologies, feedback regarding Accessibility Probe, problems with the dependence of IAccessible 2 on MSAA and potential minor changes to the specification. Aside from the useful outcomes, it was great for me to meet the team behind this excellent accessibility API face to face.
On Wednesday evening, we had a dinner meeting with the NVDA Japanese localisation team. Our meeting spanned several hours, although it was interrupted several times by the need to adjourn to different locations. We discussed the status of the NVDA Japanese localisation and a demonstration was given with a commercial Japanese speech engine. We then covered a couple of localisation problems. The first concerned certain Japanese punctuation marks which aren't handled by the synthesiser used. While we handle expansion of English punctuation marks, there is no provision for doing this for other language specific symbols. Second, we discussed Windows input method editors (IME), which are necessary for entry of characters in pictographic languages such as Japanese. NVDA currently has no support for this. We would certainly like NVDA to support this, so Mick and I asked many general questions about how this works. We then spoke about the possibility of open source Japanese speech synthesisers. Mick and I suggested that efforts be made to improve the current eSpeak Japanese language so that an additional synthesiser would not be needed for Japanese NVDA users. Finally, the team explained the current state of screen readers in Japan. There are no good free alternatives and Japanese commercial screen readers are quite expensive, which is why they believe NVDA is important for Japan. It was a very pleasant meeting and it was great to receive some face to face feedback from a localisation team.
Thursday was the first day on which the exhibit hall was open. We spent much of our time for the remainder of the conference assisting at the Mozilla booth in the exhibit hall, preaching the goodness of Firefox 3 accessibility and, where appropriate, NVDA. We had very few opportunities to actually demonstrate NVDA. On the other hand, we spoke to many people from widely varying groups and levels of experience and gave away most of our CDs. It was humbling and gratifying to have quite a number of people, both users and otherwise, visit just to tell us that they appreciate the work we're doing. A highlight for us was a visit from a group of vision impaired primary school students accompanied by a teacher. She did not know about NVDA and was very pleased when we told her of the project. She told us that it would be great for some of her students whose families probably could not afford to purchase any of the commercial screen readers and took several of our CDS for her students, even coming back to take more for others. This is a fantastic validation of the mission of NV Access and NVDA: to lower the barrier to accessible computing. Furthermore, young students like these are not biased by prior use of another product, so in some ways, they are perhaps most likely to make the most of NVDA.
In terms of Mozilla, many people, existing users and otherwise, were impressed by the new accessibility features in Firefox 3. Being primarily concerned with accessibility for screen reader users, I must confess to having paid little attention to accessibility features for other users. There was a great deal of interest in the new full page zoom feature for low vision users. As well, the rich accessibility API support offered by Firefox 3 has potential benefits for users of voice dictation software. Again, many people visited just to say that they appreciated the work of Mozilla. There was also a great deal of interest in the merchandise up for grabs, which included an abundance of stickers, badges, temporary tattoos and brochures. Almost all of this had been taken by the end of the conference.
Thursday night was spent at a dinner with all of the people assisting at the Mozilla booth. (Well, actually, we first had to endure a rather frustrating, crazy cab ride, but I digress.) Most were either fellow grantees or people otherwise involved with Mozilla who were volunteering. Frank Hecker, the CEO of the Mozilla Foundation, was also present. It was great to spend an evening with such a fantastic, sincere group of people.
On Friday afternoon, we attended the IAccessible2 development panel, a session open to the public in which "Lead software applications and assistive technology developers [got] together to share their experiences in supporting IAccessible2". Present were representatives from IBM, Dolphin, GW Micro, Sun Microsystems, Freedom Scientific, Ai Squared, Adobe Systems and NV Access, with Mick speaking for NV Access. Each spoke a little about their current implementation of or plans to implement IAccessible2 support, some also speaking of their involvement in its design. Mick spoke of the IAccessible2 support in NVDA and why we believe it to be important for accessibility. He mentioned the current shortcomings in NVDA's support, including the lack of support for tables (which, by the way, is something we want to rectify very soon). Most of the assistive technology developers have also implemented at least partial support for IAccessible2, although some currently use it only for certain applications. We learnt that Adobe are starting to implement support, which is great news for us. In the discussion of problems and future plans, Mick raised the issue of the current inability to run IAccessible2 applications and assistive technologies portably due to the need to register a proxy library. A potential solution was proposed, which we have since investigated and found to be quite promising.
As is often the case at such conferences, even socialising after hours provided a fantastic opportunity for networking. One such occasion was a discussion with some of the core development team for Orca, the open source screen reader for the Gnome GUI under Linux and Solaris. One outcome of this discussion was that both teams agreed to try to collaborate wherever possible. We have always been open to such collaboration, but this was a great opportunity to become properly acquainted. On another occasion, we were introduced to the person at Microsoft responsible for accessibility of Internet Explorer 8.
One of the few conference sessions we attended was on Saturday afternoon. This was entitled "Low-Cost and Free Screen Access Solutions Versus Full-Feature Software" and was presented by the National Federation of the Blind. We had no idea whether NVDA would be covered or how it would fare if it was. Initially, we felt that perhaps the description of the free and low-cost solutions as not being "full-featured software" was a bit unfair, but I guess it is true that we still have a lot of work to do to match some of the more expensive products. Conversely, we were pleasantly surprised by the fair demonstration of NVDA. We waited with bated breath to find out which version of NVDA would be demonstrated and were relieved to discover that 0.6p1, the release we had prepared only days earlier, was featured. (NVDA has certainly come a long way since 0.5.) The other featured screen readers were Thunder and Serotek System Access. Overall, it was a worthwhile presentation and I hope it inspired some people to at least give solutions such as NVDA a try.
Over the duration of the conference, we met and conversed with several key accessibility people from large organisations such as IBM, Sun, Adobe and Microsoft. In addition, we spoke to several people who were interested in collaborating with us in some way or potentially distributing NVDA with their products. It was gratifying once again to realise the respect we have attained in the field of accessibility. We were astounded to learn of the amount of interest NVDA has attracted. Mick and I also took the opportunity on occasion to investigate some of the other exhibits.
Overall, CSUN 2008 was a very enjoyable, benefitial and worthwhile experience, both for NVDA and for us personally. I very much hope that both Mick and I are able to attend the conference again next year.
NVDA 0.6p1 Released!
We have just released NVDA 0.6p1. This is a preview release, meaning that there are still major issues to be fixed before the final 0.6 release. However, this provides a preview of some of the new functionality that can be expected in 0.6. This release will be featured at CSUN 2008. For more information about the current status of releases, see this article.
Download links:
NV Access at CSUN 2008
Mick and I will be attending the Technology & Persons with Disabilities Conference (better known as CSUN) commencing in approximately two weeks. Once again, this is thanks to the generosity of the Mozilla Foundation. This should be an exciting event for NVDA, as NVDA has progressed a great deal since last year's conference.
Perhaps the most exciting recent development is the new in-process virtual buffer back-end for Mozilla Gecko 1.9, which is used by Firefox 3 and Thunderbird 3. In practical terms, this means that rendering pages into a virtual buffer in these programs is now practically instantaneous and is far more accurate than the previous code. Although it is not quite yet as stable as we would like, it is almost ready for public testing. We're very keen to show this off at the conference! :) We are also working to address several other items in NVDA prior to CSUN.
Please see CSUN 2008 Plans for more information, including our "to do" list and a rough schedule. If any of you are interested in joining or collaborating with the NVDA project in some way and want to meet at CSUN, please drop Mick and I an email.
My full time work on NVDA commences…
I began working full time for NV Access on NVDA three weeks ago (on Monday, 4 February, to be precise). This was interrupted last week, as I had to work for another week with my previous employer, so I've now been working full time on NVDA for two weeks.
It has certainly been a busy but interesting two weeks. I am obviously quite familiar with the project, given that I have been a core developer almost since the beginning. However, working on a project full time is unsurprisingly somewhat different to casual contribution in one's spare time. Nevertheless, I am very much enjoying the work and am looking forward to realising exciting potential for NVDA as the year progresses.
Mick and I are currently focusing on preparing both ourselves and NVDA for the upcoming Technology & Persons with Disabilities Conference, better known as CSUN. I will post more on this later. I have spent most of my time so far discussing all things NVDA with Mick, fixing small (but nevertheless annoying and problematic) bugs, and helping Mick to test the new virtual buffer code.
I would like to once again extend my personal thanks to the Mozilla Foundation for making this possible. I am extremely grateful for and excited about the opportunity to devote all of my working hours to further develop NVDA.
NVDA at BCA Technology Expo and NVDA Summit
Last weekend, I flew to Melbourne, Australia (I live in Brisbane) for two exciting events related to NVDA.
On Friday, Mick, Amy, Matt and I attended the Blind Citizens Australia Technology Expo held prior to the BCA national convention, where we staffed a booth for NV Access. Mick and I were providing one on one demonstrations of NVDA under both Windows XP and Vista. We were a bit concerned about the lack of interest for the first hour and a half or so, but after that, things started to heat up. People from widely varying backgrounds and degrees of computing experience visited the booth. We made between six and eight demonstrations (I can't remember the exact number), some of which were quite detailed. Between 15 and 20 people provided us with contact details, requesting further information. We also spoke to several people who were interested in passing the word about NVDA to larger numbers of people through various channels. Everyone was quite impressed by the project and most were somewhat astonished by its $0 price tag. :) Overall, it was a valuable, worthwhile experience. The interest we attracted was somewhat heartening. I think Mick and I learnt a lot about presenting the project to prospective users and other interested parties. We had also underestimated the potential for networking with people who can help further spread the word.
All of Saturday and Sunday morning was devoted to what we are calling an "NVDA Summit" or hack fest. Mick and I sat in his lounge room discussing, coding, living and breathing NVDA... as well as eating Amy's yummy, home-made cookies, among other delicious morsels. (Thanks Amy!) We covered quite a lot of ground, answering all but one of the items on our agenda. The agenda and outcomes are outlined here. Aside from this agenda and discussion of the direction of NVDA in general, the time allowed us to revitalise our working relationship and zeal for the project. It also enabled me to familiarise myself with complex parts of the code which I haven't had a chance to examine in detail due to being somewhat busy with other things of late.
The benefits of this "summit" are already being realised. This week, we have made major leaps forward with regard to the way we read dialogs. Rather than reading the entire dialog or only the dialog title and the current control, we attempt to read the descriptive text or query and then the focused control. This makes for a much nicer user experience when using most dialogs. Also, we have found and squashed a major memory leak which has been plaguing us for a while now. We have improved the speed and accuracy of cursor keys and backspace and delete, although backspace and delete still need some work.
These two events were made possible by many generous donations to NV Access. Many thanks to everyone who has donated.
NVDA Blog
Welcome to the NVDA blog! This blog is for news and interesting articles about NVDA (NonVisual Desktop Access), a free, open-source screen reader for Microsoft Windows.

rss
NVDA is supported by