NonVisual Desktop Access

Last updated
NVDA
Original author(s) Michael Curran
Developer(s) NV Access and contributors
Initial release2006;18 years ago (2006)
Stable release
2024.1 / 2 April 2024;1 day ago (2024-04-02)
Repository github.com/nvaccess/nvda
Written inPython, C++
Operating system Microsoft Windows
Available in62 languages
List of languages
  • Afrikaans
  • Albanian
  • Amharic
  • Arabic
  • Aragonese
  • Bulgarian
  • Burmese
  • Catalan
  • Central Kurdish
  • Chinese (Simplified, China)
  • Chinese (Traditional, Hong Kong SAR)
  • Chinese (Traditional, Taiwan)
  • Croatian
  • Czech
  • Danish
  • Dutch
  • English
  • Finnish
  • French
  • Galician
  • Georgian
  • German
  • German (Switzerland)
  • Greek
  • Hebrew
  • Hindi
  • Hungarian
  • Icelandic
  • Indonesian
  • Irish
  • Italian
  • Japanese
  • Kannada
  • Korean
  • Kyrgyz
  • Lithuanian
  • Macedonian
  • Mongolian
  • Nepali
  • Northern Kurdish
  • Norwegian Bokmål
  • Norwegian Nynorsk
  • Persian
  • Polish
  • Portuguese (Brazil)
  • Portuguese (Portugal)
  • Punjabi
  • Romanian
  • Russian
  • Serbian (Latin)
  • Slovak
  • Slovenian
  • Somali
  • Spanish
  • Spanish (Colombia)
  • Swedish
  • Tamil
  • Thai
  • Turkish
  • Ukrainian
  • Urdu
  • Vietnamese
Type Screen reader
License GNU General Public License version 2
Website nvaccess.org

NonVisual Desktop Access (NVDA) is a free and open-source, portable screen reader [1] for Microsoft Windows. [2] The project was started by Michael Curran in 2006. [3]

Contents

NVDA is programmed in Python. It utilizes accessibility APIs such as UI Automation, Microsoft Active Accessibility, IAccessible2 and Java Access Bridge, to access and present information to the user. It is licensed under the GNU General Public License version 2.

History

Concerned by the high cost of commercial screen readers, in April 2006, Michael Curran began writing a Python-based screen reader with Microsoft SAPI as its speech engine. It provided support for Microsoft Windows 2000 onwards, and provided screen reading capabilities such as basic support for some third-party software and web browsing. Towards the end of 2006, Curran named his project Nonvisual Desktop Access (NVDA) and released version 0.5 the following year. Throughout 2008 and 2009, several versions of 0.6 appeared, featuring enhanced web browsing, support for more programs, braille display output, and improved support for more languages. To manage continued development of NVDA, Curran, along with James Teh, founded NV Access in 2007. [4] [5]

NVDA's features and popularity continued to grow. [6] 2009 saw support for 64-bit versions of Windows as well as greater program stability in 2010. Major code restructuring to support third-party modules, coupled with basic support for Windows 8, became available in 2011. Throughout 2012, NVDA gained improved support for Windows 8, ability to perform automatic updates, included add-ons manager to manage third-party add-ons, gained improved support for entering East Asian text and introduced touchscreen support, the first of its kind for third-party screen readers for Windows. NVDA gained support for Microsoft PowerPoint in 2013 and was updated in 2014 to support PowerPoint 2013; NVDA also added enhanced WAI-ARIA support that same year. Also in 2013, NV Access introduced a restructured method of reviewing screen text, and introduced a facility to manage profiles for applications, as well as improving access to Microsoft Office and other office suites in 2014.

Accessibility of mathematical formulas can be an issue for blind and visually impaired persons. [7] [8] In 2015, NVDA gained support for MathML through MathPlayer, [9] along with improved support for Mintty, the desktop client for Skype, and charts in Microsoft Excel, and the ability to lower background audio was introduced in 2016. Also in 2015, NVDA became one of the first screen readers to support Windows 10 and added support for Microsoft Edge in an experimental capacity.

