vscode icon indicating copy to clipboard operation
vscode copied to clipboard

A11y_VisualStudioCodeClient_Terminal_ScreenReader: NVDA/JAWS Announces Blank when Using Arrow Keys on Terminal Commands

Open ManishaC1 opened this issue 2 years ago • 2 comments

"Please do not close this bug. This bug should only be closed by TCS, C+AI Accessibility or the Divisional Driver".

GitHub bugs

#A11ySev2; #A11yTCS; #A11yMAS; #DesktopApp; #Visual Studio Code Client; #WCAG1.3.1; #DesktopApp; #BM-VisualStudioCodeClient-Win32-Aug2022; #NVDA; #Win32; #Win11; #A11yeDAD; #ScreenReader; #FTP; #NVDA; #AINotInScope;

Actual:

Upon using the left or right arrow key to navigate the characters in the Terminal command, NVDA announces a blank instead of correctly providing the character feedback.

Expected:

As the arrow keys are pressed, NVDA should announce the characters in the command being navigated.

Environment Details:​

Application Name: Visual Studio Code Version: 1.80.0-insider (user setup) V8: 10.8.168.25-electron.0 Windows 11 22H2 OS build 25869.1000 Screen Reader: NVDA (2023.1)

User Impact:

The incorrect feedback provided by NVDA/JAWS affects the accessibility and usability of the Terminal application for users who rely on screen readers. This behavior hinders their ability to navigate and interact with command-line interfaces effectively.

"Check out Accessibility Insights! - Identify accessibility bugs before check-in and make bug fixing faster and easier."

Attachments:

https://github.com/microsoft/vscode/assets/105198219/8e2b2bad-e04e-4424-ba57-5414199a3f5f

ManishaC1 avatar Jul 03 '23 10:07 ManishaC1

@meganrogge not sure if we're tracking this but we're talked about the fix I had in mind for this which was to synchronize xterm.js' textarea content with the help of shell integration.

Tyriar avatar Jul 03 '23 18:07 Tyriar

