Posts by author jteh

NVDA 2014.3 Released

NV Access would like to announce the release of NVDA 2014.3. To find out more or to download a copy, please see the official NV Access announcement.

Thanks to everyone who helped to make this release possible.

NVDA 2014.2 Released

NV Access would like to announce the release of NVDA 2014.2. To find out more or to download a copy, please see the official NV Access announcement.

Thanks to everyone who helped to make this release possible.

NVDA 2014.1 Released

NV Access would like to announce the release of NVDA 2014.1. To find out more or to download a copy, please see the official NV Access announcement.

There was one change after rc4:

  • When NVDA is configured to use French, the Input Gestures dialog now works correctly.

Thanks to everyone who helped to make this release possible.

NVDA 2014.1rc4 Released

NVDA 2014.1rc4 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be identical to the final 2014.1 release.

Changes from rc3 to rc4:

  • Updated eSpeak to version 1.48.04 which fixes an important pronunciation issue for Dutch.

NVDA 2014.1rc2 Released

NVDA 2014.1rc2 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be identical to the final 2014.1 release.

Changes from rc1 to rc2:

  • Fixed tracking of the caret for some editable text fields that rely on text written to the screen such as the main text area in Balabolka. (#3901)

NVDA 2013.3rc4 Released

NVDA 2013.3rc4 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be identical to the final 2013.3 release.

Changes from rc3 to rc4:

  • Fixed the problem where a triggered empty configuration profile was not deactivated when appropriate. (#3667)
  • Fixed an issue which caused the Freedom Scientific braille display driver to fail when the port was set to USB in some circumstances. (#3509, #3662)
  • Fixed an issue where keys on Freedom Scientific braille displays weren't detected in some circumstances. (#3401, #3662)

NVDA 2013.3rc3 Released

NVDA 2013.3rc3 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be identical to the final 2013.3 release.

Changes from rc2 to rc3:

  • Added What's New information for Portuguese.
  • Fixed problems (some rather severe) when a trigger refers to a configuration profile which does not exist. This shouldn't happen under normal conditions, but it might occur due to disk corruption, user error, etc.

NVDA 2013.3rc2 Released

NVDA 2013.3rc2 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be identical to the final 2013.3 release.

Changes from rc1 to rc2:

  • When configured to use the Tamil language, gestures are now shown correctly in the Input Gestures dialog. (#3587)
  • Fixed a formatting error in the What's New document.
  • Updated contributors list.

NVDA 2013.3rc1 Released

NVDA 2013.3rc1 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be identical to the final 2013.3 release.

NVDA2013.2Released

NV Access would like to announce the release of NVDA 2013.2. To find out more or to download a copy, please see the official NV Access announcement.

As always, we would like to thank all contributors for making this release possible.

NVDA 2013.2rc1 Released

NVDA 2013.2rc1 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be identical to the final 2013.2 release.

New Release Process

There have been some changes in the way we will be making development and beta code available to the wider community for testing. This is mostly to ensure that new features get the widest amount of testing possible, while at the same time ensuring that we have a codebase of NVDA which is at or near release quality at all times. This will facilitate a faster, smoother release process.

Following is a quick summary of what you should know if you wish to test development or beta code. Please see the Release Process article for full details.

  • Those who have previously tested NVDA betas should now instead consider running master snapshots. Master snapshots will now strive to be of beta quality at all times. They contain code which has been tested for a few weeks and considered to be of acceptable quality. There will no longer be specific beta versions.
  • Those who previously ran master snapshots should now switch to running "next" snapshots. These snapshots will be bleeding edge like the old master snapshots. They contain code which the developer feels is complete, may have been tested by a few users and is therefore ready for wider testing.
  • For those who ran RC versions, there will still be at least one RC version before a release, so please continue testing these.

From now on, translators should only translate the master branch and no other branch. We will ensure that there is at least 2 weeks between a feature branch graduating to master and the availability of an rc.

We thank everyone for helping us to ensure that NVDA is always of the highest quality it can be.

  • Posted: 2013-06-27 14:57
  • Author: jteh
  • Categories: (none)
  • Comments (0)

Explanation of Recent Mailing List Issues

Update: We've since discovered that mail from our server was being blocked by our hosting provider, not external mail providers.

A few weeks ago, we moved all of our services, including our mailing lists, to a new server. While the transition went smoothly for all other services, we have encountered a great deal of trouble with our mailing lists, as some of you have personally experienced.

Our new server was severely rate limited and then blocked completely. For several days, we believed we had been blacklisted by email providers (despite the fact that we weren't listed in any public blacklist), but subsequently discovered that mail was actually being blocked by WowRack, the company which hosts our server. They provided no notification or warning of this and the error message reported contained no identification or other useful information. When asked, they claimed that they do not permit mass mail to be sent from their servers, even though their usage policy includes no clear statement about this. Due to the size of our lists and number of subscribers, our server must send sometimes over 10000 legitimate emails a day.

To resolve this and to avoid similar issues in future, we made the decision to transfer our mailing lists away from our own server to other services.

NV Access doesn't have the resources to provide free technical support. To mitigate this, the nvda-support list was set up a few years ago as a list specifically for free community support. The intent was to provide a list with less traffic than the existing NVDA discussion list on FreeLists by moderating off-topic posters. Unfortunately, some users were unhappy or even outright offended by this moderation, so we removed it. This meant that nvda-support was essentially the same as the NVDA list on FreeLists. Rather than splitting the community between two unmoderated lists with the same purpose, it made sense to merge nvda-support with the NVDA list on FreeLists.

Unfortunately, due to the blacklisting, we had no way of contacting everyone on nvda-support to announce that it was being discontinued and suggest that they subscribe to the new list if they wish. Instead, we moved all existing subscribers to the FreeLists list. We recognised that for whatever reason, some users would be unhappy with this despite the similarity between the two lists, so we sent an email to the FreeLists list at the time of the transfer suggesting that users unsubscribe if they wish.

To complicate matters, some users have been experiencing problems unsubscribing from this list. We apologise for this. If you wish to unsubscribe and are having problems, please email nvda-moderators@freelists.org and request to be removed.

We are in the process of migrating the nvda-dev and nvda-commits lists to SourceForge, as this allows us to transfer the archives for nvda-dev. We are currently awaiting a SourceForge administrator to complete the transfer, as project maintainers aren't able to do this themselves.

Please be assured that we have done our utmost to restore services and to act in what we believe to be the best interest of the NVDA community. Nevertheless, we sincerely apologise for any inconvenience caused.

  • Posted: 2013-05-30 13:52 (Updated: 2013-05-31 16:45)
  • Author: jteh
  • Categories: (none)
  • Comments (0)

NVDA 2013.1rc2 Released

NVDA 2013.1rc2 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be almost identical to the final 2013.1 release.

Note that some translations may not yet be updated. They will be updated by the time of the final 2013.1 release.

Changes from rc1 to rc2:

  • OpenOffice and LibreOffice Writer no longer crash when entering text. (#3177)
  • Fixed a problem which sometimes occurred when connecting to or pressing keys on Papenmeier BRAILLEX newer models. (#3174)
  • When updating a previous installation, old eSpeak voices are now removed. (#3181)
  • it is now possible to use browse mode for pages in Internet Explorer 10 when in standards mode; e.g. www.gmail.com login page. (#3151)
  • Updated eSpeak speech synthesizer to 1.47.09. (#3141, #3172)
  • Updated translations.
  • Updated documentation.

Download links and change log:

NVDA 2013.1rc1 Released

NVDA 2013.1rc1 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be almost identical to the final 2013.1 release.

Note that some translations may not yet be updated. They will be updated by the time of the final 2013.1 release.

Changes from beta2 to rc1:

  • NVDA no longer freezes when using Asian character input in some .NET applications. (#3005)
  • Updated eSpeak speech synthesizer to 1.47.07. (#3124, #3132, #3141, #3143)
  • Fixed problems when interacting with Microsoft PowerPoint presentations in some cases, particularly in protected view. (#3007)
  • Updated translations.
  • Updated documentation.

Download links and change log:

NVDA 2013.1beta2 Released

NV Access is pleased to announce the release of NVDA 2013.1beta2. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2013.1 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2013.1 release.

Changes from beta1 to beta2:

  • Fixed key map and reconnection problem for Papenmeier BRAILLEX older models. (#3074)
  • Support for automatic language switching when reading documents in Microsoft Word. (#2047)
  • Fixed problems related to whitespace at the end of lines when using a braille display in certain cases. (#2466)
  • If NVDA falls back to no braille due to the configured braille display failing when NVDA starts, the configured display is no longer automatically set to no braille. This means that now, the original display will be tried again next time NVDA starts. (#2264)
  • Updated eSpeak speech synthesizer to 1.47.04. (#2680)
  • In applications using the Java Access Bridge, braille displays are now updated correctly when the caret moves in editable text fields . (#3107)
  • Support the form landmark in browse mode documents that support landmarks. (#2997)
  • The eSpeak synthesizer driver now handles reading by character more appropriately (e.g. announcing a foreign letter's name or value rather than just its sound or generic name). (#3106)
  • Fixed an issue with Chinese input in PowerPoint where finalizing a composition would cause the slide, shape and edit field to be spoken, rather than just the finalized composition like as in all other applications.
  • NVDA no longer fails to copy user settings for use on logon and other secure screens when the user's profile path contains non-ASCII characters. (#3092)
  • Updated translations. (#3067)
  • Updated documentation. (#3065, #3075)

Download links and change log:

NVDA 2012.3.1 Released

NVDA 2012.3.1 has just been released. This release includes updates and fixes to several translations. There are no functional changes.

Download links and change log:

NVDA 2012.2.1 Released

NVDA 2012.2.1 has just been released. This release addresses several potential security issues (by upgrading Python to 2.7.3). Upgrading is recommended.

Download links and change log:

NVDA 2012.2 Released

NV Access is pleased to announce that NVDA 2012.2 has been released. This release has been declared stable, which means it is suitable for production use and is recommended for most users.

Highlights of this release include an in-built installer and portable creation feature, automatic updates, easy management of new NVDA add-ons, announcement of graphics in Microsoft Word, support for Windows 8 Metro style apps, and several important bug fixes.

Note that NVDA is now distributed in one package. Rather than separate portable and installer versions, there is now just one file that, when run, will start a temporary copy of NVDA and will allow you to install or generate a portable distribution.

Changes from 2012.2rc2 to 2012.2:

  • Updated translations.
  • More fixes related to downloading updates when installed on a system running Eset NOD32 HTTP Scanner. (#2352)

Download links and change log:

NVDA 2012.2rc2 Released

NVDA 2012.2rc2 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be almost identical to the final 2012.2 release.

Note that some translations may not yet be updated. They will be updated by the time of the final 2012.2 release.

Changes from rc1 to rc2:

  • Updated translations.
  • Updated documentation.
  • Downloading updates no longer fails when installed on a system running Eset NOD32 HTTP Scanner. (#2352)
  • Creating a portable copy no longer fails in certain circumstances (specifically, when a destination file is in use because it hasn't yet been released by another application).
  • Creating a portable copy in a network location now works correctly.
  • When installing an NVDA update in Windows XP and running as a user without administrator privileges, the update is now installed correctly and system files are no longer inappropriately copied into the program directory. (#2391)

Download links and change log:

NVDA 2012.1 Released

NV Access is pleased to announce that NVDA 2012.1 has been released. This release has been declared stable, which means it is suitable for production use and is recommended for most users.

Highlights of NVDA 2012.1 include features for more fluent reading of braille; indication of document formatting in braille; access to much more formatting information and improved performance in Microsoft Word; and support for the iTunes Store.

Changes from 2012.1rc1 to 2012.1:

  • Updated translations.
  • The HumanWare Brailliant B 80 can now be used via bluetooth.

Download links and change log:

NVDA 2012.1beta2 Released

NVDA 2012.1beta2 has just been released. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2012.1 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2012.1 release.

Changes from beta1 to beta2:

  • Updated documentation. (#1929, #2076, #2078, #1290)
  • Updated translations. (#2101)
  • In Firefox 11, the move to containing virtual buffer command (NVDA+control+space) now works as it should to escape embedded objects such as Flash content.
  • Long (30 characters or more) graphic names guessed from URLs are now truncated, rather than stripped completely. (#1989)
  • Updated liblouis braille translator to 2.4.1.
  • NVDA now restarts itself correctly (e.g. after changing the configured language) when it is located in a directory which contains non-ASCII characters. (#2079)
  • If braille reading by paragraph is enabled and the caret is at the end of some editable text fields, the last paragraph is now correctly displayed instead of nothing. (#2075)
  • It is again possible to route the cursor to the space at the end of the line/paragraph using the cursor routing keys on a braille display.
  • Braille correctly respects the settings for reporting of object shortcut keys, position information and descriptions.
  • In browse mode, object names containing certain rare Unicode characters no longer cause errors. (#2090)
  • In Mozilla applications, switching between browse and focus modes is no longer slow with braille enabled. (#2095)
  • Routing the cursor to the space at the end of the line/paragraph using braille cursor routing keys in some editable text fields now works correctly instead of routing to the start of the text. (#2096)
  • For developers: Braille output is now logged at level input/output. First, the untranslated text of all regions is logged, followed by the braille cells of the window being displayed. (#2102)
  • NVDA functions correctly again in the VirtualBox Create New Virtual Machine dialog. (#2089)
  • NVDA again works correctly with the Audiologic Tts3 synthesizer. (#2109)
  • NVDA will now announce footnotes and endnotes in Microsoft Word even when they appear directly after punctuation. (#2071)
  • In Microsoft Word, comments within formatted text no longer cause strange formatting announcements before and after the comment.
  • Microsoft Word documents are correctly treated as multi-line. This causes braille to behave more appropriately when a document is focused.
  • New braille translation tables: Icelandic 8 dot computer braille, Tamil grade 1, Spanish 8 dot computer braille, Farsi grade 1.
  • In Microsoft Word, moving review or braille away from the cursor now works correctly.
  • In Microsoft Internet Explorer, errors no longer occur when focusing on certain rare controls. (#2121)
  • For developers: subclasses of the sapi5 synthDriver can now override _getVoiceTokens and extend init to support custom voice tokens such as with sapi.spObjectTokenCategory to get tokens from a custom registry location.
  • Changing the pronunciation of punctuation/symbols by the user will now take effect straight away, rather than requiring NVDA to be restarted or auto language switching to be disabled.

Download links and change log:

NVDA 2012.1beta1 Released

NV Access is pleased to announce the release of NVDA 2012.1beta1. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2012.1 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2012.1 release.

Highlights of NVDA 2012.1 include features for more fluent reading of braille; indication of document formatting in braille; access to much more formatting information and improved performance in Microsoft Word; and support for the iTunes Store.

Download links and change log:

Update on NVDA and ETI-Eloquence

Due to the high demand to be able to use Nuance ETI-Eloquence or IBM ViaVoice TTS with NVDA, a few months ago, we asked for expressions of interest in purchasing Nuance ETI-Eloquence from NV Access. We did receive sufficient interest to make this viable and began negotiating with Nuance. More than three months ago, We raised several concerns with Nuance concerning the contract they provided. Unfortunately, Nuance have provided no response, despite several requests from us.

Given our concerns about the contract and Nuance's apparent lack of interest in our business, we decided to investigate IBM ViaVoice TTS again. This offers several advantages, including better pricing, more languages and, in our experience, far better customer service. The major obstacle we hit in our initial investigation was that it required installation due to its use of the machine registry. Recently, we devised and implemented a work around for this. We then contacted Wizzard Software to begin negotiations. Unfortunately, they informed us that they are discontinuing sale of the product, so this is no longer an option. We've contacted IBM in the hope that they may be able to help, but this is extremely unlikely.

We recognise the importance of ETI-Eloquence to many of our users. As such, we have expended significant effort and time attempting to provide a solution. Regretably, all our efforts have failed and as far as we know, there is nothing more we can do.

NVDA 2011.3 Released

NV Access is pleased to announce that NVDA 2011.3 has been released. This release has been declared stable, which means it is suitable for production use and is recommended for most users.

Highlights of NVDA 2011.3 include automatic speech language switching when reading documents with appropriate language information; support for 64 bit Java Runtime Environments; reporting of text formatting in browse mode in Mozilla applications; better handling of application crashes and freezes; and initial fixes for Windows 8.

Changes from 2011.3rc1 to 2011.3:

  • Updated documentation.
  • Updated translations.

Download links and change log:

NVDA 2011.3rc1 Released

NVDA 2011.3rc1 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be almost identical to the final 2011.3 release.

Note that some translations may not yet be updated. They will be updated by the time of the final 2011.3 release.

Changes from beta1 to rc1:

  • Updated documentation.
  • Updated translations.
  • NVDA no longer fails to recognise that the focus has moved when switching windows in some cases; e.g. opening a new window in Mozilla applications. (#1851)
  • With mouse tracking enabled, moving the mouse over certain editable text fields (such as in Synaptics Pointing Device Settings and SpeechLab SpeakText) no longer causes the application to crash. (#672)
  • NVDA no longer freezes when moving around in the system menu in Internet Explorer 8 on Windows XP. (#1831)
  • Basic support for Design Science MathPlayer.
  • NVDA now functions correctly in several about dialogs in applications distributed with Windows XP, including the About dialog in Notepad and the About Windows dialog. (#1853, #1855)
  • Symbol pronunciation and character descriptions for Chinese are now reported correctly.
  • If automatic language switching is disabled, NVDA's user interface language is used for symbol pronunciation and character descriptions instead of the language reported by the synthesizer. (#1861)
  • Reviewing by word now works correctly in Windows Edit controls. (#1877)
  • Updated eSpeak speech synthesizer to 1.45.47. (#1879)
  • Moving out of an editable text field with leftArrow, upArrow or pageUp while in focus mode now correctly switches to browse mode when automatic focus mode for caret movement is enabled. (#1733)

Download links and change log:

NVDA 2011.3beta1 Released

NV Access is pleased to announce the release of NVDA 2011.3beta1. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2011.3 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2011.3 release.

Highlights of NVDA 2011.3 include automatic speech language switching when reading documents with appropriate language information; support for 64 bit Java Runtime Environments; reporting of text formatting in browse mode in Mozilla applications; better handling of application crashes and freezes; and initial fixes for Windows 8.

Download links and change log:

NVDA 2011.2 Released

NV Access is pleased to announce that NVDA 2011.2 has been released. This release has been declared stable, which means it is suitable for production use and is recommended for most users.

Highlights of NVDA 2011.2 include major improvements concerning punctuation and symbols, including configurable levels, custom labelling and character descriptions; no pauses at the end of lines during say all; improved support for ARIA in Internet Explorer; better support for XFA/LiveCycle PDF documents in Adobe Reader; access to text written to the screen in more applications; and access to formatting and color information for text written to the screen.

Changes from 2011.2rc1 to 2011.2:

  • Updated documentation.
  • Updated translations.
  • If NVDA is unable to start, failure to play the Windows critical stop sound no longer clobbers the critical error message in the log file.
  • Corrected the fix for focus tracking in the Outlook 2010 message list when NVDA is installed or running as administrator with UAC enabled. (#1285)
  • In Internet Explorer and other MSHTML multi-line editable text fields, backspacing at the end of the line is now reported correctly. (#1605)

Download links and change log:

NVDA 2011.2rc1 Released

NVDA 2011.2rc1 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be almost identical to the final 2011.2 release.

Note that some translations may not yet be updated. They will be updated by the time of the final 2011.2 release.

Changes from beta3 to rc1:

  • Updated documentation.
  • Updated translations.
  • NVDA no longer temporarily freezes or refuses to speak when in the Move to / Copy to dialogs in Windows Live Mail. (#574)
  • In Outlook 2010, NVDA will now correctly track the focus in the message list. (#1285)
  • Additional key bindings have been added for the MDV Lilli braille display. (#241)
  • Some USB connection issues have been resolved with the MDV Lilli braille display. (#241)
  • When using flat review, moving by word again stops when it encounters blank characters. (#1663)
  • In Internet explorer and other MSHTML controls, spaces are no longer ignored in browse mode in certain cases (e.g. after a link).
  • In Internet Explorer and other MSHTML controls, some extraneous line breaks have been eliminated in browse mode. specifically, HTML elements with a display style of None no longer force a line break. (#1685)

Download links and change log:

NVDA 2011.2beta3 Released

NVDA 2011.2beta3 has just been released. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2011.2 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2011.2 release.

Changes from beta2 to beta3:

  • Updated documentation.
  • Updated translations.
  • Fixed failure of the report text formatting command in some translations. (#1621, #1653)
  • New braille translation tables: Slovene grade 1, Serbian grade 1.
  • When NVDA is installed on Windows Vista or Windows 7, lines can again be read in Microsoft Word.
  • In the Windows 7 Control Panel, lists in the Windows Firewall and Default Programs sections are again usable.

Download links and change log:

NVDA 2011.2beta2 Released

NVDA 2011.2beta2 has just been released. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2011.2 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2011.2 release.

Changes from beta1 to beta2:

  • Update documentation.
  • Updated translations.
  • Corrected the descriptions reported for some commands in input help mode.
  • In Windows 7, the manufacturer for the NVDA service is now reported as "NV Access Inc" instead of unknown.
  • In Microsoft Word 2010 NVDA will now automatically read confirmation dialogs. (#1538)
  • Say all no longer stops prematurely. (#1595)
  • NVDA no longer freezes when moving around in the system menu in Internet Explorer 8 on Windows XP. (#1577)
  • In multi-line editable text fields in Internet Explorer and other MSHTML controls, selection on lines after the first is now reported correctly. (#1590)
  • Adjustments to English symbol information, including improvements to speaking of times, currency, negative numbers and ellipses.
  • Improved moving by word in many cases, including browse mode and Windows Edit controls. (#1580)
  • The NVDA installer no longer shows garbled text for Hong Kong versions of Windows Vista and Windows 7. (#1596)
  • Selection changes are again correctly reported on list items, tree items and grid rows in Mozilla applications. (#1600)
  • In firefox brows mode, NVDA no longer refuses to include content that is inside a focusable node with an ARIA role of presentation.
  • NVDA no longer fails to load the Microsoft Speech API version 5 synthesizer if the configuration contains settings for that synthesizer but is missing the voice setting. (#1599)
  • NVDA no longer fails to start when the Galician language is used. (#1614)
  • In editable text fields in Internet Explorer and other MSHTML controls, NVDA no longer lags or freezes when braille is enabled.
  • In Internet Explorer, NVDA once again correctly remembers the position you were at when returning to a previously visited web page. (#1604)
  • In Microsoft Word with braille enabled, lines on pages after the first page are now reported correctly. (#1603)
  • In Microsoft Word 2003, lines of right-to-left text can once again be read with braille enabled. (#627)
  • In Microsoft Word, say all now works correctly when the document does not end with a sentence ending.
  • New braille translation table: Ethiopic grade 1.
  • Support for the calendar control found in the Date and Time Information dialog accessed from the Windows 7 clock. (#1637)
  • Removed the NVDA Microsoft Excel Cell Editor dialog, as it can't display dates and other formatted values correctly. The Excel cell editing field can be read and navigated, so this dialog isn't necessary anyway. (#1636)
  • When opening a plain text message in Windows Live Mail 2011, NVDA will correctly focus on the message document allowing it to be read.
  • The authenticode signature on NVDA executables is again timestamped to allow them to run after the certificate has expired. (#1644)

Download links and change log:

NVDA 2011.2beta1 Released

NV Access is pleased to announce the release of NVDA 2011.2beta1. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2011.2 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2011.2 release.

Highlights of NVDA 2011.2 include major improvements concerning punctuation and symbols, including configurable levels, custom labelling and character descriptions; no pauses at the end of lines during say all; improved support for ARIA in Internet Explorer; better support for XFA/LiveCycle PDF documents in Adobe Reader; access to text written to the screen in more applications; and access to formatting and color information for text written to the screen.

Download links and change log:

NVDA 2011.1.1 Released

NVDA 2011.1.1 has just been released. This release fixes several security and other important issues found in the 2011.1 release. Upgrading is highly recommended.

Fixes in this release:

  • The Donate item in the NVDA menu is now disabled when running on the logon, lock, UAC and other secure Windows screens, as this is a security risk. (#1419)
  • It is now impossible to copy or paste within NVDA's user interface while on secure desktops (lock screen, UAC screen and windows logon) as this is a security risk. (#1421)
  • In Firefox 4, the move to containing virtual buffer command (NVDA+control+space) now works as it should to escape embedded objects such as Flash content. (#1429)
  • When speaking of command keys is enabled, shifted characters are no longer incorrectly spoken as command keys. (#1422)
  • When speaking of command keys is enabled, pressing space with modifiers other than shift (such as control and alt) is now reported as a command key. (#1424)
  • Logging is now completely disabled when running on the logon, lock, UAC and other secure Windows screens, as this is a security risk. (#1435)
  • In input help mode, Gestures are now logged even if they are not bound to a script (in accordance with the user guide). (#1425)
  • Updated translations.

Download links and change log:

NVDA 2011.1 Released

NV Access is pleased to announce that NVDA 2011.1 has been released. This release has been declared stable, which means it is suitable for production use and is recommended for most users.

Highlights of NVDA 2011.1 include automatic reporting of new text output in mIRC, PuTTY, Tera Term and SecureCRT; support for global plugins; announcement of bullets and numbering in Microsoft Word; additional key bindings for braille displays, including keys to move to the next and previous line; support for several Baum, HumanWare and APH braille displays; and reporting of colors for some controls, including IBM Lotus Symphony text controls.

Changes from 2011.1rc1 to 2011.1:

  • Updated translations.
  • Fixed a formatting error in the User Guide.
  • Fixed announcement of the left control key in languages other than English.

Download links and change log:

NVDA 2011.1rc1 Released

NVDA 2011.1rc1 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be almost identical to the final 2011.1 release.

Note that there may be some minor updates to some translations (particularly of the what's new document) in the final release.

Changes from beta2 to rc1:

  • Updated translations.
  • Updated documentation.
  • The status bar in Media Player Classic Home Cinema is now recognised.
  • When reading by line in AkelPad with word wrap enabled, NVDA no longer reads the first character of the following line at the end of the current line.
  • In the Visual Studio 2005/2008 code editor, NVDA no longer reads the entire text after every typed character. (#975)
  • A non-textual character (specifically, a Unicode BOM) is no longer placed at the start of the title of many of NVDA's documentation files.
  • Fixed the issue where some braille displays weren't cleared properly when NVDA was exited or the display was changed.
  • When reverting to saved configuration and a braille display is active in the saved configuration, the display presents the appropriate focus or review position instead of being blank.
  • Fixed a bug where the first command immediately after NVDA was started did not work in some cases, especially on braille displays.
  • The Freedom Scientific Focus 40 Blue braille display can now be used when connected via bluetooth. (#1345)
  • The initial focus is no longer sometimes spoken twice when NVDA starts. (#1359)
  • NVDA no longer fails to start when configured to use Spanish or Galician. (#1361)
  • In the NVDA General Settings dialog, the name of the default language is no longer shown for the SR language code. (#1363)
  • NVDA no longer freezes when you attempt to activate an NVDA settings dialog using a keyboard shortcut when another NVDA settings dialog is already open. (#1372)
  • You can no longer open a second NVDA settings dialog if you try twice.
  • Fixed the issue where certain links weren't being recognised correctly in MSHTML controls. This included links in Windows XP Update and email messages in Windows Live Mail. (#1330)
  • NVDA now gracefully handles encoding errors in the user input gesture map.
  • Locale input gesture maps are now correctly copied into binary builds.

Download links and change log:

NVDA 2011.1beta2 Released

NVDA 2011.1beta2 has just been released. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2011.1 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2011.1 release.

Changes from beta1 to beta2:

  • Updated translations.
  • Updated documentation.
  • Fixed problems when reading text in Windows command consoles with reporting of line numbers enabled.
  • The Elements List dialog for virtual buffers is now usable by sighted users. All controls are visible on screen. (#1321)
  • The list of entries in the Speech Dictionary dialog is now more readable by sighted users. The list is now large enough to show all of its columns on screen. (#90)
  • The reload plugins command no longer causes NVDA to stop loading plugins from the user configuration directory.
  • On ALVA BC640/BC680 braille displays, NVDA no longer disregards display keys that are still held down after another key is released.
  • Adobe Reader X no longer crashes after leaving the untagged document options before the processing dialog appears. (#1218)
  • NVDA now switches to the appropriate braille display driver when you revert to saved configuration. (#1346)
  • The Visual Studio 2008 Project Wizard is read correctly again. (#974)
  • Fixed the issue where certain key combinations on braille displays never activated the command to which they were bound; e.g. b2+b4+b5 on Handy Tech displays. (#1349)
  • The ALVA BC640/680 braille display driver works again.
  • NVDA no longer completely fails to work in applications which contain non-ASCII characters in their executable name. (#1352)
  • Errors in the user input gesture map no longer cause NVDA to fail to start. Instead, a dialog is presented informing the user about the error, after which NVDA continues normally. (#1342)
  • The user input gesture map is now reloaded when you revert to saved configuration.

Download links and change log:

NVDA 2011.1beta1 Released

NV Access is pleased to announce the release of NVDA 2011.1beta1. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2011.1 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2011.1 release.

Highlights of NVDA 2011.1 include reporting of colors for some controls; automatic reporting of new text output in mIRC, PuTTY, Tera Term and SecureCRT; support for global plugins; announcement of bullets and numbering in Microsoft Word; additional key bindings for braille displays, including keys to move to the next and previous line; and support for several Baum, HumanWare and APH braille displays.

Download links and change log:

NVDA 2010.2 Released

NV Access is pleased to announce that NVDA 2010.2 has been released. This release has been declared stable, which means it is suitable for production use and is recommended for most users.

Notable features of NVDA 2010.2 include greatly simplified object navigation; virtual buffers for Adobe Flash content; access to many previously inaccessible controls by retrieving text written to the screen; flat review of screen text; support for IBM Lotus Symphony documents; reporting of table row and column headers in Mozilla Firefox; and significantly improved user documentation.

Changes from 2010.2rc1 to 2010.2:

  • Updated translations.
  • Fixed access to some Windows Security dialogs such as the dialog which appears when installing unsigned drivers in Windows 7.

Download links and change log:

NVDA 2010.2rc1 Released

NVDA 2010.2rc1 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be almost identical to the final 2010.2 release.

Note that there may be some minor updates to some translations (particularly of the what's new document) in the final release.

Changes from beta2 to rc1:

  • Updated translations.
  • Updated What's New.
  • Fixed the issue where copying text to the clipboard from flat review of the screen only copied part of the text in some circumstances. (#948)
  • When moving the main cursor in virtual buffers, the review cursor will always review the entire document as intended, rather than reviewing the focused object. This was supposed to be fixed in beta2, but the fix was flawed.
  • NVDA will now once again function in Windows XP with no service pack. This was supposed to be fixed in beta2, but another change had to be made to make this work correctly. (#908)

Download links and change log:

NVDA 2010.2beta2 Released

NVDA 2010.2beta2 has just been released. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2010.2 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2010.2 release.

Changes from beta1 to beta2:

  • Updated translations.
  • Updated What's New.
  • Disable retrieval of table headers for Firefox 3.6.10, as the crash fix is not included in that release. See #807 for details.
  • NVDA now functions correctly on a system where the current working directory has been removed from the DLL search path (by setting the CWDIllegalInDllSearch registry entry to 0xFFFFFFFF). Note that this is not relevant to most users. (#907)
  • Fixed the issue where say all would only read the first line of paragraphs with multiple lines in Lotus Symphony/OpenOffice.org documents. (#910)
  • When the table navigation commands are used outside of a table in Microsoft Word, "edge of table" is no longer spoken after "not in table". (#921)
  • When the table navigation commands cannot move due to being at the edge of a table in Microsoft Word, "edge of table" is now spoken in the configured NVDA language rather than always in English. (#921)
  • Support for Microsoft Internet Explorer 9.
  • The move mouse to current navigator object command now works correctly in virtual buffers.
  • When moving the main cursor in virtual buffers, the review cursor will always review the entire document as intended, rather than reviewing the focused object.
  • In Outlook Express, Windows Mail and Windows Live Mail, the state of the checkboxes in message rules lists is now reported. (#576)
  • The description of message rules can now be read in Windows Live Mail 2010.
  • NVDA will now once again function in Windows XP with no service pack. (#908)

Download links and change log:

NVDA Wins the 2010 New Inventors Les is More Award!

We're proud and honoured to announce that NVDA is the winner of the 2010 New Inventors "Les is More Award"! This award is presented "to an inventor whose invention might make a real difference to people's lives or the environment". We'd like to extend our sincerest thanks to The New Inventors. Thanks also to the many others who have made NVDA possible, including our volunteer developers and translators, organisations who have provided us with funding, the many individuals who have donated and, of course, our users.

NVDA is a Finalist for the New Inventors Les is More Award!

In March, NVDA featured on ABC (Australian Broadcasting Corporation) TV's New Inventors show. We're proud to announce that we're a finalist for the New Inventors "Les is More Award". The New Inventors describes this award as follows:

Each year, in honour of our late judge Les Miller, The New Inventors presents a special award to an inventor whose invention might make a real difference to people's lives or the environment.

To find out if we win, watch the New Inventors grand final this Thursday at 8:30 pm on ABC1!

NVDA 2010.2beta1 Released

NV Access is pleased to announce the release of NVDA 2010.2beta1. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2010.2 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2010.2 release.

Notable features of NVDA 2010.2 include greatly simplified object navigation; virtual buffers for Adobe Flash content; access to many previously inaccessible controls by retrieving text written to the screen; flat review of screen text; support for IBM Lotus Symphony documents; reporting of table row and column headers in Mozilla Firefox; and significantly improved user documentation.

Download links and change log:

2010.2 Release Schedule

We're finally drawing very near to the end of the NVDA 2010.2 release cycle. It's been a bit longer than I hoped, but I think the wait was justified and worthwhile.

We will release according to the guidelines documented in ReleaseProcess. All developers and translators should familiarise themselves with this document, which I updated earlier today.

Following is the tentative release schedule for 2010.2:

  • beta1: 13 September
  • rc1: 13 October
  • final: 20 October

Of course, this will be altered if any major problems are encountered.

Thanks to everyone who has contributed to this release!

NVDA and ETI-Eloquence: The Situation Explained

We have received countless requests from users wanting to use the ETI-Eloquence or IBM ViaVoice TTS speech synthesisers with NVDA. Unfortunately, it is generally not legal to use either of these synthesisers with NVDA. This article explains the situation. Please read this article in full before posting any questions about either synthesiser. Discussion about illegal use of either synthesiser on the NVDA mailing lists will not be tolerated.

What are ETI-Eloquence and IBM ViaVoice TTS?

ETI-Eloquence is a small footprint, multi-lingual speech synthesiser which is extremely popular among blind and vision impaired people and is used in many popular desktop and mobile screen readers. IBM ViaVoice TTS is another product which incorporates the ETI-Eloquence speech synthesis technology .

Licensing

ETI-Eloquence is now owned by Nuance Communications. It is not (and has never been) a free product, even despite the fact that its development has been discontinued by Nuance. Similarly, IBM ViaVoice TTS is distributed by Wizzard Software and is also not a free product.

Both synthesisers are licensed to application developers for use in their applications. Unfortunately, unlike many synthesisers on the market, it is not currently possible to purchase individual licenses that aren't tied to specific products for either of these synthesisers.

Certain products, such as IBM Home Page Reader and GW Micro Window-Eyes before version 7, included a SAPI 4 version of ETI-Eloquence or IBM ViaVoice. This synthesiser could be used with NVDA via its SAPI 4 driver. However, even though there is no restriction on the actual software, it is highly likely that the license does not actually permit the synthesiser to be used with products other than the one with which it is bundled. The license certainly does not permit free redistribution of the synthesiser.

Confirmation of Licensing

In 2006, NVDA did include a driver for IBM ViaVoice (but not the synthesiser itself). We used the version of IBM ViaVoice bundled with IBM Home Page Reader. However, we were asked by IBM to remove this driver due to the above licensing issues.

Following is a translated letter from Byteway Srl, the Italian distributor of ETI-Eloquence, in response to suspected illegal use of ETI-Eloquence by NVDA users:

Sirs,
I have read in various mailing lists that the ETI Eloquence Synthesis, property of Nuance International BVBA, is used by some integrators without the regular License Agreement and thus without the right of using this technology for commercial or divulgation purposes.
Furthermore, I read that the ETI Eloquence is used by end users in combination with third parties applications for which no right of usage is granted by the producer.
At the present moment only two companies (in Italy), Cavazza 2000 and ITEX di Marco Gregnanin, are authorized to integrate ETI Eloquence.
As the legal representative of Byteway Srl, distributor of the above mentioned technologies, it is my right and duty to inform that, the persons that do an indiscriminate use of this vocal synthesis are breaking the laws against software piracy.
Thus, I kindly advise to all integrators and end-users to settle their position with respect to the right of using ETI Eloquence as soon as possible.
Byteway will be happy to provide further information, license agreements and prices.
Otherwise, as stated with Nuance's legal office, legal measures will be adopted to defend the interest of the producer and the distributor.
Highest Regards,
Donato Savino, CEO
d.savino@byteway.it
Byteway Srl
Imaging and Speech Technologies
Milano, Via Roncaglia 14 - ITALY
Tel. +39 02 3809 3651
Fax +39 02 3809 3656
www.byteway.it

Attempts by NV Access to Provide a Solution

NV Access, the organisation which develops and supports NVDA, recognises the importance of ETI-Eloquence to a large portion of its user base. As such, NV Access attempted to make it available for a small cost to NVDA users for use with NVDA.

First, we investigated the possibility of re-selling IBM ViaVoice TTS, as TTSynth has done for Linux. Unfortunately, after spending several hundred dollars on the SDK, we discovered that the Windows version of IBM ViaVoice TTS uses the registry to store its configuration, which makes it unsuitable for use with a portable screen reader such as NVDA. (ETI-Eloquence itself does not use the registry.)

Second, we investigated the possibility of re-selling ETI-Eloquence itself. Unfortunately, the lowest cost that Nuance would negotiate was $15AUD per license if we purchased 300 licenses. In order to cover our costs, compensate for the possibility that we might not sell 300 copies and provide some extra funding for NV Access, we would need to charge users a higher price, but this price from Nuance doesn't give us much to work with before the cost to users becomes unreasonable.

Update: Given the demand for this synthesiser, we attempted to negotiate a license with Nuance in 2011. Some clauses in the license agreement concerning distribution and copy protection were quite vague, and when we requested clarification, our contact at Nuance simply stopped responding to our queries, despite several requests over several months. Even despite this, we suspect Nuance would require us to implement extreme copy protection measures, which is an area in which we have no experience nor the time or resources to pursue.

Update: In 2013, we discovered a way to work around the technical issues concerning use of the registry in IBM ViaVoice TTS. Unfortunately, when we attempted to negotiate licenses, we were informed that Wizzard Software was discontinuing sale of the product. It cannot be purchased from any other party. We've contacted IBM several times to request other options, but have not received any useful responses.

Are There Any Legal Options?

As far as we are aware, the only legal option for using NVDA with ETI-Eloquence is to purchase PenVDA, which includes NVDA and a specifically licensed copy of ETI-Eloquence. Unfortunately, PenVDA is quite expensive (at least $120USD depending on where you purchase it). Please note that PenVDA is in no way affiliated with NV Access and its cost does not contribute to NVDA development.

NVDA 2010.1 Released

We are pleased to announce that NVDA 2010.1 has been released. This release has been declared stable, which means it is suitable for production use and is recommended for most users.

NVDA 2010.1 focuses primarily on bug fixes and improvements to the user experience, including some significant stability fixes.

The only changes from 2010.1rc1 to 2010.1 are updates to some translations.

Download links and change log:

NVDA 2010.1rc1 Released

NVDA 2010.1rc1 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be almost identical to the final 2010.1 release.

Note that there may be some minor updates to some translations (particularly of the what's new document) in the final release.

Changes from beta1 to rc1:

  • Updated translations.
  • Updated what's new.
  • Fixed various harmless but annoying exceptions.
  • In Miranda IM, automatic message reading is now also supported in the srmm plugin.
  • Fixed problems in file selection dialogs in Miranda IM. (#580)
  • Fixed some problems with logging of messages containing non-ASCII characters. This could cause spurious errors in some cases on non-English systems. (#581)
  • The information in the About NVDA dialog now appears in the user's configured language instead of always appearing in English. (#586)
  • Problems are no longer encountered when using the synthesiser settings ring after the voice is changed to one which has less settings than the previous voice.
  • In Skype 4.2, contact names are no longer spoken twice in the contact list.
  • Fixed some potentially major memory leaks in the GUI and in virtual buffers. (#590, #591)
  • Focusing Total Commander lists other than the main list of files now functions correctly.
  • Updated eSpeak to 1.43.03.
  • Work around a nasty bug in some SAPI 4 synthesisers that was causing frequent errors and crashes in NVDA. (#597)

Download links and change log:

NVDA 2010.1beta1 Released

We're pleased to announce that NVDA 2010.1beta1 has just been released. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2010.1 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2010.1 release.

NVDA 2010.1 focuses primarily on bug fixes and improvements to the user experience, including some significant stability fixes.

Download links and change log:

NVDA on New Inventors in March!

NVDA will feature in ABC (Australian Broadcasting Corporation) TV's New Inventors show on Wednesday 10 March. If you're in Australia, tune in to ABC1 at 8pm to watch Mick and me demonstrating and talking about NVDA!

NVDA 2009.1 Released

We are extremely pleased to announce that NVDA 2009.1 has finally been released. This release has been declared stable, which means it is suitable for production use and is recommended for most users.

Major highlights of NVDA 2009.1 include support for 64 bit editions of Windows; greatly improved support for Microsoft Internet Explorer and Adobe Reader documents; support for Windows 7; reading of the Windows logon, control+alt+delete and User Account Control (UAC) screens; and the ability to interact with Adobe Flash and Sun Java content on web pages. There have also been several significant stability fixes and improvements to the general user experience.

Changes from 2009.1rc1 to 2009.1:

  • Minor documentation and translation updates.
  • NVDA no longer freezes in Save As dialogs on Windows XP and Vista systems with the Platform Update installed.
  • The title of the Windows Logon screen is now always read in Windows Vista and Windows 7.
  • Fixed a problem with the report date and time command (NVDA+f12). Previously, date reporting was truncated on some systems. (#471)
  • Fixed the issue where the system screen reader flag was sometimes inappropriately cleared after interacting with secure Windows screens. This could cause problems in applications which check the screen reader flag, including Skype, Adobe Reader and Jart. (#462)
  • In an Internet Explorer 6 combo box, the active item is now reported when it is changed. (#342)
  • Dynamic updates in Adobe Reader documents (e.g. changes to form fields) are now properly reflected by NVDA. (This used to work, but regressed a few months ago.)
  • NVDA now behaves correctly when an Adobe Reader document is scrolled by other means (e.g. pressing control+pageDown) before NVDA has itself scrolled the document in response to movement of the virtual cursor.

Download links and change log:

NVDA 2009.1rc1 Released

NVDA 2009.1rc1 has just been released. This is a release candidate, which means that unless any critical issues are found, this will be almost identical to the final 2009.1 release. The major change since the beta which should be tested is that installed copies can now fully access applications running as administrator in Windows Vista and Windows 7. This is not possible for portable copies.

Note that there may be some minor updates to some translations (particularly of the what's new document) in the final release.

Changes from beta1 to rc1:

  • Updates to translations.
  • Fixes to documentation.
  • Fixed an issue which caused embedded objects not to be rendered in Mozilla Firefox 3.7 nightly builds.
  • Fixed issues when pressing upArrow or downArrow in the password field of the Windows XP logon screen.
  • Fixed an issue where NVDA would fail when navigating certain documents in Adobe Reader.
  • The report text selection command (NVDA+shift+upArrow) now gracefully reports that there is no selection in objects which do not support text selection.
  • The Save As dialog in the NVDA Log Viewer no longer causes NVDA to freeze in Windows 7. (#439)
  • Fixed broken reporting of text under the mouse in many editable text controls and Windows command consoles.
  • Fixed the issue where pressing the enter key on certain Miranda-IM buttons or links was causing NVDA to freeze. (#440)
  • The current line or selection is now properly respected when spelling or copying the current navigator object.
  • Fixed the issue where NVDA was sometimes not terminated properly on secure desktops when fast desktop switches occurred. This could cause the Windows control+alt+delete screen to fail to appear or multiple copies of NVDA to run at once on the Windows logon and shutdown screens. (This was fixed previously, but regressed a few days before beta1 was released.)
  • Worked around a Windows bug which was causing garbage to be spoken after the name of link controls in Windows Explorer and Internet Explorer dialogs. (#451)
  • NVDA can now fully access applications running as administrator in Windows Vista and later. You must install an official release of NVDA for this to work. This does not work for portable versions and snapshots. (#397)
  • The NVDA error sound is no longer played in release candidates and final releases. Note that errors are still logged.

Changes in the build process for official releases:

  • Python optimisations are enabled.
  • All main executables are signed with the NV Access code signing certificate.

Download links and change log:

NVDA 2009.1beta1 Released

We're pleased to announce that NVDA 2009.1beta1 has just been released. It is intended for those who are interested in testing and evaluating the upcoming NVDA 2009.1 release, but is not recommended for production use. Testers are encouraged to report any bugs found while using this beta.

Note that some translations may not yet be updated. They will be updated by the time of the final 2009.1 release.

Major highlights of NVDA 2009.1 include support for 64 bit editions of Windows; greatly improved support for Microsoft Internet Explorer and Adobe Reader documents; support for Windows 7; reading of the Windows logon, control+alt+delete and User Account Control (UAC) screens; and the ability to interact with Adobe Flash and Sun Java content on web pages. There have also been several significant stability fixes and improvements to the general user experience.

Download links and change log:

Adobe Provides Grant for PDF and Flash Support in NVDA

We are pleased and grateful to announce that Adobe have provided a grant to NV Access to support NVDA development. This grant will enable us to improve support for Adobe Reader and add support for Adobe flash embedded in browsers. This is great news for NVDA users given the increasing regularity of PDF documents and Flash content. This will also help users access content and applications developed with Adobe Flex and interactive forms developed with Adobe LiveCycle.

We've already done much of the work to improve support for Adobe Reader. You can try it out for yourself in NVDA development snapshots.

Goodbye Miscellaneous Dependencies Package

NVDA has quite a few dependencies. Some of these have nice installers, but others are very small or aren't readily available in the form we need for some reason or another. Therefore, for people running from source, we previously bundled all of these dependencies into a single, convenient "miscellaneous dependencies" package. Unfortunately, this is rather tedious for us to maintain. Most of these dependencies rarely ever change, making updating the whole package for every change rather pointless. Therefore, the miscellaneous dependencies package is no more. Instead, dependencies.txt in the root of the code repository has been renamed to readme.txt and provides an in-depth description of all of the required dependencies, as well as instructions for preparing, running and building the source code. Pre-built versions of some of the dependencies are still provided where they are difficult to obtain or build, as described in the readme. Please let me know if I've missed anything!

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.

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.

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 [ReleaseStatus 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.

NVDA Hack Fest November 2008

I joined Mick in Melbourne on Sunday, 9 November for the third NVDA hack fest. Discussion during the hack fest included significant changes and additions to the design of NVDA, organisation of the source code, optimisation of the braille support, project management and policy, and solutions to some long-standing problems. See NVDAHackFestNov2008 for detailed technical notes on the major topics of discussion.

Aside from discussion, we did quite a bit of coding as we had hoped. The first item we tackled not long after I arrived was a rather long standing task that we've been putting off for months: the storage of voices and variants in the configuration file as unique identifiers instead of indices. This makes voice settings more reliable across systems and configuration changes. We had already begun work on this several days before, but there was still some work to be completed. We were very excited and relieved when we were finally able to merge the changes and declare this ticket fixed late on Sunday evening. (Amusingly enough, despite our excitement, we forgot to close the ticket until after the hack fest.)

Our next major undertaking was some changes to improve NVDA under Windows Vista. In earlier versions of Windows, it was tedious at best to run specific applications or tasks with administrative privileges, and therefore, it was common practice for some users (particularly home users) to simply always run with administrative privileges. Many applications, including NVDA, expect to be able to write to protected areas of the system, such as the Program Files directory. This is obviously a huge security hole. This is no longer the case in Windows Vista, which prefers that applications specify what privileges they require by way of an associated manifest. Applications which do not provide this information are run in a compatibility mode, wherein data written to protected locations is redirected to a "virtual store" writeable by the user. This is not ideal and can cause problems. We updated NVDA to provide a manifest, which means that NVDA now runs without this compatibility hack. This additionally required that we change NVDA to store all configuration data in the user's Application Data directory for installed copies. This also benefits Windows XP users, allowing individual users to have their own configurations and to save their configurations without administrative privileges. Furthermore, it is the first small step towards supporting User Access Control in Windows Vista.

Another significant change we implemented (which won't be noticeable to users) is that the default appModule is no longer a separate level through which scripts and events pass. Rather, all other appModules inherit from the default appModule class. This makes for a much clearer, object oriented design, allowing scripts and events to be overridden or extended with ease. It also cuts down the number of levels through which scripts and events must pass.

There were also several other minor bug fixes and changes, including some for braille and the new SAPI 4 driver.

On Wednesday evening, Mick, Mat and I attended a mini-expo on adaptive technology for Vision Australia staff. The mini-expo was attended by 9 suppliers and between 35 and 40 Vision Australia staff. Mick and I came prepared to demonstrate NVDA, including the all new braille display support. Mick also had Ubuntu Linux and Orca installed for demonstrations. Unfortunately, it was far too loud for demonstrations with speech, so most of the evening was spent talking to the various staff that approached us. We learnt that some staff are already recommending NVDA to users who cannot afford commercial screen readers and some of these users are using NVDA with great success. Unfortunately, NVDA is still not officially recognised by Vision Australia, perhaps due to our inability to offer direct technical support. Nevertheless, we are hoping this will change in time.

I returned to Brisbane early on Friday afternoon. Overall, we were quite happy with our achievements during the week. As well as the immediate benefits, these hack fests always help to revitalise our working relationship. On a personal level, it was also great to catch up again. Mick and I talk a lot on both IRC and the phone, but there's nothing quite like a face to face meeting. :)

Weekly Update for 11 Nov

I didn't have a chance to write a weekly update last week due to the promised hack fest, which I will discuss in another post.

Here are the noteworthy changes to NVDA in the week prior to the hack fest:

NVDA Updated for Python 2.6

NVDA has been updated to work with Python 2.6. (In fact, it now requires Python 2.6 and will not work with Python 2.5.) Aside from the great new features in Python 2.6 which we can now use, this is the first stepping stone in the eventual move to Python 3.0.

Those running binary snapshots do not need to do anything; new snapshots will be built with the appropriate packages. Those running from source should check dependencies.txt in the NVDA source distribution for the current dependencies and update their systems accordingly.

Last Week in NVDA (3 Nov)

There wasn't much noteworthy activity to report about last week, aside from NVDA 0.6p2 passing 10000 downloads, about which I already reported. The one noteworthy change in NVDA was Mick's introduction of an NVDA specific dialog which allows the user to edit the content of a cell in Microsoft Excel. This dialog appears when you press f2 to edit a cell. This is necessary because the formula bar in Microsoft Excel is inaccessible to NVDA. It is only a temporary solution until NVDA has display hooks which can track the text and cursor in the formula bar. Nevertheless, it does allow the user to edit cells in an accessible manner, which will be a welcome relief for some users.

For BRLTTY users, Samuel Thibault is now building the BRLTTY installer I reported about last week when he releases new Windows builds of BRLTTY, and the installer script is now in the BRLTTY svn repository. Thus, I have removed the installer files from the location I linked last week. Please download installers from Samuel's BRLTTY Windows builds.

Mick has started an article about what we will cover in the upcoming hack fest, which is less than a week away now! As always, there will be a lot of brain melting discussion, though we hope to do a little more coding this time. :) We are keen to involve other developers in these discussions, so let us know if you are interested.

Mick and I debated how to improve braille review. Currently, braille either moves the caret or the review position, but it is always tethered to one or the other; it cannot move freely. This is potentially undesirable in some circumstances. There are two possible solutions:

  • Braille always moves the review cursor. The caret can optionally be moved when braille moves, but regardless, the review position will always be moved. The review cursor itself would never be displayed. The advantage of this is that no separate braille cursor or range is required. The disadvantage is that review bookmarks or the like would be required, as one might wish to move quickly between the caret and an arbitrary review point.
  • Braille can move beyond either cursor, but either cursor can be moved to a braille position, either on demand or automatically. This requires the concept of an active braille cursor; i.e. whether braille is manipulating the caret or the review cursor. This probably allows for the most flexibility, but possibly makes fora steeper learning curve, as there is an additional cursor/range to consider.

We still can't reach a consensus on which is the better method, but we have ideas on how both could be implemented. :) We also discussed ways to work around some bugs in liblouis which are causing some annoying exceptions when text contains certain unicode characters.

Aside from this, we've spent a considerable amount of time writing presentation proposals for CSUN 2009, which we submitted today. Also, we've been trying to track down some annoying crashes with Firefox and NVDA that have been reported lately, but haven't had much success yet.

NVDA 0.6p2 Passes 10000 Downloads!

There have now been over 10000 downloads of NVDA 0.6p2 since its release on 7 August, less than three months ago. At the time of this writing, there have been 10459 downloads. Thank you to all of you for your support. NVDA certainly wouldn't be what it is without the fantastic community that surrounds it.

Last Week in NVDA (27 Oct)

Probably the most exciting happening last week was the promised merge of initial support for braille displays into the main NVDA code. There is still a lot of work to do, but the current implementation is quite useable. There were quite a few changes after the merge to fix issues and allow braille display support to be included in binary snapshots. Also, Mick added a driver for Freedom Scientific Focus/Pacmate displays, which means these can now be used without installing BRLTTY. There is one particular optimisation yet to be done which should vastly improve the performance of the braille code when the focus changes. Code needs to be added to allow keys on displays to trigger scripts in NVDA so that, for example, pressing a key will move to the previous line. (Scrolling and cursor routing is already possible, but this is currently supported directly in the drivers.) NVDA currently cannot display control fields when reading documents in braille, which means that you cannot identify links, form fields, etc. on web pages. These are just a few of the currently known issues; I'm sure there are many more to be discovered. Nevertheless, it is very exciting to finally have support for braille displays in NVDA. Happy testing!

On a related note, I created an installer for the Windows version of BRLTTY using NSIS. Aside from copying BRLTTY to the system, this installer automatically installs and starts BRLTTY as a service. It does not currently provide any facilities for GUI configuration of BRLTTY. You can download an installer for BRLTTY 3.10-2.

The virtual buffer library refactoring saga continued. Although we had initially intended to integrate the virtual buffer in-process injection code with NVDAHelper, Mick discovered that this was not going to be practical due to the virtual buffer library being separate from NVDAHelper. In order for our initial idea to work, the code needs to be integrated at some level, particularly the build process. Going forward, we will probably end up merging the virtual buffer library into NVDAHelper. This is unfortunate in some ways, as it means that it cannot be distributed as a separate package which is immediately useable by other projects, but it is becoming too difficult to maintain it as a separate library, primarily due to its in-process nature. People will certainly still be able to borrow and reuse the code. All of this aside, Mick was able to successfully create a test virtual buffer and interact with it from another process using the new library. The Gecko back-end still needs to be adapted for the new library. Also, NVDA needs to be updated for the new library. This cannot be done until automatic virtual buffer pass-through is merged with the main code.

There are quite a few questions, problems, etc. that appear time and time again on the NVDA mailing lists. This finally prompted me to create some wiki articles to make this information more readily available.

  • FAQ answers general frequently asked questions about NVDA.
  • ApplicationSupport provides details about NVDA's support for specific applications, including commonly encountered problems and solutions.
  • Troubleshooting provides information about and resolutions for problems commonly encountered by NVDA users.

These are rather limited in content at present, but hopefully, they will grow into useful resources for NVDA users. Please feel free to improve them!

Last Week in NVDA (20 Oct)

The major addition to braille support last week was support for the review cursor. Braille can now be tethered to either the system focus/caret or the review position. When tethered to the review position, the display is updated when the review position changes and the routing keys move the review position if appropriate. Unfortunately, there is currently no user friendly way to change this tether mode; it must be done via the Python console. This will be resolved some time this week. Aside from review support, if a change occurs to an object which is being displayed, the display will be updated accordingly. I also added the ability to display messages which time out after a short period. These messages can be dismissed immediately by pressing a cursor routing key. Scrolling the display left or right causes the timeout to be reset to provide more time to read the message. Many of the scripts in the default appModule, such as NVDA+f12 to read the time/date, now display their messages in braille as well as speaking.

Braille display support is still being developed in a separate branch of the code. It has been difficult to decide when this code should be merged into the main NVDA code. There is still a lot of work to be done and BRLTTY is still quite difficult to set up for most users. On the other hand, there are no serious issues with the current code and I would like it to be tested as much as possible. Mick and I discussed this question at length last week. We decided that the current code will be merged as soon as a couple of issues are resolved. The first is to stop computation of braille when there is no braille display in use, as this is pointless and inefficient. Second, there needs to be a way to switch the cursor to which braille is tethered as discussed above. I will hopefully resolve these issues and merge braille support this week.

Mick's agonising endeavours with the virtual buffer library and RPC continue. We spent some time deciding on how RPC will fit into the library's architecture, as well as determining the programming interface for the library. Unfortunately, rather than Mick being able to dive straight into the implementation as we had hoped, he discovered some very frustrating problems. In technical terms, it seems that if you statically link the C/C++ runtime (which is what we have done previously), you cannot safely manipulate objects from any other dll other than the one in which they were created if they are managed internally in some way by the C/C++ runtime, even though the dlls might be dynamically linked. This probably includes most standard C++ classes and templates. The reason is that when the runtime is statically linked, a separate copy of the runtime is used and each maintains its own internal state separately. This was causing many seemingly random crashes and took quite some time to debug. This isn't a problem if all relevant dlls and applications are dynamically linked against the same runtime. However, this requires that the process into which we are injecting has access to the required runtime dll, which cannot be guaranteed because NVDA might be running portably and thus can't copy files to the Windows system directory. The only solution for us is to statically link the runtime and avoid passing such objects between dlls. If you didn't understand any of this (I bearly understand it myself!), suffice it to say that this is yet another exasperating, convoluted hurdle in a seemingly endless series of such hurdles. Nevertheless, we'll get there... eventually. :)

There were only a few minor changes to the main NVDA code last week:

The hack fest I mentioned last week will happen from 9 to 14 November. We haven't yet written an action plan for this.

Last Week in NVDA (13 Oct)

The major highlight in the land of braille support last week was the implementation of initial support for braille in virtual buffers. The text of virtual buffers is displayed in braille when a virtual buffer gains focus. The virtual caret is tracked, and both scrolling the display and cursor routing can move the virtual caret. NVDA correctly switches between browsing the document and displaying the control with focus when pass through mode is disabled and enabled, respectively. Control field information, such as whether an element is a link, form field, etc., is not yet displayed. Also, controls cannot yet be activated by using the cursor routing keys. Finally, there were some minor fixes to braille in Windows command consoles.

In last week's update, I discussed Mick's work on using remote procedure call (RPC) for inter-process communication. Testing of RPC showed very promising results. Mick implemented NVDAController, a framework using RPC which enables external applications to trigger events inside NVDA appModules. Aside from being a useful feature, this allowed him to familiarise himself with RPC and served as a good practical test of RPC in NVDA. Although this functionality has been tested and does work, it is not yet enabled in NVDA, as its interface is still subject to change. Mick then began to work on converting the virtual buffer library to use RPC.

The major refactoring of the virtual buffer library over the last few weeks has transformed it into a package which differs vastly from the original library. It is almost a completely new library in many ways, as the interface has been rewritten and the package has been reorganised. Furthermore, the use of RPC has eliminated an entire layer of code. The end result for the user will be the same, but the code is very different. Therefore, we have decided to start a new code repository for the library and release it as a new version. Overall, the new version is much cleaner, more organised and better documented.

As usual, there were several minor changes to the main NVDA code that are nevertheless worth noting:

Aside from coding, Mick and I have been working on a presentation for next year's CSUN conference. We are moving further in our transition towards using Bazaar for our version control system. I have written some scripts to keep svn and bzr synchronised, and am in the process of getting Peter set up to use bzr. Finally, Mick and I are both making a presentation in Melbourne in November, so we are going to take the opportunity to have another hack fest.

Last Week in NVDA

I forgot to mention in the last update that Mick changed the way NVDA loads and unloads appModules. NVDA now associates appModules with process IDs, rather than window handles. This makes more sense, as an application is generally a single process. This change means that NVDA no longer needs to search for the main window of an application. Also, it is much more accurate in loading and unloading appModules at the appropriate times. For example, the NVDA appModule is now only loaded once instead of every time the NVDA menu is activated.

Last week, I continued work on implementing braille display support. It's coming along steadily, but there's still a lot to be done. In last week's report, I mentioned a crash in the Windows version of brltty/brlapi. This issue was causing NVDA to lock up intermittently after pressing a key on the braille display. I implemented a temporary work around for this in NVDA which should prevent most of these lock ups, although it still needs to be fixed properly in brltty. I also disabled assertion errors from wx for now, as there is a bug in wx which causes spurious assertion errors to be raised regarding timers under certain circumstances. I improved braille configuration a little, including the addition of a configuration option for the cursor blink rate, although this isn't available in the Braille Settings dialog yet. The display of controls has now been improved so that they now include value, states, description, etc., although this code needs quite a bit more work.

Meanwhile, Mick finished his work on the storage component of the virtual buffer library; i.e. the portion responsible for maintaining the text of the document and answering requests for text in a flat representation. The storage component is now fully object oriented and all of the classes and methods are documented, which will make working with this code much easier for both ourselves and other developers in the future. The Mozilla Gecko back-end still needs to be updated to work with the new storage component.

After Mick finished working on the storage component, he began to consider the mechanism we use for inter-process communication (IPC); i.e. communicating queries and data between different processes. Currently, we use a mix of window messages and reading and writing from remote process memory, which is tedious to code and requires a lot of code duplication. These mechanisms are specific to Windows, which means that the virtual buffer library cannot be used on another operating system. Also, the virtual buffer library and NVDA's other in-process component (NVDAHelper) use completely different code for IPC. We are now considering a mechanism called remote procedure call (RPC), which is designed to handle execution of functions in remote processes and transparently handles the transfer of necessary data between processes. Thus, it is much simpler to code and probably quite well suited to these tasks. NVDAHelper could be responsible for all IPC. NVDAHelper could inject the virtual buffer library into a remote process and set up RPC, thus removing all IPC code from the virtual buffer library and making it mostly platform independent. We also want to use RPC to enable applications to trigger events in NVDA, allowing applications which cannot provide information in other ways to communicate directly with NVDA. This is similar to the external APIs provided by some commercial screen readers, although it is potentially more powerful and flexible. Mick has begun work on a basic RPC implementation, which is looking promising so far.

Aside from these bigger endeavours, there have of course been other smaller changes to the main NVDA code. I made quite a few cosmetic fixes; e.g. fixing spelling errors in method names. Mick fixed a bug in the sapi4activeVoice synthesiser driver which was causing say all to fail. He fixed an issue in say all regarding bookmark values which may have caused certain synthesisers to crash. Mick also fixed a bug whereby no text was being read when reading with the mouse in Mozilla Gecko edit fields. I added events for virtual buffers which indicate when a user moves into or out of a virtual buffer. Aside from allowing for more logical coding of some existing functionality, these events are necessary for braille and may allow for other functionality in future. I also fixed an issue which meant that caret events were not being triggered on the focus object before the first focus change after NVDA was started. This meant that if you were focused on a Windows standard edit control when NVDA was started, text selection changes would not be spoken until the focus had changed at least once.

Last Week in NVDA

Last week, I continued work on implementing braille display support. Early in the week, I introduced code to move the caret to the next or previous line when scrolling the display if it cannot be scrolled any further. I fixed a bug that Mick found in liblouis. Mick and I discussed how to handle the review cursor with regard to braille, although no code has been implemented yet. We spent some time investigating a crash in the Windows version of brltty/brlapi which has been bothering us for weeks. Although we now understand exactly how to reproduce it, we unfortunately don't know how to fix it. My week was divided by an extremely pleasant, relaxing two day holiday with my fiancée.

Mick continued his rather difficult work on the virtual buffer library. We spent several hours on Friday discussing a rather mind boggling piece of code which Mick had been struggling with for days, but we're hoping we finally have it straightened out now. :) He added the ability for the review cursor to review the text of a virtual buffer, rather than just reviewing the internal text of the object, which is not always useful to the user. This means that you can now navigate the buffer hierarchically using object navigation and the review cursor will move to the text at that point in the buffer. Mick also fixed a bug in the speaking of text selections which caused the selection to be read as two chunks instead of one in certain cases.

Last Week in NVDA

First of all, NVDA 0.6p2 is now almost at 6000 downloads (5973 at time of writing)! I'm amazed that it's continuing to increase by almost 1000 downloads a week.

I neglected to mention in my last update that Peter Vágner, primarily known for his fantastic work as our internationalisation coordinator (but also involved in other development), implemented initial code to move the mouse to the character under the review cursor in certain editable text controls. Previously, NVDA could only move the cursor to the centre of the current navigator object. This enhancement allows users to click on specific characters or the character under the cursor, which is necessary in certain situations. It may also be useful for communicating a specific point in a document to sighted observers.

Last week, I primarily continued my work on implementing braille display support in NVDA. When Mick attempted to test the work so far, we discovered that the liblouis Python bindings developed by Eitan Isaacson for Orca misbehave quite severely in Windows Vista. I spent hours on this issue and still could not fathom why this occurs, as they work fine for me in Windows XP and obviously work fine in Linux. I couldn't find anything in the code or build options that should cause problems under Windows Vista. We ended up developing our own bindings using ctypes. This will probably be easier in the longrun anyway, as maintaining and building Python C extensions can be tedious, especially under Windows. I spent quite some time working on some bugs in liblouis. During the week, liblouis 1.3.9 was released, which, among other changes, fixes some issues affecting NVDA which I raised not long before. Thanks, John! Towards the end of the week, I did some more work related to braille and editable text controls, as well as fixing some annoying bugs. My last piece of work for the week was implementing a very basic braille settings dialog, which currently allows the user to choose the braille display and translation table to be used.

As well as helping me to test braille support, Mick continued his refactoring of the virtual buffer library which I described in my last update. He is making steady progress, but there is still quite a bit to be done before a new version of the library containing these changes can be released.

This Week in NVDA

During the arduous task of exasperatedly scouring logs, searching tickets and racking my brains in order to construct my previous, infrequent progress reports, I have promised myself several times that I will endeavour to write more frequent (perhaps even weekly!) progress updates to make the process somewhat less painful. Unfortunately, as is far too common for me in such matters, I've never ended up doing this. Still, there's no time like the present, and if I start now, I might even be able to keep it up.

This last week has been quite mind boggling for both Mick and I, although quite exciting for me in particular. I finally started the eagerly awaited task of implementing support for braille displays in NVDA late last week and have spent the majority of this week continuing this work. Frustratingly, much of the week was spent designing and implementing the core framework which I couldn't test in any realistic, practical situation. However, on Friday, I was finally able to see some of this work come to practical fruition. While certainly not ready for general usage, NVDA can now track the focus on a braille display, displaying the focus object and appropriate ancestors as it changes. You can scroll the display back and forward, and cursor routing keys can be used to activate objects. Where the focus is an editable text field, NVDA can display the text and track the caret, indicating (and optionally blinking) the caret in the appropriate position on the display. In these fields, cursor routing keys can be used to route the caret to the associated position. There is a long way still to go, but it's certainly very exciting to finally be well on the way to supporting braille displays in NVDA. NVDA uses the liblouis braille translation library, which allows for both contracted and uncontracted braille and includes tables for many braille codes. A driver is included for BRLTTY, which supports the vast majority of braille displays.

Meanwhile, Mick has been delving into the depths of the virtual buffer library once again. While investigating the task of implementing support for text formatting, he decided that the core design of the library needed to be restructured and simplified somewhat. Although the current code serves very well, it is not very object oriented and the way it handles text is somewhat convoluted at best, making changes and enhancements difficult. During this week, he has almost completed this rather daunting redesign and has also been taking the opportunity to document the code as he goes. These changes should not be noticeable to users once the work is done, but they will certainly make future work on the library much simpler. I too worked briefly on the virtual buffer library to write some utility code and fix an unexpected bug I discovered.

On another note, NVDA 0.6p2 is fast approaching 5000 downloads! :) It's at 4935 as I write this.

General Progress Update

As usual, a great deal has happened in the last few months. Perhaps the most exciting happening for NVDA users was the release of NVDA 0.6p2, which we believe is a major step forward in stability and functionality for NVDA. As such, NVDA 0.6p2 is now the recommended release for most users. The old stable release, NVDA 0.5, is no longer recommended. This release followed the NVDA hack fest in June, which, as well as a lot of other important discussion, was when the decision to make this release was made.

Many people have asked how many times NVDA has been downloaded. We were obviously quite curious about this ourselves, but we never had a reliable way to count downloads, so we had no idea. Thus, just prior to the release of 0.6p2, I set up a download counter for NVDA releases. We were quite pleasantly astonished by the results. At the time of this writing, since 0.6p2 was released on 7 August, it has been downloaded 3640 times. On average, that's around 1000 downloads per week! It should be noted that this includes downloads of both the installer and the portable release and many users probably download both. The increase is obviously slowing now that the release has been available for a few weeks, but we were still pretty impressed. We honestly had no idea that the count would be this high. Thanks to all who have downloaded! :) The counter also tracks other information such as the country and browser of downloaders, but I haven't generated any statistics for those details yet.

After the release, I spent some time preparing for a presentation on NVDA for Info Vision 08. Info Vision 08 was an exhibition on assistive technology for the blind, visually impaired, deafblind and hearing and visually impaired held at the 7th General Assembly for the World Blind Union in Switzerland. The presentation, which I gave via Skype on 21 August, was quite successful, attracting a decent amount of interest. We will hopefully be able to make a recording available for download some time soon.

In terms of NVDA development, Mick and I have been working on several noteworthy changes to NVDA. We have been doing a lot of this work in different branches of the code, which enables us to make changes which may severely break some functionality without worrying about breaking the main code base used by users. The first of these involved changes to NVDA's audio output code, used primarily by the in-built eSpeak synthesiser. Aside from minor performance and stability improvements, these changes mean that if NVDA is set to use the default Windows output device, it will switch to the new default device if the default device changes. For example, NVDA can switch to a USB audio device automatically when it is connected. Also, the last chunk of audio is no longer cut off when using NVDA with eSpeak on a remote desktop server. This branch was merged into the main code base not long after 0.6p2 was released.

In another branch, we are developing support for multiple input desktops. This will allow NVDA to read secure screens such as the Windows logon screen, the Windows security screen and the UAC (user account control) dialogs in Windows Vista. This must be done quite differently for Windows XP and Vista, but we are working on solutions for both operating systems. So far, the work is looking quite promising and has already received positive feedback from some testers, but is not yet ready for most users.

In the past few weeks, Mick embarked on a major restructure of NVDA's document formatting code. While most of these changes are not particularly noticeable to the user, they will allow for simpler, more elegant additions to formatting support in future, including the ability to support it in virtual buffers. Also, formatting can now be queried and reported automatically in IAccessible2 text controls, including spelling errors in Mozilla Firefox and Thunderbird. This code was merged into the main code base a couple of days ago. Mick is now working on the virtual buffer library and will eventually implement support for formatting, which will complete the work for the Mozilla web access grant.

NVDA's virtual buffer pass through mode, which is equivalent to forms mode or similar in other screen readers, is a point of some controversy for many users. Users must enable virtual buffer pass through when they wish to interact directly with a control and then disable it to resume browsing the document. In terms of useability, one of the reasons for these dual modes of operation relates to quick navigation keys. A user needs to be able to disable the single letter quick navigation keys to type properly into a control. Also, the screen reader needs to have a way to determine when the cursor keys should move the real cursor in a form field and when they should move the virtual cursor. However, screen readers such as Orca and Serotek System Access have used a single mode of operation right from the start. Increasing requests from our users, followed by the introduction of auto forms mode in the recently released JAWS 10 public beta, motivated us to further investigate and work on this feature in NVDA in order to bring it in line with the majority of modern screen readers. Thus, I have been working on automatic virtual buffer pass through over the last couple of weeks. Again, the work is promising, but not yet complete.

Outside of NVDA, there has been some other noteworthy news over the past few months. 17 June saw the official release of Mozilla Firefox 3.0. This was an exciting release for NVDA users, as Firefox 3 includes some major accessibility enhancements which NVDA requires to provide its excellent access to Firefox. Also, the WebVisum Firefox extension was announced in July. WebVisum is a free accessibility extension which sports features such as community driven tagging and page enhancements, automated CAPTCHA solving (yay!), helper functions for easier page navigation, and numerous under the hood page tweaks designed to help screen reader users. Its user community is growing rapidly, and it of course works very well with NVDA! :) Marco Zehe wrote an excellent review of WebVisum.

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 [ReleaseStatus 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 [MiscellaneousDependencies 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 [MiscellaneousDependencies 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 [MiscellaneousDependencies 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 [MiscellaneousDependencies 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 [MiscellaneousDependencies 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.

  • Posted: 2007-07-25 21:13
  • Author: jteh
  • Categories: (none)
  • Comments (0)