nvda icon indicating copy to clipboard operation
nvda copied to clipboard

NVDA doesn't read extremely short strings when they're sent to the terminal.

Open TheQuinbox opened this issue 1 year ago • 2 comments

Steps to reproduce:

  1. Start WSL
  2. Run Ed.
  3. Type "a" without the quotes and press enter/
  4. Type "this is a test" without the quotes, and press enter.
  5. Type "=" without quotes, and press enter.

Actual behavior:

Nothing is spoken, even though the number 1 is echoed.

Expected behavior:

NVDA reads this string if its a 3-digit or more number (e.g. if you typed 150 lines or so). This should happen no matter the line count.

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

2022.2

Windows version:

Windows 10 21H2 (64-bit) build 19044.1826

Name and version of other software in use when reproducing the issue:

WSL 2, Ed. Worth nothing that this isn't the only piece of software I've seen this with, its simply the most recent example.

Other information about your system:

Processor AMD Ryzen 9 5950X 16-Core Processor, 3401 Mhz, 16 Core(s), 32 Logical Processor(s) Installed Physical Memory (RAM) 128 GB

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

2022.1 also did this.

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Yes

TheQuinbox avatar Aug 11 '22 03:08 TheQuinbox

potentially related: #13318, #11170

seanbudd avatar Aug 11 '22 04:08 seanbudd

Could you report the version of WSL you are using?

To find your Windows Console's NVDA API level, set "Windows Console support" to "UIA when available", then check the NVDA+F1 log opened from a running Windows Console instance.

seanbudd avatar Aug 11 '22 05:08 seanbudd

Hi, Here's the NVDA+_f1 output: Developer info for navigator object: name: '' role: Role.TERMINAL roleText: None states: State.FOCUSABLE, State.FOCUSED isFocusable: True hasFocus: True Python object: <NVDAObjects.Dynamic_ConsoleControlVWinConsoleUIAEditableTextWithAutoSelectDetectionUIA object at 0x0795AAD0> Python class mro: (<class 'NVDAObjects.Dynamic_ConsoleControlVWinConsoleUIAEditableTextWithAutoSelectDetectionUIA'>, <class 'globalPlugins.consoleToolkit.ConsoleControlV'>, <class 'NVDAObjects.UIA.winConsoleUIA.WinConsoleUIA'>, <class 'NVDAObjects.behaviors.KeyboardHandlerBasedTypedCharSupport'>, <class 'NVDAObjects.behaviors.EnhancedTermTypedCharSupport'>, <class 'NVDAObjects.behaviors.Terminal'>, <class 'NVDAObjects.behaviors.LiveText'>, <class 'NVDAObjects.behaviors.EditableTextWithAutoSelectDetection'>, <class 'NVDAObjects.behaviors.EditableText'>, <class 'editableText.EditableText'>, <class 'NVDAObjects.UIA.UIA'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'documentBase.TextContainerObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <class 'garbageHandler.TrackedObject'>, <class 'object'>) description: '' location: RectLTWH(left=156, top=156, width=993, height=519) value: None TextInfo: <class 'NVDAObjects.UIA.winConsoleUIA.ConsoleUIATextInfoWorkaroundEndInclusive'> appModule: <'appModuleHandler' (appName 'cmd', process ID 2208) at address 18ad610> appModule.productName: 'Microsoft® Windows® Operating System' appModule.productVersion: '10.0.19041.1' appModule.helperLocalBindingHandle: None windowHandle: 791534 windowClassName: 'ConsoleWindowClass' windowControlID: 0 windowStyle: 351207424 extendedWindowStyle: 786704 windowThreadID: 6216 windowText: 'quin@box: /mnt/c/Users/Quin' displayText: '' UIAElement: <POINTER(IUIAutomationElement) ptr=0x63124c8 at 18bcb20> UIA automationID: Text Area UIA frameworkID: UIA runtimeID: (42, 791534, 4, -1) UIA providerDescription: [pid:9380,providerId:0x0 Main(parent link):Microsoft Console Host: Screen Information Text Area (unmanaged:conhost.exe)] UIA className: UIA patterns available: TextPattern, LegacyIAccessiblePattern diffing algorithm: <diffHandler.Difflib object at 0x04D00510> API level: 0 (END_INCLUSIVE)

I have also updated my instructions, so there are less steps, but the result is the same.

TheQuinbox avatar Aug 11 '22 14:08 TheQuinbox

This applies to all EnhancedTermTypedCharSupport objects. For Windows Terminal, it will be resolved by #13781.

codeofdusk avatar Aug 22 '22 07:08 codeofdusk

Update: now that #14047 has been merged, an experimental fix for this is available in NVDA advanced settings. Change "speak new text in Windows Terminal" to "UIA notifications".

codeofdusk avatar Oct 25 '22 18:10 codeofdusk

Hi @codeofdusk, I don't see the option. Where exactly is it located?

TheQuinbox avatar Nov 12 '22 22:11 TheQuinbox

It's in advanced settings in the "terminal programs" section. Immediately after "diff algorithm".

codeofdusk avatar Nov 13 '22 01:11 codeofdusk

The only thing that's in that section is diff algorithm. If i tab, I get Attempt to cancel speech for expired focus events: combo box Default (Yes) collapsed. NVDA 2022.3.2

TheQuinbox avatar Nov 13 '22 11:11 TheQuinbox

This option requires 2023.1.

codeofdusk avatar Nov 13 '22 23:11 codeofdusk

Just tested with the latest alpha build, and yup, all fixed! Thanks for all your work on this!

TheQuinbox avatar Nov 27 '22 14:11 TheQuinbox