Dark Mode
Makes NVDA's own interface dark: the NVDA menu, the Settings dialog, the Add-on Store, message boxes and every other NVDA window.
The NVDA License window (NVDA menu > Help > License) and the other windows NVDA shows as web pages are dark as well.
NVDA's help pages go dark too. The User Guide, the Commands Quick Reference, What's New and every add-on's help open in your browser as dark copies, with light text on dark grey, tables that keep their contrast, every keyboard shortcut in a box with a purple outline, and file names and other code highlighted in dark purple. NVDA's own files are never changed: the dark copies live in your temporary folder, and with dark mode off NVDA opens its own pages again.
Colours
The Dark Mode category in NVDA menu > Preferences > Settings has the colour settings. They show as you choose them: the Settings dialog and every other open NVDA window take the new look at once, so the dialog is its own preview. OK or Apply keeps it; Cancel or Escape puts the saved look back. Any background goes with any accent.
- Background: Dark grey (the usual Windows dark grey, the default), Black, Lighter grey, or a very dark Red, Orange, Green, Teal, Blue, Purple or Pink. It fills dialogs, panels, lists, the Python console and the help pages. Text fields, dropdowns, buttons and their hover colours stay as they are. Popup menus are painted by Windows and keep its dark grey.
- Accent: Blue (the default), Red, Orange, Yellow, Green, Teal, Purple or Pink. It colours the focus rings, the outline on the highlighted menu item, the selected row of a list, the thumb of a slider, and the check marks of check boxes and radio buttons. The selected row is a deep shade of the accent with white text; checked boxes and radio dots are a lighter shade of it, and slider thumbs lighter still. Check boxes and radio buttons are drawn by the add-on, with a light grey border in every state and a bold white tick or dot when checked.
- Bright contrast for selected rows: the selected row of a list becomes the accent colour itself, with black text: the classic yellow-on-black look with the Yellow accent.
- Bright contrast for checkboxes and slider handles: checked boxes, radio dots and slider thumbs likewise, with black marks.
- Focus outline thickness: a slider from 1 to 5 pixels (2 by default) for the focus rings and the menu outline. The ring around a control sits just outside it, so a text field keeps its border and a button its edge.
- Reset to Dark Mode defaults: puts every setting in the category except the on/off switch back to its default (dark grey, blue, neither bright contrast, 2 pixels, restart when turned off), previewed at once like any other change.
Focus and selection
Keyboard focus is shown as a solid ring in the accent colour on every control, including check boxes, dropdowns, sliders, and the selected row of a list, where Windows would draw a faint dotted rectangle. The highlighted item of a menu gets the same outline, with the keyboard and the mouse alike.
Turning it on and off
Three ways, all equivalent:
- NVDA menu > Preferences > Dark mode: a check item; choosing it switches dark mode on or off immediately.
- NVDA menu > Preferences > Settings > Dark Mode: the check box Use Dark mode for NVDA. Like every NVDA setting, it takes effect when you press OK or Apply.
- A command called Toggles dark mode for NVDA's windows and menus in NVDA's Input Gestures dialog, under the Dark Mode category. It has no key assigned by default.
NVDA says "Dark mode on" or "Dark mode off" when you switch it from the menu or with the command. Turning dark mode off restarts NVDA, so that everything comes back exactly as NVDA draws it on its own. Untick Restart NVDA when dark mode is turned off in the Dark Mode settings category if you would rather it just switched off in place. Dark mode also switches itself off while a Windows High Contrast theme is active.
A stopgap, hopefully
NVDA does not have a dark mode of its own yet. This add-on exists to fill that gap, and the hope is that it is temporary: once NV Access builds a native dark mode into NVDA, this add-on can retire. NVDA issue #16683 is the one to watch.
How it works, and its limits
NVDA's interface is drawn by a toolkit (wxPython) that has no dark mode of its own, so this add-on asks Windows directly, using the same unofficial switches File Explorer and other apps use, and repaints the pieces Windows will not. Because it is a workaround rather than a built-in feature, a few things are worth knowing:
- Some windows may show a brief flash of white before they turn dark. Windows draws a new window light first, and the add-on catches up a moment later; the common dialogs and menus are handled, but a rarely used window can still flash.
- The small progress box shown while checking for updates is drawn by Windows itself and stays light.
- Popup menus keep the hover colours Windows gives dark menus.
- A future Windows or NVDA update could change how some pieces look, since the switches used are unofficial.
The add-on only changes how NVDA's windows are painted, never what the controls are, so everything NVDA announces stays the same.
Licence
Copyright © 2026 Carrie on Accessibility. Free software under the GNU General Public License, version 2.