What's new in this version:
Enhanced sound management:
A new Audio Settings panel:
- This can be opened with NVDA+control+u
- An option in Audio settings to have the volume of NVDA sounds and beeps follow the volume setting of the voice you are using
- An option in Audio settings to separately configure the volume of NVDA sounds
- The settings to change audio output device and toggle audio ducking have been moved to the new Audio settings panel from the Select Synthesizer dialog. These options will be removed from the "select synthesizer" dialog in 2024.1.
- NVDA will now output audio via the Windows Audio Session API (WASAPI), which may improve the responsiveness, performance and stability of NVDA speech and sounds
Note: WASAPI is incompatible with some add-ons. Compatible updates are available for these add-ons, please update them before updating NVDA. Incompatible versions of these add-ons will be disabled when updating NVDA:
- Tony's Enhancements version 1.15 or older
- NVDA global commands extension 12.0.8 or older
- NVDA is now able to continually update the result when performing optical character recognition (OCR), speaking new text as it appears
- To enable this functionality, enable the option "Periodically refresh recognized content" in the Windows OCR category of NVDA's settings dialog
- Once enabled, you can toggle speaking new text by toggling report dynamic content changes (pressing NVDA+5)
- When using automatic detection of braille displays, it is now possible to opt-out drivers from detection from the braille display selection dialog
- A new option in Document Formatting settings, "Ignore blank lines for line indentation reporting"
- Added an unassigned gesture to navigate by tab groupings in browse mode
- When the text in a terminal changes without updating the caret, the text on a braille display will now properly update when positioned on a changed line. This includes situations where braille is tethered to review.
- More BRLTTY key bindings are now mapped to NVDA commands
- learn: toggle NVDA input help
- prefmenu: open the NVDA menu
- prefload/prefsave: Load/save NVDA configuration
- time: Show time
- say_line: Speak the current line where the review cursor is located
- say_below: Say all using review cursor
- The BRLTTY driver is only available when a BRLTTY instance with BrlAPI enabled is running
- The advanced setting to enable support for HID braille has been removed in favor of a new option. You can now disable specific drivers for braille display auto detection in the braille display selection dialog.
- Add-on Store: Installed add-ons will now be listed in the Available Add-ons tab, if they are available in the store
- Some shortcut keys have been updated in the NVDA menu
- Fixed crash in Microsoft Word when Document formatting options "report headings" and "report comments and notes" were not enabled
- In Word and Excel, text alignment will be correctly reported in more situations
- Fixes the announcement of some cell formatting shortcuts in Excel
- NVDA will no longer jump back to the last browse mode position when opening the context menu in Microsoft Edge
- NVDA is once again able to read context menus of downloads in Microsoft Edge
- The braille cursor and selection indicators will now always be updated correctly after showing or hiding respective indicators with a gesture
- Fixed bug where Albatross braille displays try to initialize although another braille device has been connected
- Fixed bug where unchecking "include incompatible add-ons" would result in incompatible add-ons still being listed in the store
- Add-ons blocked due to compatibility reasons should now be filtered correctly when toggling the filter for enabled/disabled status
- Fixed bug preventing overridden enabled incompatible add-ons being upgraded or replaced using the external install tool
- Fixed bug where NVDA would not speak until restarted after add-on installation
- Fixed bug where add-ons cannot be installed if a previous download failed or was cancelled
- Fixed issues with handling incompatible add-ons when upgrading NVDA
- NVDA once again announces calculation results in the Windows 32bit calculator on Server, LTSC and LTSB versions of Windows
- NVDA no longer ignores focus changes when a nested window (grand child window) gets focus
- Fixed a potential cause of crashing during NVDA startup
Changes for Developers:
- Please refer to the developer guide for information on NVDA's API deprecation and removal process
- braille.handler.handleUpdate and braille.handler.handleReviewMove have been changed in order not to update instantly. Before this change, when either of these methods was called very often, this would drain many resources. These methods now queue an update at the end of every core cycle instead. They should also be thread safe, making it possible to call them from background threads.
- Added official support to register custom braille display drivers in the automatic braille display detection process. Consult the braille.BrailleDisplayDriver class documentation for more details. Most notably, the supportsAutomaticDetection attribute must be set to True and the registerAutomaticDetection classmethod must be implemented.
- braille.BrailleHandler.handlePendingCaretUpdate is now deprecated with no public replacement. It will be removed in 2024.1.
- Importing the constants xlCenter, xlJustify, xlLeft, xlRight, xlDistributed, xlBottom, xlTop from NVDAObjects.window.excel is deprecated. Use XlHAlign or XlVAlign enumerations instead.
- The mapping NVDAObjects.window.excel.alignmentLabels is deprecated. Use the displayString methods of XlHAlign or XlVAlign enumerations instead.
- bdDetect.addUsbDevices and bdDetect.addBluetoothDevices have been deprecated. Braille display drivers should implement the registerAutomaticDetection classmethod instead. That method receives a DriverRegistrar object on which the addUsbDevices and addBluetoothDevices methods can be used.
- The default implementation of the check method on BrailleDisplayDriver uses bdDetect.driverHasPossibleDevices for devices that are marked as thread safe. Starting from NVDA 2024.1, in order for the base method to use bdDetect.driverHasPossibleDevices, the supportsAutomaticDetection attribute must be set to True as well.