Skip to Content

Nonvisual Desktop Access

Delphi Programmer Says Freedom Scientific Does Not Play Nice with the Mainstream Developer Community

July 3, 2008 • Darrell Shandrow Hilliker

We already know that Freedom Scientific’s JAWS end user license agreement is not friendly to mainstream developers and testers as they work to implement accessibility into their products, services and web sites. As a follow on to this concern, we now hear from Craig Stuntz who reports that no developer program exists for those who have purchased JAWS for this critical purpose. In his most recent blog article, he writes:

One would think that the makers of JAWS would want software producers to test their products with JAWS. But according to a salesperson for Freedom Scientific, there is no developer program for the tool. JAWS is moderately expensive — about $900 — but this is not a barrier for us. What we would really like is to have access to a defect reporting system for JAWS and early access to future versions of the software.

We in the connected online blind community very much do want to see developers striving to improve the accessibility of their applications! The accessibility or inaccessibility of technology makes the difference between our inclusion or exclusion from participation in critical life activities such as those involving education and employment. We urge mainstream developers to continue their efforts using screen readers from companies and open source projects that actively invite and request participation from the mainstream developer community:

We ask all mainstream developers to increase the accessibility of their software and to do so in the most favorable economic manner. Spending a thousand dollars on a screen reader for testing purposes is unnecessary. Download free evaluation copies from companies with more friendly license agreements toward developers or take advantage of free open source alternatives. Accessibility need not break the bank. We’re not asking you to go out of business. Instead, we are just asking for the reasonable accomodations that can afford us the opportunity to learn, work and participate in leisure activities.

Nonvisual Desktop Access (NVDA) Version 0.5 Released

June 6, 2007 • Darrell Shandrow Hilliker

The NVDA developers have released version 0.5 of this open source screen reader. It is now available on the project’s download page. Check out the release notes for this new version.