In 2023–2024, NVDA was the most popular desktop/laptop screen reader in common use and the second-most popular primary screen reader throughout the world in a survey by WebAIM. [10] In 2013 Michael Curran and James Teh presented a talk on NVDA at TEDx Brisbane. [11] It is especially popular in developing countries [12] as being free to download and use makes it accessible to many blind and visually impaired people who would otherwise not have access to the internet. [13] [14]

In 2020 NVDA was featured in the University of Queensland Contact Magazine. [15]

NVDA can be used with steganography based software to provide a textual description of pictures. [16]

Features and accessibility API support

NVDA uses eSpeak as its integrated speech synthesizer. It also supports the Microsoft Speech platform synthesiser, ETI Eloquence and also supports SAPI synthesizers. Output to braille displays [17] is supported officially from Version 0.6p3 onward. [18]

Besides general Windows functionality, NVDA works with software such as Microsoft office applications, WordPad, Notepad, Windows Media Player, web browsers such as Mozilla Firefox, Google Chrome, Internet Explorer, and Microsoft Edge. It supports most email clients such as Outlook, Mozilla Thunderbird, and Outlook Express. NVDA also works with most functions of Microsoft Word, Microsoft PowerPoint and Microsoft Excel. [19] The free office suites LibreOffice and OpenOffice.org are also supported.

Since early 2009, NVDA supports the WAI-ARIA standard for Accessible Rich Internet Applications, to facilitate better accessibility of web applications for blind users. [18] [20]

In 2023–2024, the screen reader user survey by WebAIM found NVDA to be the most popular screen reader worldwide in terms of common usage and the second-most popular primary screen reader (behind JAWS); 37.7% of survey participants used it as a primary screen reader, while 65.6% of participants used it often. [10] Screen readers can be used to test the accessibility of software and websites. NVDA is the primary screen reader of choice by accessibility practitioners. [21] [22]

Technical features

NVDA is organized into various subsystems, including the core loop, add-ons manager, app modules, event handler and input and output handlers, along with modules to support accessibility APIs such as Microsoft Active Accessibility. NVDA also features various graphical user interfaces of its own powered by wxPython, such as various preference dialogs, and setup and update management dialogs.

NVDA uses objects to represent elements in an application such as menu bars, status bars and various foreground windows. Various information about an object such as its name, value and screen coordinates are gathered by NVDA through accessibility APIs exposed by an object, such as through UIA (User Interface Automation). The gathered information is passed through various subsystems, such as speech handler and presented to the user in speech, braille [23] and via on-screen window. NVDA also provides facilities to handle events such as key presses, name changes and when an application gains or loses focus.

NVDA provides facilities to examine an application's object hierarchy and implement ways to enhance accessibility of a program. It provides dedicated commands to move through object hierarchy within an application, as well as an interactive python console to perform focus manipulation, monitoring objects for events and test code for improving accessibility of an application to be packaged in an app module.

Development model

From 2006 to 2013, NVDA's source code was managed via Bazaar, with NV Access switching to Git in 2013, citing development progress with Bazaar. The developers also took the opportunity to modify the release schedule to happen at regular intervals to prevent delay in releasing an official release and to make the release time frame predictable.

In addition to official releases, nightly snapshot builds are also available for testing. Similar to the release process for the Linux kernel, NVDA snapshots are available in beta and alpha branches, with special topic branches created from time to time. NV Access describes the beta branch as a chance for users to gain early access to new features, alpha branch as bleeding-edge code for possible inclusion in the upcoming release, and topic branches for developing a major feature or to prepare for official release (rc branch). [24] Some third-party developers also maintain specific forks, including language-specific versions of NVDA [25] or to offer public preview for a feature under active development.

While development is primarily led by NV Access, code, documentation and translation contributions come from users and other developers around the world.

Related Research Articles

<span class="mw-page-title-main">Assistive technology</span> Assistive devices for people with disabilities

