NVDA
NVDA (Non Visual Desktop Access) is an open source screen reader for Microsoft Windows which enables blind and vision impaired people to use computers. A screen reader is basically a layer on the top of the operating system which intercepts every input and output and presents it to the user in a useful way either in audio or braille format.
visit website

information flow diagram

infographics explaining the information flow in nvda

How it works ?

NVDA fetches information about GUI widgets, textual data, events, user interactions and OS events with the help of:

Accessibility APIs: These are special purpose APIs that provide information about the graphical widgets such as name, type/role, description, value, states, etc. Accessibility APIs also provide events to allow assistive technologies to monitor object's properties changes. Accessibility APIs include Microsoft Active Accessibility (MSAA), IAccessible2, Java Access Bridge and UI Automation.

Native APIs: If application does not expose sufficient information via accessibility APIs but expose information via native APIs (not specific to accessibility) then these APIs can be used. For ex: Win32

Application Specific APIs: A lot of applications also provide APIs of their own to expose information about the components and events of the application. For example COM (Component Object Model) API for Microsoft Excel.

OS Functions: Windows OS provides many functions to obtain system information and perform tasks. Information that can be obtained includes the class name of a window, the current foreground window, window location, process or thread ID.

NVDA Features

  • Open Source s/w- NVDA is open source, that is, it is available for free to users. Also users can create modules of their own and use them.
  • Braille- provides output to user in Braille format
  • Speech- provides output to user in audio format
  • Indian Languages- provides support for 12 Indian languages
  • Portable- NVDA can be installed directly on to your computer, but it has the ability to run entirely from a USB stick or other portable media.
  • Speech Engines - is bundled with eSpeak, a free multi-lingual speech synthesizer. Additionally, it can use both SAPI 4 and SAPI 5 speech engines.

System Requirements

NVDA runs on both 32-bit and 64-bit editions of Microsoft Windows XP or later. NVDA has no additional hardware requirements beyond those of the operating system and requires around 50 MB of disk space.

NVDA is bundled with eSpeak, a free multi-lingual speech synthesizer. Additionally, NVDA can use both SAPI 4 and SAPI 5 speech engines.

Papers and Publications

Title : Microsoft Excel ChartsTM Accessibility: An Affordable and Effective Solution
Proceedings of the 3rd International Workshop on "Digitization and E-Inclusion in Mathematics and Science 2016" (DEIMS2016)
Siddhartha Gupta, Manshul V Belani, Dinesh Kaushal, and M. Balakrishnan