nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.07k stars 624 forks source link

When using NVDA screen reader in VS Code editor, users may encounter inaccurate cursor movement reporting, especially on low-performance computers or laptops in power saving mode. #14851

Open cary-rowen opened 1 year ago

cary-rowen commented 1 year ago

When using NVDA screen reader in VS Code editor, users may encounter inaccurate cursor movement reporting, especially on low-performance computers or laptops in power saving mode. For instance, when quickly moving the cursor right to view a code line character by character, NVDA may report duplicate characters or skip some characters and directly report the next one. Similarly, when quickly moving the cursor up or down to view the code line by line, NVDA may report duplicate lines or misreport the current line as the line after or before. These inaccuracies can make it difficult for users to navigate and edit code efficiently.

Steps to reproduce:

  1. Open a code file in VS Code editor.
  2. Navigate to a code line of your choice.
  3. Quickly press the right arrow to move the cursor character by character or up/down arrow to move the cursor line by line.
  4. Observe the NVDA reporting inaccuracies.

Actual behavior:

Note: This issue is especially noticeable on laptops in power saving mode or on computers with low performance.

Expected behavior:

Ideally, NVDA should report the current line or character accurately and without duplication.

NVDA logs, crash dumps and other attachments:

Navigate the following line of code from left to right character by character and capture the log:

for (int i = 0; i < 10; i++)

log.txt

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

alpha-28130

Windows version:

Windows 10 22H2 (AMD64) build 19045.2846

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

VS Code: 1.76.2(Another bug prevents me from upgrading to the latest version, but the latest version reproduces the issue.)

Other information about your system:

None

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.

This problem is common and I can reproduce it with 2023.1 stable and even older versions.

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

Adriani90 commented 1 year ago

Do you have a braille display connected when reproducing this issue?

cary-rowen commented 1 year ago

@Adriani90 No braille display connected.

If I change the value of "Caret movement timeout" in the advanced settings panel to 150, this problem will be improved, but this will also have the side effect of causing sluggish navigation in some editable controls.

cc @jcsteh do you have any ideas?

Although Narrator was unable to reproduce the issue, Narrator was very sluggish navigating character by character.

At the same time, I also reported this issue to VS Code.

cary-rowen commented 1 year ago

See: microsoft/vscode#180408

brunoprietog commented 1 year ago

I have noticed performance problems when opening VS Code with NVDA active. If after opening VS Code you restart NVDA, there is a big performance improvement, noticeable to me. But anyway, it is annoying to have to restart NVDA every time I open VS Code. Related issue #14446. You could try if restarting NVDA helps at all, as a workaround.

cary-rowen commented 1 year ago

No, restarting NVDA won't do anything for this.

cary-rowen commented 1 year ago

The same phenomenon can also be observed in Putty.

thgcode commented 1 year ago

Reproduced with VSCode Version: 1.78.2 Commit: b3e4e68a0bc097f0ae7907b217c1119af9e03435

Adriani90 commented 11 months ago

@cary-rowen, @thgcode can you reproduce this issue in NVDA 2023.3 Beta1?

cary-rowen commented 11 months ago

@Adriani90

Which fix in 2023.3 do you think has the potential to fix this?

Adriani90 commented 11 months ago

Not specifically in 2023.3, but in 2023.2 actually. I took the one which is as near as ppossible to the next stable version. There was PR #14928 which has been merged after you reported this issue, and possibly other PRs in the meantime.

cary-rowen commented 11 months ago

It can only be said that it has made the situation a little better, but it has not completely solved it. The problem can be reproduced by lowering the value of "Caret movement timeout".

Adriani90 commented 1 month ago

@cary-rowen there were some improvements to caret movements in browsers during last weeks, can you please test whether this issue occurs for you still with NVDA last alpha?

cary-rowen commented 1 month ago

I didn't notice a significant improvement.