NVDA (NonVisual Desktop Access) 是适用于 Microsoft Windows 的免费开源屏幕阅读器。 它由 NV Access 与全球贡献者社区合作开发。 借助 NVDA 等工具，视力有问题的人使用计算机不再是问题。 该程序是一个免费的解决方案，旨在充当视障人士使用计算机的通用网关，而无需太多麻烦。要了解有关 NVDA 的更多信息，请访问主要的 NV Access 网站。
NVDA 允许盲人和视力受损的人访问 Windows 操作系统和许多第三方应用程序并与之交互。
内置语音合成器，支持 80 多种语言
无需安装即可完全从 USB 闪存驱动器或其他便携式媒体运行
翻译成 54 种语言
支持现代 Windows 操作系统，包括 32 位和 64 位变体
能够在 Windows 登录期间和安全屏幕上运行
支持常见的可访问性界面，例如 Microsoft Active Accessibility、Java Access Bridge、IAccessible2 和 UI 自动化
支持 Windows 命令提示符和控制台应用程序
NVDA 与 eSpeak NG 捆绑在一起，这是一款免费的开源多语言语音合成器。有关 NVDA 支持的其他语音合成器的信息可以在支持的语音合成器部分找到。
对于拥有可刷新盲文显示器的用户，NVDA 可以将其信息输出为盲文。 还支持通过盲文键盘进行非缩略和缩略盲文输入。 此外，NVDA 默认会自动检测许多盲文显示器。 有关支持的盲文显示器的信息，请参阅支持的盲文显示器部分。
What’s new in NVDA 2023.1
March 27, 2023
A new option has been added, “Paragraph Style” in “Document Navigation”This can be used with text editors that do not support paragraph navigation natively, such as Notepad and Notepad++.
There is a new global command to report the destination of a link, mapped to NVDA+k.
Support for annotated web content (such as comments and footnotes) has improvedPress NVDA+d to cycle through summaries when annotations are reported (e.g”has comment, has footnote”).
Tivomatic Caiku Albatross 46/80 braille displays are now supported.
Support for ARM64 and AMD64 versions of Windows has improved.
There are many bug fixes, notably Windows 11 fixes.
eSpeak, LibLouis, Sonic rate boost and Unicode CLDR have been updatedThere are new Georgian, Swahili (Kenya) and Chichewa (Malawi) braille tables.
This release breaks compatibility with existing add-ons
Microsoft Excel via UI Automation: Automatic reporting of column and row headers in tables(#14228)
Note: This is referring to tables formatted via the “Table” button on the Insert pane of the Ribbon”First Column” and “Header Row” in “Table Style Options” correspond to column and row headers respectively.
This is not referring to screen reader specific headers via named ranges, which is currently not supported via UI Automation
An unassigned script has been added to toggle delayed character descriptions(#14267)
Added an experimental option to leverage the UIA notification support in Windows Terminal to report new or changed text in the terminal, resulting in improved stability and responsivity(#13781)
Consult the user guide for limitations of this experimental option
On Windows 11 ARM64, browse mode is now available in AMD64 apps such as Firefox, Google Chrome and 1Password(#14397)
A new option has been added, “Paragraph Style” in “Document Navigation”This adds support for single line break (normal) and multi line break (block) paragraph navigationThis can be used with text editors that do not support paragraph navigation natively, such as Notepad and Notepad++(#13797)
The presence of multiple annotations are now reportedNVDA+d now cycles through reporting the summary of each annotation target for origins with multiple annotation targetsFor example, when text has a comment and a footnote associated with it(#14507, #14480)
Added support for Tivomatic Caiku Albatross 46/80 braille displays(#13045)
New global command: Report link destination (NVDA+k)Pressed once will speak/braille the destination of the link that is in the navigator objectPressing twice will show it in a window, for more detailed review(#14583)
New unmapped global command (Tools category): Report link destination in a windowSame as pressing NVDA+k twice, but may be more useful for braille users(#14583)
Updated LibLouis braille translator to 3.24.0(#14436)
Major updates to Hungarian, UEB, and Chinese bopomofo braille.
Support for the Danish braille standard 2022.
New braille tables for Georgian literary braille, Swahili (Kenya) and Chichewa (Malawi)
Updated Sonic rate boost library to commit 1d70513(#14180)
CLDR has been updated to version 42.0(#14273)
eSpeak NG has been updated to 1.52-dev commit f520fecb(#14281, #14675)
Fixed reporting of large numbers(#14241)
Java applications with controls using the selectable state will now announce when an item is not selected rather than when the item is selected(#14336)
Windows 11 fixes:
NVDA will announce search highlights when opening Start menu(#13841)
On ARM, x64 apps are no longer identified as ARM64 applications(#14403)
Clipboard history menu items such as “pin item” can be accessed(#14508)
In Windows 11 22H2 and newer, it is again possible to use mouse and touch interaction to interact with areas such as the system tray overflow window and “Open With” dialog(#14538, #14539)
Suggestions are reported when typing an @mention in in Microsoft Excel comments(#13764)
In the Google Chrome location bar, suggestion controls (switch to tab, remove suggestion etc) are now reported when selected(#13522)
When requesting formatting information, colors are now explicitly reported in Wordpad or log viewer, rather than only “Default color”(#13959)
In Firefox, activating the “Show options” button on GitHub issue pages now works reliably(#14269)
The date picker controls in Outlook 2016 / 365 Advanced search dialog now report their label and value(#12726)
ARIA switch controls are now actually reported as switches in Firefox, Chrome and Edge, rather than checkboxes(#11310)
NVDA will automatically announce the sort state on an HTML table column header when changed by pressing an inner button(#10890)
A landmark or region’s name is always automatically spoken when jumping inside from outside using quick navigation or focus in browse mode(#13307)
When beep or announce ‘cap’ for capitals is enabled with delayed character descriptions, NVDA no longer beeps or announces ‘cap’ twice(#14239)
Controls in tables in Java applications will now be announced more accurately by NVDA(#14347)
Some settings will no longer be unexpectedly different when used with multiple profiles(#14170)
The following settings have been addressed:
Line indentation in Document formatting settings.
Cell borders in doc formatting settings
Show messages in braille settings
Tether Braille in braille settings
In some rare cases, these settings used in profiles may be unexpectedly modified when installing this version of NVDA.
Please check these options in your profiles after upgrading NVDA to this version
Emojis should now be reported in more languages(#14433)
The presence of an annotation is no longer missing in braille for some elements(#13815)
Fixed an issue where config changes not save correctly when changing between a “Default” option and the value of the “Default” option(#14133)
When configuring NVDA there will always be at least one key defined as an NVDA key(#14527)
When accessing the NVDA menu via the notification area, NVDA will not suggest a pending update anymore when no update is available(#14523)
Remaining, elapsed and total time is now reported correctly for audio files over a day long in foobar2000(#14127)
In web browsers such as Chrome and Firefox, alerts such as file downloads are shown in braille in addition to being spoken(#14562)
Bug fixed when navigating to the first and last column in a table in Firefox (#14554)
When NVDA is launched with –lang=Windows parameter, it is again possible to open NVDA’s General settings dialog(#14407)
NVDA no longer fails to continue reading in Kindle for PC after turning the page(#14390)
Changes for Developers:
Note: this is an Add-on API compatibility breaking releaseAdd-ons will need to be re-tested and have their manifest updatedPlease refer to the developer guide for information on NVDA’s API deprecation and removal process.
System tests should now pass when run locally on non-English systems(#13362)
In Windows 11 on ARM, x64 apps are no longer identified as ARM64 applications(#14403)
It is no longer necessary to use SearchField and SuggestionListItem UIA NVDAObjects in new UI Automation scenarios, where automatic reporting of search suggestions, and where typing has been exposed via UI Automation with the controllerFor patternThis functionality is now available generically via behaviours.EditableText and the base NVDAObject respectively(#14222)
The UIA debug logging category when enabled now produces significantly more logging for UIA event handlers and utilities(#14256)
NVDAHelper build standards updated(#13072)
Now uses the C++20 standard, was C++17.
Now uses the /permissive- compiler flag which disables permissive behaviors, and sets the /Zc compiler options for strict conformance
Some plugin objects (e.gdrivers and add-ons) now have a more informative description in the NVDA python console(#14463)
NVDA can now be fully compiled with Visual Studio 2022, no longer requiring the Visual Studio 2019 build tools(#14326)
More detailed logging for NVDA freezes to aid debugging(#14309)
The singleton braille._BgThread class has been replaced with hwIo.ioThread.IoThread(#14130)
A single instance hwIo.bgThread (in NVDA core) of this class provides background i/o for thread safe braille display drivers.
This new class is not a singleton by design, add-on authors are encouraged to use their own instance when doing hardware i/o
The processor architecture for the computer can be queried from winVersion.WinVersion.processorArchitecture attribute(#14439)
New extension points have been added(#14503)
It is possible to set useConfig to False on supported settings for a synthesizer driver(#14601)
API Breaking Changes:
These are breaking API changesPlease open a GitHub issue if your Add-on has an issue with updating to the new API.
The configuration specification has been altered, keys have been removed or modified:
In [documentFormatting] section (#14233):
reportLineIndentation stores an int value (0 to 3) instead of a boolean
reportLineIndentationWithTones has been removed.
reportBorderStyle and reportBorderColor have been removed and are replaced by reportCellBorders
In [braille] section (#14233):
noMessageTimeout has been removed, replaced by a value for showMessages.
messageTimeout cannot take the value 0 anymore, replaced by a value for showMessages.
autoTether has been removed; tetherTo can now take the value “auto” instead
In [keyboard] section (#14528):
useCapsLockAsNVDAModifierKey, useNumpadInsertAsNVDAModifierKey, useExtendedInsertAsNVDAModifierKey have been removedThey are replaced by NVDAModifierKeys
The NVDAHelper.RemoteLoader64 class has been removed with no replacement(#14449)
The following functions in winAPI.sessionTracking are removed with no replacement(#14416, #14490)
It is no longer possible to enable/disable the braille handler by setting braille.handler.enabledTo disable the braille handler programatically, register a handler to braille.handler.decide_enabled(#14503)
It is no longer possible to update the display size of the handler by setting braille.handler.displaySizeTo update the displaySize programatically, register a handler to braille.handler.filter_displaySizeRefer to brailleViewer for an example on how to do this(#14503)
There have been changes to the usage of addonHandler.Addon.loadModule(#14481)
loadModule now expects dot as a separator, rather than backslashFor example “lib.example” instead of “libexample”.
loadModule now raises an exception when a module can’t be loaded or has errors, instead of silently returning None without giving information about the cause
The following symbols have been removed from appModules.foobar2000 with no direct replacement(#14570)
The following are no longer singletons – their get method has been removedUsage of Example.get() is now Example()(#14248)
NVDAObjects.UIA.winConsoleUIA.WinTerminalUIA is deprecated and usage is discouraged(#14047)
config.addConfigDirsToPythonPackagePath has been movedUse addonHandler.packaging.addDirsToPythonPackagePath instead(#14350)
braille.BrailleHandler.TETHER_* are deprecatedUse configFlags.TetherTo.*.value instead(#14233)
utils.security.postSessionLockStateChanged is deprecatedUse utils.security.post_sessionLockStateChanged instead(#14486)
NVDAObject.hasDetails, NVDAObject.detailsSummary, NVDAObject.detailsRole has been deprecatedUse NVDAObject.annotations instead(#14507)
keyboardHandler.SUPPORTED_NVDA_MODIFIER_KEYS is deprecated with no direct replacementConsider using the class config.configFlags.NVDAKey instead(#14528)
gui.MainFrame.evaluateUpdatePendingUpdateMenuItemCommand has been deprecatedUse gui.MainFrame.SysTrayIcon.evaluateUpdatePendingUpdateMenuItemCommand instead(#14523)