Assistive technology (AT) is a term for assistive, adaptive, and rehabilitative devices for people with disabilities and the elderly. Disabled people often have difficulty performing activities of daily living (ADLs) independently, or even with assistance. ADLs are self-care activities that include toileting, mobility (ambulation), eating, bathing, dressing, grooming, and personal device care. Assistive technology can ameliorate the effects of disabilities that limit the ability to perform ADLs. Assistive technology promotes greater independence by enabling people to perform tasks they were formerly unable to accomplish, or had great difficulty accomplishing, by providing enhancements to, or changing methods of interacting with, the technology needed to accomplish such tasks. For example, wheelchairs provide independent mobility for those who cannot walk, while assistive eating devices can enable people who cannot feed themselves to do so. Due to assistive technology, disabled people have an opportunity of a more positive and easygoing lifestyle, with an increase in "social participation", "security and control", and a greater chance to "reduce institutional costs without significantly increasing household expenses." In schools, assistive technology can be critical in allowing students with disabilities to access the general education curriculum. Students who experience challenges writing or keyboarding, for example, can use voice recognition software instead. Assistive technologies assist people who are recovering from strokes and people who have sustained injuries that affect their daily tasks.

<span class="mw-page-title-main">Refreshable braille display</span> Device for displaying braille characters

A refreshable braille display or braille terminal is an electro-mechanical device for displaying braille characters, usually by means of round-tipped pins raised through holes in a flat surface. Visually impaired computer users who cannot use a standard computer monitor can use it to read text output. Deafblind computer users may also use refreshable braille displays.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Computer accessibility</span> Ability of a computer system to be used by all people

Computer accessibility refers to the accessibility of a computer system to all people, regardless of disability type or severity of impairment. The term accessibility is most often used in reference to specialized hardware or software, or a combination of both, designed to enable the use of a computer by a person with a disability or impairment.

<span class="mw-page-title-main">Screen reader</span> Assistive technology that converts text or images to speech or Braille

A screen reader is a form of assistive technology (AT) that renders text and image content as speech or braille output. Screen readers are essential to people who are blind, and are useful to people who are visually impaired, illiterate, or have a learning disability. Screen readers are software applications that attempt to convey what people with normal eyesight see on a display to their users via non-visual means, like text-to-speech, sound icons, or a braille device. They do this by applying a wide variety of techniques that include, for example, interacting with dedicated accessibility APIs, using various operating system features, and employing hooking techniques.

<span class="mw-page-title-main">Gnopernicus</span> Assistive technology

Gnopernicus was a free GNOME desktop application that provided Assistive Technologies (AT) for blind and visually impaired users. Gnopernicus is no longer actively developed and has been replaced by Orca in GNOME.

<span class="mw-page-title-main">Screen magnifier</span>

A screen magnifier is software that interfaces with a computer's graphical output to present enlarged screen content. By enlarging part of a screen, people with visual impairments can better see words and images. This type of assistive technology is useful for people with some functional vision; people with visual impairments and little or no functional vision usually use a screen reader.

<span class="mw-page-title-main">Perkins Brailler</span> Braille embossing typewriter

The Perkins Brailler is a "braille typewriter" with a key corresponding to each of the six dots of the braille code, a space key, a backspace key, and a line space key. Like a manual typewriter, it has two side knobs to advance paper through the machine and a carriage return lever above the keys. The rollers that hold and advance the paper have grooves designed to avoid crushing the raised dots the brailler creates.

Narrator is a screen reader in Microsoft Windows. Developed by Professor Paul Blenkhorn in 2000, the utility made the Windows operating system more accessible for blind and visually impaired users.

JAWS is a computer screen reader program for Microsoft Windows that allows blind and visually impaired users to read the screen either with a text-to-speech output or by a refreshable Braille display. JAWS is produced by the Blind and Low Vision Group of Freedom Scientific.

<span class="mw-page-title-main">Virtual desktop</span> User interfaces describe ways in which virtual space of a computers desktop is expanded

In computing, a virtual desktop is a term used with respect to user interfaces, usually within the WIMP paradigm, to describe ways in which the virtual space of a computer's desktop environment is expanded beyond the physical limits of the screen's display area through the use of software. This compensates limits of the desktop area and is helpful in reducing clutter of running graphical applications.

ZoomText is a screen magnifier for Microsoft Windows developed by Ai Squared which was acquired by Freedom Scientific in 2016. The first version was released for DOS in 1988, and the first version for Windows was released in 1991. ZoomText is available in two editions: ZoomText Magnifier and ZoomText Magnifier/Reader, which includes a built-in screen reader.

<span class="mw-page-title-main">GPS for the visually impaired</span>

Since the Global Positioning System (GPS) was introduced in the late 1980s there have been many attempts to integrate it into a navigation-assistance system for blind and visually impaired people.

