Skip to main content

Core Modules

appModuleHandler

Handles application-specific modules.
class
Base class for app modulesProperties:
  • processID (int): Process ID
  • appName (str): Application name
  • processHandle (int): Process handle
  • sleepMode (bool): Whether NVDA sleeps in this app
  • productName (str): Product name from executable
  • productVersion (str): Product version
  • is64BitProcess (bool): Whether process is 64-bit
  • isWindowsStoreApp (bool): Whether this is a Store app
Methods:
  • chooseNVDAObjectOverlayClasses(obj, clsList): Choose overlay classes
  • event_appModule_gainFocus(): Called when app gains focus
  • event_appModule_loseFocus(): Called when app loses focus
function
Get app module for a process
function
Register custom executable-to-module mapping

globalPluginHandler

Handles global plugins.
class
Base class for global pluginsMethods:
  • terminate(): Called when plugin is unloaded
  • chooseNVDAObjectOverlayClasses(obj, clsList): Choose overlay classes
set
Set of currently running global plugins

api

Core API functions for accessing NVDA state.

ui

User interface feedback.

controlTypes

Control roles and states.

scriptHandler

Script decorator and utilities.
decorator
Decorator for defining scripts
Parameters:
  • description (str): User-visible description
  • category (str): Category for Input Gestures
  • gesture (str): Single gesture string
  • gestures (list[str]): Multiple gestures
  • canPropagate (bool): Allow on ancestors
  • bypassInputHelp (bool): Run in input help
  • allowInSleepMode (bool): Run in sleep mode
  • resumeSayAllMode: Resume say all mode
  • speakOnDemand (bool): Speak on-demand

speech

Speech output.

tones

Audio feedback.
tones.py

config

Configuration management.

textInfos

Text access and manipulation.

queueHandler

Thread-safe queue operations.
queueHandler.py

winUser

Windows API functions.
winUser.py

gui

GUI dialogs and utilities.

NVDAObjects Classes

Base Classes

Behaviors

behaviors.py

Events

Common NVDA Object events:
event
Object gained keyboard focus
event
Object lost keyboard focus
event
Focus moved inside container (object is ancestor)
event
Object became foreground window
event
Object’s name changed
event
Object’s value changed
event
Object’s state changed
event
Selection changed in container
event
Caret moved within object
event
Object’s screen location changed

Gesture Identifiers

Keyboard

Braille

Touch

Logging

logging.py

Utility Modules

locationHelper

locationHelper.py

textUtils

textUtils.py

Best Practices

  • Always import from the original module (check source code)
  • Don’t rely on transitive imports
  • Private symbols (starting with _) may change without notice
  • Package pip dependencies with your add-on
  • Use ui.message() for user feedback
  • Use log.debug() for development
  • Use queueHandler for thread safety
  • Cache expensive operations
  • Handle exceptions gracefully

Version Compatibility

Check NVDA version:
version.py