An NVDA add-on that extends the built-in delayed character description feature with a configurable delay and an instant description mode.
Description
NVDA includes a "Delayed character descriptions" checkbox in Voice settings. When enabled, NVDA announces the phonetic description of a character (e.g. "alpha" for "a") after a fixed, hardcoded delay when the cursor moves over it.
This add-on extends that feature in two ways:
Configurable delay: A spinbox is added directly below the "Delayed character descriptions" checkbox in the Voice settings panel, both visually and in tab order. You can set the delay in milliseconds (0–5000).
Instant description mode: If the delay is set to 0, the character itself is not announced at all — instead, the phonetic description is spoken immediately. For characters with no phonetic description (punctuation, whitespace, etc.), normal speech rules apply so that other add-ons (such as Phonetic Punctuation) continue to work correctly.
Requirements
NVDA 2026.1 or later
Installation
Download the .nvda-addon file.
Open it with NVDA (double-click or press Enter on it).
Follow the installation prompts and restart NVDA when asked.
Usage
Open NVDA Settings (NVDA+N → Preferences → Settings).
Go to the Voice category.
Check "Delayed character descriptions" if it is not already checked.
The "Description delay (ms, 0=instant)" spinbox will appear directly below the checkbox, both visually and in tab order.
Set your preferred delay:
Value
Behaviour
0
Speak the phonetic description immediately instead of the character.
1–5000
Speak the character first, then speak the phonetic description after the specified number of milliseconds.
Click OK or Apply to save.
Notes
The spinbox is hidden when the "Delayed character descriptions" checkbox is unchecked.
The add-on works alongside other add-ons that patch speech.speakTextInfo (such as BrowserNav and Phonetic Punctuation). The _FakeTextInfo object exposes the obj attribute to maintain compatibility.
The delay value is global and applies to all synthesizers and voices. Use NVDA configuration profiles if you need different values for different synthesizers.
Removed the separate settings category — the delay spinbox is injected directly below the native "Delayed character descriptions" checkbox in the existing Voice settings panel, both visually and in tab order.
Removed the independent "Enable delayed descriptions" checkbox — the add-on now activates only when NVDA's own delayedCharacterDescriptions setting is enabled.
Fixed double announcement — NVDA's own delayed description mechanism is temporarily suppressed while the add-on's timer runs, preventing the description from being spoken twice.
Replaced the keyboard-shortcut instant descriptions mode with a spinbox value of 0.
Removed the dependency on the six library (Python 2/3 compatibility shim, no longer needed).
Added the obj attribute to _FakeTextInfo to prevent AttributeError exceptions raised by add-ons such as Phonetic Punctuation.
The spinbox is hidden when the "Delayed character descriptions" checkbox is unchecked.