<span class="mw-page-title-main">Orca (assistive technology)</span> Accessibility software

Orca is a free and open-source, flexible, extensible screen reader from the GNOME project for individuals who are blind or visually impaired. Using various combinations of speech synthesis and braille, Orca helps provide access to applications and toolkits that support AT-SPI.

Dolphin Computer Access is a British company based in Worcester that designs, creates and sells software for people who are blind or have vision and print impairments, dyslexia and other specific learning difficulties. The company was set up in 1986 and now has offices in the United Kingdom, United States, Sweden and Norway. Through the use of Dolphin's screen enlargers, screen readers and braille output, users can operate word processors, spreadsheets, databases and the internet. The company's customers include Microsoft, the Inland Revenue, the BBC, the Royal Air Force, New College Worcester and Vodafone.

Braille technology is assistive technology which allows blind or visually impaired people to read, write, or manipulate braille electronically. This technology allows users to do common tasks such as writing, browsing the Internet, typing in Braille and printing in text, engaging in chat, downloading files and music, using electronic mail, burning music, and reading documents. It also allows blind or visually impaired students to complete all assignments in school as the rest of their sighted classmates and allows them to take courses online. It enables professionals to do their jobs and teachers to lecture using hardware and software applications. The advances in Braille technology are meaningful because blind people can access more texts, books, and libraries, and it also facilitates the printing of Braille texts.

Basic4ppc is a programming language originally for Pocket PC handheld computers running Windows Mobile operating system, by Anywhere Software. Since 2014, B4x was renamed, and currently, 2023, supports multiple devices and their OS, including desktop and mobile solutions with development adaptions for these environments. The language is based on a BASIC-like syntax, taking advantage of Microsoft's .NET technology, to allow additional libraries, graphical user interface design of windows forms, rapid application development (RAD), and .NET framework compatible compilation. The language implements a unique way of adding objects to a program without being object-oriented. Its advantages are simplicity, development pace and the integration with .NET framework. A special version of the integrated development environment (IDE) allows developing straight onto the Windows Mobile device or. With the demise of Windows Mobile operating system and the devices running it Basic4PPC came to the end of its life in about 2012. For owners of Basic4PPC it remains a useful Windows-desktop BASIC compiler as it runs code directly in the Windows environment and it can compile a project to a Windows 'exe' file for use as a Windows program.

<span class="mw-page-title-main">TeamTalk</span> Conferencing system which people use to communicate on the Internet using VoIP and video streaming.

TeamTalk is a conferencing system which people use to communicate on the Internet using VoIP and video streaming.

<span class="mw-page-title-main">Joshua Miele</span> American research scientist specializing in accessible technology design

Joshua A. Miele is an American research scientist who specializes in accessible technology design. Since 2019, Miele has been Principal Accessibility Researcher at Amazon Lab126, a subsidiary of Amazon that works on hardware products. Miele previously conducted research on tactile graphics and auditory displays at the Smith-Kettlewell Eye Research Institute in California for fifteen years. He has been blind since early childhood.

