information flow diagram

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.