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

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.

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 I demonstrating and talking about NVDA!

the nvda-support email list is now here

Recently a new email list has been created specifically for support questions about NVDA. Please visit:  The nvda-support page for further information. Users are wecome to ask any questions in relation to how to use NVDA, and other users or the project maintainers will be more than happy to answer. However before joining, please note the rules outlined on  The nvda-support page. Look forward to seeing you there.

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!

New Grant from the Mozilla Foundation furthers NVDA

We would like to thank the Mozilla Foundation for providing  NV Access with another grant allowing NVDA to continue and grow. Initially this grant will allow development of much more proper and complete support for ARIA live regions in NVDA. Specifically this work will firstly consist of redesigning NVDA's in-process code, making it less specific to virtual buffers and more generalized so that it will be much easier to add code for such things as live regions. I have started this work already. Secondly support for live regions will be designed within the new in-process framework so that NVDA will be able to appropriately announce changes in live regions found in web documents and applications. Examples of live regions are the message history of a chat application, a value on a score board, or even perhaps subtitles, audio description text, or captions on a video streamed over the web.

What should the next version number be?

We have noticed that some people have been getting a little confused with NVDA's current version numbers. I have also been wondering about them, especially in regards to the closely approaching next stable release.

As a bit of a background: We released NVDA 0.5 in Mid 2007. We then started planning for 0.6. Very early on in the creation of 0.6 we massivly improved support for Mozilla Firefox (introducing the new virtualBuffers). However at the same time we started neglecting the code for Internet Explorer as the NVDA developers mostly used Mozilla Firefox.

In early 2008 we thought it would be good to release a new version, though we knew that Internet Explorer support rather than being better, was getting worse. Because of this we were not willing to release 0.6 until we had fixed these issues, or in fact completely rewritten Internet Explorer support so that it matched the support for Firefox.

We decided to make some "preview" releases of NVDA before 0.6 so that people could try out what we had achieved so far, but with out saying that we had actually achieved all we wanted. In March 2008 we released 0.6p1, in August we released 0.6p2, in December we released 0.6p3 (and because of a few critical issues, we released 0.6p3.1 and 0.6p3.2 over the following months or so). The p in these versions stands for 'preview'.

After 0.6p3.2 we have been able to improve a lot of things in NVDA, such as:

  • Complete rewrite of Internet Explorer support (closely matching Firefox support).
  • Rewrite of Adobe Reader support.
  • Support for Windows Logon and Vista UAC screens.
  • An elements list for web pages allowing you to list links, headings and ARIA landmarks (replaces the older Links List).
  • Support for the UI Automation accessibility API in Windows 7.

Not to also mention the more recent changes which move the location of NVDA's configuration file for portable copies, makes NVDA much more accepting of configuration errors, and allows the loading of custom appModules, brailleDisplayDrivers and synthDrivers from the user's configuration directory. Because of these things, we feel that we are getting rather close to another stable release (a release to fully replace 0.5).

However as the changes are rather huge, and because there have been questions and confusion about our version numbering in the past, we would really like to choose a versioning scheme tat everyone could easily follow, and one that would allow us to communicate the fact that this next release is quite a large step from 0.5, but at the same time trying not to say that its absolutely bullet prooff.

I think we can say we have learnt some lessons from our time developing 0.6. Ones which we definitly must take in to consideration when planning for and numbering future releases. They are:

  • We were perhaps too worried about releasing a new version with regressions from the previous release (e.g. worsening Internet Explorer support).
  • Don't use cryptic letters in the version numbers (pre or preview is much better than p).
  • Don't do a point release of a preview release (e.g. 0.6p3.2) it is just too long and confusing.
  • Be clear about exactly what a release should contain and do not set goals that are unachievable at that point in time.

There are probably other things, but thats just a few of them.

Directly related to the version numbering, there have been two major issues since the preview releases. The first is the confusion with the actual letters and numbers. Other than the user simply being incorrect about the version, it also makes it hard if we are trying to solve bugs etc as the user is not clear about the version number. For 0.6p3 we have seen many different ways users write it. Some are:

  • p6
  • 6.3
  • r6
  • 0.6pl3.

The other major issue is the dreaded "1.0" issue. That is, when are we going to release 1.0.

A long time ago I guess we may have been striving towards this goal, hence the 0.5, 0.6 etc. Eventually we would reach 1.0.

However I think with the way the project has evolved (taking in to account future goals, finances, ability to perform automated testing etc), we are probably better off making releases that are quite stable, but make no promise or hint at where the project may go in the far future. In other words, we sort of want to get past the 1.0 thing, with out actually having to hit it. If we today released a 1.0 I'm very sure people would expect nothing more than perfection (at least in comparison with 0.5 etc).

So... where does that leave us?

Jamie and myself have come up with a few different options for the version numbers of the next and future releases. They are:

  • Change nothing. The next release is 0.6 as we always promised. Advantage is that people will get what we advertized. Disadvantage is that going from 0.6p3.2 to 0.6 may seem backwards to some who don't get the p. Also 0.6 is possibly quite different to what we originally planned.
  • Make the next release 0.7 (skipping 0.6). Advantage is we leave the whole 0.6 thing behind us. Disadvantage is that we are still creeping towards a possible 1.0, plus the 0 suggests an unfinnished product.
  • Make the next release version 7. The 7 is completely arbitrary except for the fact that the next release could have been 0.7 (just drop the 0.). The advantage is we now can work with whole numbers, but we've skipped the 1.0. Disadvantage is that there could be a little confusion to do with why it went from 0.6 to version 7.
  • The next release could be 2009.1. The 2009 is obviously the year, and the 1 means its the first release this year. The advantage is that we completely break away from an incrimental version and instead just base it on the point in time it was released.

With all these versioning schemes, we will still most likely release testing versions before the final release, though we will try and make these rather close in time to the final release. We will also use words like alpha, beta and rc, which are well-known accepted words for test versions.

We would like to gain feedback from people as to which versioning scheme they prefer, and why that versioning scheme works best. Which is the easiest one for you to understand? which one has a better ring to it? which one do you think NVDA would need in order to gain better footing in the industry? We much appreciate any feedback you can give. This includes even perhaps your ideas on a completely different versioning scheme we may not have thought of yet.

Please send your ideas to:  developers@nvda-project.org

Or talk about it on the email lists.

Yahoo! Supports the NVDA Project

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

ALVA BC640/680 Braille Display Driver now in NVDA

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

Future Goals Document Posted

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

A Vision Australia Making a Difference Award goes to NV Access

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

NVDA on Windows Logon, UAC and Other Secure Screens

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

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

UI Automation support and Windows 7 improvements in NVDA snapshots

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

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

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

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

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

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

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

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

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

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

Technical Design Overview Posted

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