Changes since r425:

  • Added Czech language files thanks to Tomas Valusek.
  • Added Swedish language files thanks to Daniel Innala.
  • NVDA now has a built-in synthesizer called eSpeak, developed by Jonathan Duddington. It is very responsive and lite-weight, and has support for many different languages. Sapi synthesizers can still be used, but eSpeak will be used by default. eSpeak does not depend on any special software to be installed, so it can be used with NVDA on any computer, on a USB thumb drive, or anywhere. For more info on eSpeak, or to find other versions, go to
  • NVDA now uses the built-in eSpeak synthesizer by default.
  • The built-in eSpeak synthesizer will now start in the language NVDA is set to, unless another voice has previously been chosen.
  • Fix bug where the wrong character was being announced when pressing delete in Internet Explorer / Outlook Express editable panes.
  • Added support for more edit fields in Skype.
  • VirtualBuffers only get loaded when focus is on the window that needs to be loaded. This fixes some problems when the preview pane is turned on in Outlook Express.
  • Added commandline arguments to NVDA:

    • -m, –minimal: do not play startup/exit sounds and do not show the interface on startup if set to do so.
    • -q, –quit: quit any other already running instance of NVDA and then exit.
    • -s, –stderr-file fileName: specify where NVDA should place uncaught errors and exceptions.
    • -d, –debug-file fileName: specify where NVDA should place debug messages.
    • -c, –config-file: specify an alternative configuration file
    • -h, -help: show a help message listing commandline arguments.
  • Fixed bug where punctuation symbols would not be translated to the appropriate language, when using a language other than english, and when speak typed characters was turned on.
  • Added Slovak language files thanks to Peter Vagner.
  • Added a Virtual Buffer settings dialog and a Document Formatting settings dialog, from Peter Vagner.
  • Added French translation thanks to Michel Such.
  • Added a script to toggle beeping of progress bars on and off (insert+u). Contributed by Peter Vagner.
  • Made more messages in NVDA be translatable for other languages. This includes script descriptions when in keyboard help.
  • Added a find dialog to the virtualBuffers (internet Explorer and Firefox). Pressing control+f when on a page brings up a dialog in which you can type some text to find. Pressing enter will then search for this text and place the virtualBuffer cursor on this line. Pressing f3 will also search for the next occurance of the text.
  • When speak typed characters is turned on, more characters should be now spoken. Technically, now ascii characters from 32 to 255 can now be spoken.
  • Renamed some control types for better readability. Editable text is now edit, outline is now tree view and push button is now button.
  • When arrowing around list items in a list, or tree view items in a tree view, the control type (list item, tree view item) is no longer spoken, to speed up navigation.
  • Has Popup (to indicate that a menu has a submenu) is now spoken as submenu.
  • Where some languages use control and alt (or altGR) to enter a special character, NVDA now will speak these characters when speak typed characters is on.
  • Fixed some problems with reviewing static text controls.
  • Added Translation for Traditional Chinese, thanks to Coscell Kao.
  • Re-structured an important part of the NVDA code, which should now fix many issues with NVDA’s user interface (including settings dialogs).
  • Added Sapi4 support to NVDA. Currently there are two sapi4 drivers, one based on code contributed by Serotek Corporation, and one using the ActiveVoice.ActiveVoice com Interface. Both these drivers have issues, see which one works best for you.
  • Now when trying to run a new copy of NVDA while an older copy is still running will cause the new copy to just exit. This fixes a major problem where running multiple copies of NVDA makes your system very unusable.
  • Renamed the title of the NVDA user interface from NVDA Interface to NVDA.
  • Fixed a bug in Outlook Express where pressing backspace at the start of an editable message would cause an error.
  • Added patch from Rui Batista that adds a script to report the current battery status on laptops (insert+shift+b).
  • Added a synth driver called Silence. This is a synth driver that does not speak anything, allowing NVDA to stay completely silent at all times. Eventually this could be used along with Braille support, when we have it.
  • Added capitalPitchChange setting for synthesizers thanks to J.J. Meddaugh.
  • Added patch from J.J. Meddaugh that makes the toggle report objects under mouse script more like the other toggle scripts (saying on/off rather than changing the whole statement).
  • Added spanish translation (es) contributed by Juan C. buo.
  • Added Hungarian language file from Tamas Gczy.
  • Added Portuguese language file from Rui Batista.
  • Changing the voice in the voice settings dialog now sets the rate, pitch and volume sliders to the new values according to the synthesizer, rather than forcing the synthesizer to be set to the old values. This fixes issues where a synth like eloquence or viavoice seems to speek at a much faster rate than all other synths.
  • Fixed a bug where either speech would stop, or NVDA would entirely crash, when in a Dos console window.
  • If support for a particular language exists, NVDA now automatically can show its interface and speak its messages in the language Windows is set to. A particular language can still be chosen manualy from the user interface settings dialog as well.
  • Added script ‘toggleReportDynamicContentChanges’ (insert+5). This toggles whether new text, or other dynamic changes should be automatically announced. So far this only works in Dos Console Windows.
  • Added script ‘toggleCaretMovesReviewCursor’ (insert+6). This toggles whether the review cursor should be automatically repositioned when the system caret moves. This is useful in Dos console windows when trying to read information as the screen is updating.
  • Added script ‘toggleFocusMovesNavigatorObject’ (insert+7). This toggles whether the navigator object is repositioned on the object with focus as it changes.
  • Added some documentation translated in to various languages. So far there is French, Spannish and Finish.
  • Removed some developer documentation from the binary distribution of NVDA, it is only now in the source version.
  • Fixed a possible bug in Windows Live Messanger and MSN Messenger where arrowing up and down the contact list would cause errors.
  • New messages are now automatically spoken when in a conversation using Windows Live Messenger. (only works for English versions so far)
  • The history window in a Windows Live Messenger conversation can now be read by using the arrow keys. (Only works for English versions so far)
  • Added script ‘passNextKeyThrough’ (insert+f2). Press this key, and then the next key pressed will be passed straight through to Windows. This is useful if you have to press a certain key in an application but NVDA uses that key for something else.
  • NVDA no longer freezes up for more than a minute when opening very large documents in MS Word.
  • Fixed a bug where moving out of a table in MS Word, and then moving back in, caused the current row/column numbers not to be spoken if moving back in to exactly the same cell.
  • Increasing and decreasing rate scripts can no longer take the rate above 100 or below 0.
  • If there is an error with a language when choosing it in the User Interface Settings dialog, a message box will alert the user to the fact.*NVDA now asks if it should save configuration and restart if the user has just changed the language in the User Interface Settings Dialog. NVDA must be restarted for the language change to fully take effect.
  • If a synthesizer can not be loaded, when choosing it from the synthesizer dialog, a message box alerts the user to the fact.
  • When loading a synthesizer for the first time, NVDA lets the synthesizer choose the most suitable voice, rate and pitch parameters, rather than forcing it to defaults it thinks are ok. This fixes a problem where Eloquence and Viavoice sapi4 synths start speaking way too fast for the first time.

Let’s All Get Behind Nonvisual Desktop Access!

March 8, 2007 • Darrell Shandrow Hilliker

There is a new screen reader on the scene. It is called Nonvisual Desktop Access. The coolest aspect of this new screen reader is not only that it is free of charge but, also and more important, it is completely open source. This means that anyone with the requisite computer programming skill and the needed free software development tools installed on their computer can make changes to the code comprising the screen reader. I strongly feel that it is time for a bit of a shake up on the access technology scene, and NVDA could just possibly provide that for us.

At this time, NVDA relies on Active Accessibility, Common Object Model, Document Object Model and similar technologies in order to obtain and present information to blind users. It contains no off-screen model, since it is currently not able to take advantage of Windows display hooks. It is my hope that NVDA will, one day, have an OSM and many other items on a very long wish list. That can happen only if qualified individuals become actively involved in the ongoing development of this potentially revolutionary new screen access solution. In order to acquire off-screen model capabilities, for instance, NVDA needs significant code contributions from programmers experienced in the implementation of GDI and similar Windows hooking techniques. Nonvisual Desktop Access is written in the Python programming language. Please learn more about the development of NVDA and get involved in bringing this tool to greatness within the blind community!