This also happened to me when I was trying to edit a recent command in the integrated terminal (weirdly, arrowing on the newly typed command doesn't seem to be an issue). This makes integrated terminal nearly unuseable with the long command (in which typo is very much possible). I have also created the issue here: #185163

pawin35 avatar Jul 06 '23 21:07 pawin35

@meganrogge Verified the issue in insiders 1.82.0 The issue is still repro. Please tell me in which version the issue is fixed. Screenshot (1149)

#Regressed:08-21-23; #PendingInput;

ManishaC1 avatar Aug 21 '23 05:08 ManishaC1

This works as shown here

As the arrow keys are pressed, NVDA should announce the characters in the command being navigated.

Recording 2023-08-22 at 09 31 34

That is, until the terminal loses and then regains focus. That's a separate issue IMO and thus can be handled as a different bug tracked here #190998

meganrogge avatar Aug 22 '23 16:08 meganrogge

@meganrogge I verified the issue in below version of Visual Code Insiders. Version: 1.82.0-insider (user setup)

Issue is still reproing. Please tell me in which version of Visual code Insiders the issue is fixed.

ManishaC1 avatar Aug 30 '23 11:08 ManishaC1

@ManishaC1 when reporting insiders versions you need to go to Help > About and copy out all the version details. In particular the commit and date are needed to identify the insiders version.

Tyriar avatar Aug 30 '23 11:08 Tyriar

This was verified by @jooyoungseo on both windows and mac.

@rperez030 is having issues with it so we're going to meet about that.

meganrogge avatar Aug 30 '23 15:08 meganrogge

I can reproduce the issue using insider version 1.82.0-insider (system setup), commit ebd67244fb2da33ab078bb2baa96106fda29f336. I'm not sure why, but it appears that the issue has been resolved when using VS code inside WSL2 with the bash shell. However, when using VS code on the Windows host with PowerShell as the shell, I still encounter problems when navigating and editing both newly inputted commands and the previous commands recalled from the recent command history.

pawin35 avatar Aug 30 '23 18:08 pawin35

@rperez030 and I met and he showed it not working on windows. I'm guessing this is a conpty issue

meganrogge avatar Aug 30 '23 19:08 meganrogge

which version of windows are you on @pawin35 ?

meganrogge avatar Aug 30 '23 19:08 meganrogge

@meganrogge I use windows 11 Pro Version 22H2 (OS Build 22621.2215)

pawin35 avatar Aug 30 '23 19:08 pawin35

I'm also able to repro on the latest Insiders on Windows using NVDA.

rzhao271 avatar Aug 30 '23 22:08 rzhao271

This is working on Windows for me. (10.0.22621 Build 22621) @rzhao271 which version do you have?

meganrogge avatar Aug 30 '23 22:08 meganrogge

In System > About I see version 22621.2134

Using NVDA on Windows, and with screenreader mode enabled:

  1. In a pwsh integrated terminal type ls -a
  2. Press left and right arrow keys
  3. The announced text is "empty" whenever those arrow keys are pressed.

rzhao271 avatar Aug 30 '23 22:08 rzhao271

@Tyriar

Below are the Environment Details of the latest Visual Studio Insider installed in my system: Version: 1.82.0-insider (user setup) Commit: 35be9bf683eace09796e59d54f1f225bbc3a7866 Date: 2023-08-30T05:33:47.972Z Electron: 25.7.0 ElectronBuildId: 23434598 Chromium: 114.0.5735.289 Node.js: 18.15.0 V8: 11.4.183.29-electron.0 OS: Windows_NT x64 10.0.22621

ManishaC1 avatar Aug 31 '23 04:08 ManishaC1

Yeah I can reproduce now. Seems to have regressed for Windows

meganrogge avatar Aug 31 '23 13:08 meganrogge

currentCommand.commandStartX is undefined for Windows

meganrogge avatar Aug 31 '23 14:08 meganrogge

@meganrogge it may also in the wrong position on Windows, if I remember it's typically at 0. This will get fixed eventually in conpty.

Tyriar avatar Aug 31 '23 14:08 Tyriar

what's odd to me is that it was working for me before

https://github.com/microsoft/vscode/issues/186904#issuecomment-1688550710

meganrogge avatar Aug 31 '23 14:08 meganrogge

I'm not sure when it would be undefined, I guess it may be inconsistent? Command executed does not ensure command started had occurred:

https://github.com/microsoft/vscode/blob/d89cac9ac10d1aa4310e827c458f2bea597685ed/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.ts#L441-L450

Tyriar avatar Aug 31 '23 14:08 Tyriar

We need info on the command line before command execution @Tyriar and for windows, we don't have that currently.

meganrogge avatar Aug 31 '23 14:08 meganrogge

As with a lot of things on Windows ptys you'll need to add some heuristics here. It might work fine to just use commandStartX ?? 0. You could also try add some basic prompt detection for standard pwsh/powershell.exe

Tyriar avatar Aug 31 '23 14:08 Tyriar

To verify, enable terminal.integrated.experimental.syncTextArea. Then follow the steps here. https://github.com/microsoft/vscode/issues/186904#issuecomment-1699945147

meganrogge avatar Aug 31 '23 19:08 meganrogge

@meganrogge

I did as you said. But still the issue is still reproducing. Please help Screenshot (1171)

Environment details: Version: 1.82.0-insider (user setup) Commit: e7756c8870ee1df7360e6624e220534174039b02 Date: 2023-08-31T05:33:59.698Z Electron: 25.7.0 ElectronBuildId: 23434598 Chromium: 114.0.5735.289 Node.js: 18.15.0 V8: 11.4.183.29-electron.0 OS: Windows_NT x64 10.0.22621

NVDA version: 2023.1

ManishaC1 avatar Sep 01 '23 11:09 ManishaC1

you need to update @ManishaC1 you're using an old version

meganrogge avatar Sep 01 '23 13:09 meganrogge

Verified the issue in below environment. Version: 1.82.0-insider (user setup) Commit: dd112ec0243c4b42bb3106e64df1688e242a6559 Date: 2023-09-01T05:33:39.919Z Electron: 25.7.0 ElectronBuildId: 23434598 Chromium: 114.0.5735.289 Node.js: 18.15.0 V8: 11.4.183.29-electron.0 OS: Windows_NT x64 10.0.22621

Issue is fixed.

#Closed; #Regressed:09-04-23;

https://github.com/microsoft/vscode/assets/105198219/3bf9cc14-f8c9-4f0d-91e3-efe785232895

ManishaC1 avatar Sep 04 '23 05:09 ManishaC1