![]() The logo for NonVisual Desktop Access | |
Original author(s) | Michael Curran |
---|---|
Developer(s) | NV Access and contributors |
Initial release | 2006 |
Stable release | 2024.3
/ 19 September 2024 |
Repository | github |
Written in | Python, C++ |
Operating system | Microsoft Windows |
Available in | 62 languages |
List of languages
| |
Type | Screen reader |
License | GNU General Public License version 2 |
Website | nvaccess |
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]
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.
References
- ^ AFB. "Screen Reading Technology". Retrieved 21 May 2019.
- ^ 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.
- ^ Rowena (2018-04-24). "NV Access: Interview and Review". www.top10-websitehosting.co.uk. Retrieved 14 May 2019.
- ^ "A SCREEN READER FOR EVERYONE: WHY THE WORLD NEEDS NVDA". Media Access Australia. 2012-03-26. Retrieved 26 March 2012.
- ^ Miles, Janelle. "Being blind didn't stop these inventors from sharing internet vision". The Courier Mail. Retrieved 21 May 2019.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ a b "Screen Reader User Survey #10". WebAIM. Retrieved 23 February 2024.
- ^ "ONExSENSE: Michael Curran & James Teh at TEDxBrisbane". www.youtube.com. Archived from the original on 2021-12-14.
- ^ 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.
- ^ 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.
- ^ 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) - ^ Fraser, Andrew Kidd. "Software by the blind, for the blind". Contact Magazine. The University of Queensland. Retrieved 18 May 2021.
- ^ 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.
- ^ 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.
- ^ a b "What's New in NVDA". nvaccess.org. Retrieved 2019-05-07.
- ^ "About NVDA". nvaccess.org. 2017-07-05. Retrieved 2019-05-07.
- ^ "NVDA 2009.1 beta, what's in it for Firefox users? – Marco's Accessibility Blog". Marcozehe.de. 2009-10-27. Retrieved 2016-04-01.
- ^ WebAim. "Survey of Web Accessibility Practitioners #3 Results". Web AIM Web accessibility in Mind. Retrieved 23 February 2024.
- ^ 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.
- ^ de Ruijter, Leonard. "Braille framework". GitHub. Retrieved 18 May 2019.
- ^ "NVDA Development Snapshots". Nvaccess.org. Retrieved 2019-05-07.
- ^ "NVDA日本語版 ダウンロードと説明". www.nvda.jp. Retrieved 2023-07-08.