diff --git a/source/UIAUtils.py b/source/UIAUtils.py index 3500a01e58b..0daddef018f 100644 --- a/source/UIAUtils.py +++ b/source/UIAUtils.py @@ -302,4 +302,4 @@ def shouldUseUIAConsole(setting=None): # ignore it. # It does not implement caret/selection, and probably has no # new text events. - return isWin10(1809) + return isWin10(2103) diff --git a/source/gui/settingsDialogs.py b/source/gui/settingsDialogs.py index 337d13220e0..5a9fb54ff3e 100644 --- a/source/gui/settingsDialogs.py +++ b/source/gui/settingsDialogs.py @@ -2377,7 +2377,7 @@ def __init__(self, parent): self.consoleCombo = UIAGroup.addLabeledControl(consoleComboText, wx.Choice, choices=consoleChoices) self.consoleCombo.Bind( wx.EVT_CHOICE, - self.enableConsolePasswordsCheckBox, + self.enableTerminalCheckBoxes, self.consoleCombo ) curChoice = self.consoleVals.index( @@ -2402,14 +2402,13 @@ def __init__(self, parent): self.speakPasswordsCheckBox = terminalsGroup.addItem(wx.CheckBox(self, label=label)) self.speakPasswordsCheckBox.SetValue(config.conf["terminals"]["speakPasswords"]) self.speakPasswordsCheckBox.defaultValue = self._getDefaultValue(["terminals", "speakPasswords"]) - self.enableConsolePasswordsCheckBox() # Translators: This is the label for a checkbox in the # Advanced settings panel. label = _("Use the new t&yped character support in legacy Windows consoles when available") self.keyboardSupportInLegacyCheckBox=terminalsGroup.addItem(wx.CheckBox(self, label=label)) self.keyboardSupportInLegacyCheckBox.SetValue(config.conf["terminals"]["keyboardSupportInLegacy"]) self.keyboardSupportInLegacyCheckBox.defaultValue = self._getDefaultValue(["terminals", "keyboardSupportInLegacy"]) - self.keyboardSupportInLegacyCheckBox.Enable(winVersion.isWin10(1607)) + self.enableTerminalCheckBoxes() # Translators: This is the label for a group of advanced options in the # Advanced settings panel @@ -2506,12 +2505,13 @@ def __init__(self, parent): ] self.Layout() - def enableConsolePasswordsCheckBox(self, evt=None): - return self.speakPasswordsCheckBox.Enable( - shouldUseUIAConsole(self.consoleVals[ - self.consoleCombo.GetSelection() - ]) - ) + def enableTerminalCheckBoxes(self, evt=None): + UIAEnabled = shouldUseUIAConsole(self.consoleVals[ + self.consoleCombo.GetSelection() + ]) + self.speakPasswordsCheckBox.Enable(UIAEnabled) + self.keyboardSupportInLegacyCheckBox.Enable(not UIAEnabled and winVersion.isWin10(1607)) + def onOpenScratchpadDir(self,evt): path=config.getScratchpadDir(ensureExists=True) diff --git a/source/winVersion.py b/source/winVersion.py index efcbefced67..1d6e4789e80 100644 --- a/source/winVersion.py +++ b/source/winVersion.py @@ -38,6 +38,7 @@ def isUwpOcrAvailable(): 1903: 18362, 1909: 18363, 2004: 19041, + 2103: 19603 # Update this once stable } diff --git a/user_docs/en/userGuide.t2t b/user_docs/en/userGuide.t2t index 46275843edc..2ab32801737 100644 --- a/user_docs/en/userGuide.t2t +++ b/user_docs/en/userGuide.t2t @@ -1836,7 +1836,7 @@ It does not affect the modern Windows Terminal. In Windows 10 version 1709, Microsoft [added support for its UI Automation API to the console https://devblogs.microsoft.com/commandline/whats-new-in-windows-console-in-windows-10-fall-creators-update/], bringing vastly improved performance and stability for screen readers that support it. In situations where UI Automation is unavailable or known to result in an inferior user experience, NVDA's legacy console support is available as a fallback. The Windows Console support combo box has three options: -- Automatic: Uses UI Automation in consoles on Windows 10 version 1809 and later. This option is recommended and set by default. +- Automatic: Uses UI Automation in consoles on Windows 10 version 2103 and later. This option is recommended and set by default. - Prefer UIA: Uses UI Automation in consoles if available, even on Windows versions with incomplete or buggy implementations. While this limited functionality may be useful (and even sufficient for your usage), use of this option is entirely at your own risk and no support for it will be provided. - Legacy: UI Automation in the Windows Console will be completely disabled, so the legacy fallback will always be used. -