An NVDA add-on that automatically announces incoming Discord chat messages as they arrive, without requiring you to navigate away from what you are doing.
Discord is built on Chromium/Electron. NVDA's standard accessibility hooks become unreliable for the message list when focus is in the chat input field. This add-on bypasses that limitation by reading Discord's UI Automation (UIA) tree directly, polling every 500 milliseconds for new messages. When a new message appears, it is spoken immediately at the highest speech priority so it is never missed.
- NVDA 2024.1 or later
- Discord (stable, PTB, or Canary builds)
- Windows 10 or later
- Download the latest
discord_messages_reader-X.X.X.nvda-addonfile from the Releases page. - Open the file. NVDA will prompt you to install it.
- Restart NVDA when prompted.
- Open Discord. The add-on activates automatically.
No configuration is required. Once installed:
- Open a Discord channel or direct message conversation.
- Incoming messages are announced automatically as they arrive.
- Announcements only happen when Discord is the active (foreground) window.
- Typing indicators and status changes are filtered out silently.
NVDA+Ctrl+Shift+D: Toggle automatic announcements on or off.Alt+1: Read the most recent message.Alt+2throughAlt+9: Read the 2nd through 9th most recent message.Alt+0: Read the 10th most recent message.
All gestures appear under Discord Messages Reader in NVDA's Input Gestures dialog and can be rebound there.
- Messages are announced up to 500 milliseconds after they appear in Discord's UI, which is the polling interval.
- The add-on reads the most recently visible message. If several messages arrive in rapid succession during a polling gap, only the last one is announced.
- Automatic announcements only occur when Discord is the foreground application. Use
Alt+1throughAlt+0to catch up on messages received while Discord was in the background.
Discord.exe(stable)DiscordPTB.exe(public test build)DiscordCanary.exe(canary)
Requires Python 3.14 and uv.
git clone https://github.com/blindndangerous/discord-messages-reader.git
cd discord-messages-reader
uv sync --all-extras
uv run python build.py
The distributable add-on file is written to dist/.
uv sync --all-extras
uv run pytest
MIT License. See LICENSE for details.
- blindndangerous - concept, requirements, and testing
- Claude Sonnet (Anthropic) - implementation and architecture
- Codex (OpenAI) - maintenance fixes and test updates