References

  1. AFB. "Screen Reading Technology" . Retrieved 21 May 2019.
  2. Kirboyun, Sevgi (2018). "Computer Aided System for Users with Visual Impairments". 2018 IEEE/ACS 15th International Conference on Computer Systems and Applications (AICCSA). pp. 1–2. doi:10.1109/AICCSA.2018.8612898. hdl:10150/631977. ISBN   978-1-5386-9120-5. S2CID   58671401.
  3. Rowena (2018-04-24). "NV Access: Interview and Review". www.top10-websitehosting.co.uk. Retrieved 14 May 2019.
  4. "A SCREEN READER FOR EVERYONE: WHY THE WORLD NEEDS NVDA". Media Access Australia. 2012-03-26. Retrieved 26 March 2012.
  5. Miles, Janelle. "Being blind didn't stop these inventors from sharing internet vision". The Courier Mail. Retrieved 21 May 2019.
  6. Calvo, Rocío; Iglesias, Ana; Moreno, Lourdes (2014). "Accessibility barriers for users of screen readers in the Moodle learning content management system". Universal Access in the Information Society. 13 (3): 315–327. doi:10.1007/s10209-013-0314-3. hdl: 10016/19760 . S2CID   14984236.
  7. Maćkowski, Michał; Brzoza, Piotr; Żabka, Marek; Spinczyk, Dominik (2018). "Multimedia platform for mathematics' interactive learning accessible to blind people". Multimedia Tools and Applications. 77 (5): 6191–6208. doi: 10.1007/s11042-017-4526-z .
  8. Su, W; Cai, C; Wu, J (2018). "The accessibility of mathematical formulas for the visually impaired in China". Artificial Intelligence and Symbolic Computation. Lecture Notes in Computer Science. Vol. 11110. pp. 237–242. doi:10.1007/978-3-319-99957-9_18. ISBN   978-3-319-99956-2.
  9. Noble, Steve; Soiffer, Neil; Dooley, Sam; Lozano, Edgar; Brown, Dan (2018). "Accessible Math: Best Practices After 25 Years of Research and Development". Journal on Technology & Persons with Disabilities. 6. hdl:10211.3/203002.
  10. 1 2 "Screen Reader User Survey #10". WebAIM . Retrieved 23 February 2024.
  11. "ONExSENSE: Michael Curran & James Teh at TEDxBrisbane". www.youtube.com. Archived from the original on 2021-12-14.
  12. Susanto; Nanda, Deri Sis (2018). "Teaching and Learning English for Visually Impaired Students: An Ethnographic Case Study". English Review: Journal of English Education. 7 (1): 83–92. doi: 10.25134/erjee.v7i1.1530 .
  13. Muhammad, Aslam; Ahmad, Warda; Tooba, Maryam; Anwar, Sidra (2015). "Assistive Technology for Disabled Persons". Proceedings of the 2015 International Conference on Recent Advances in Computer Systems. pp. 74–80. doi: 10.2991/racs-15.2016.12 . ISBN   978-94-6252-146-9.
  14. Senjam, Senjam, Suraj Singh; Foster, Allen; Bascaran, Covadonga; Vashist, Praveen; Gupta, Vivek (2019). "Assistive technology for students with visual disability in schools for the blind in Delhi" (PDF). Disability and Rehabilitation: Assistive Technology. 15 (6). Taylor & Francis: 663–669. doi:10.1080/17483107.2019.1604829. PMID   31012740. S2CID   128362037.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  15. Fraser, Andrew Kidd. "Software by the blind, for the blind". Contact Magazine. The University of Queensland. Retrieved 18 May 2021.
  16. Nengroo, Ab Shaqoor; Kuppusamy, K. S (2018). "Accessible images (AIMS): a model to build self-describing images for assisting screen reader users". Universal Access in the Information Society. 17 (3): 607–619. doi:10.1007/s10209-017-0607-z. S2CID   29188594.
  17. Russomanno, A; O’Modhrain, S; Gillespie, R.B; Rodger, M.W.M (2015). "Refreshing Refreshable Braille Displays". IEEE Transactions on Haptics. 8 (3): 287–97. doi:10.1109/TOH.2015.2423492. PMID   25879973. S2CID   30154632.
  18. 1 2 "What's New in NVDA". nvaccess.org. Retrieved 2019-05-07.
  19. "About NVDA". nvaccess.org. 2017-07-05. Retrieved 2019-05-07.
  20. "NVDA 2009.1 beta, what's in it for Firefox users? – Marco's Accessibility Blog". Marcozehe.de. 2009-10-27. Retrieved 2016-04-01.
  21. WebAim. "Survey of Web Accessibility Practitioners #3 Results". Web AIM Web accessibility in Mind. Retrieved 23 February 2024.
  22. Cordeiro, P; Conrad, C; Cheiran, J (2017). "Redesigning towards accessibility: from a Facebook trivia game to an educational, accessible web game" (PDF). Simpósio Brasileiro de Jogos e Entretenimento Digital. Brazil, Curiti. Retrieved 21 May 2019.
  23. de Ruijter, Leonard. "Braille framework". GitHub . Retrieved 18 May 2019.
  24. "NVDA Development Snapshots". Nvaccess.org. Retrieved 2019-05-07.
  25. "NVDA日本語版 ダウンロードと説明". www.nvda.jp. Retrieved 2023-07-08.