VS Code: When a line has more than 10,000 characters, the contents of subsequent lines are not reported correctly when navigating up and down arrows on subsequent lines
Steps to reproduce:
- Open VS Code, create a new file and set the language to HTML
- Enter the following line: "lorem" (press tab to complete) "lorem1400" (press tab to complete) "lorem" (press tab to complete)
- Navigate between lines by pressing the up and down arrows
Actual behavior:
When a line has more than 10,000 characters, the contents of subsequent lines are not reported correctly when navigating up and down arrows on subsequent lines
Expected behavior:
When browsing with the up and down arrows, the contents of the browsing line are reported correctly.
NVDA logs, crash dumps and other attachments:
System configuration
NVDA installed/portable/running from source:
installed
NVDA version:
alpha-32185,7e31f30f (2024.3.0.32185)
Windows version:
Windows 11 Version 22H2 (OS Build 22621.3593)
Name and version of other software in use when reproducing the issue:
Visual Studio Code 1.89.1
Other information about your system:
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.
Yes
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
When the number of characters in a line exceeds 10000, there is a button at the end of the line to show more characters.
I initially thought it was caused by a display optimization done by VS Code that caused the TextInfo offset to be off. (Of course I don't have any knowledge about TextInfo related)
But in VS Code 1.72, the content after 10000 characters is not displayed, and there is no button to display more characters. And the buttons that exist after 1.73 are clicked and subsequent characters are displayed, but the error remains.
And note that although the content after 10000 characters is not displayed, the left and right arrows can be navigated.
Note also that when the characters are just over 10,000, subsequent lines can still be browsed by left and right arrows for individual characters, but when the characters are much more than 10,000, the error also occurs when browsing left and right arrows for subsequent lines.
cc: @mltony
See also #16060
This is blocked by work in Chromium
Does this happen also in Firefox?
Does this happen also in Firefox?
This issue does not exist in Codespaces in Chrome and Firefox.
@hwf1324 could you please test with NVDA last alpha and VS Code 1.91.1? Is this issue still occuring?
cc: @bpasero, @hbons, @daviddossett, @joaomoreno, @kycutler, @lszomoru could you maybe look into this? It might be something going wrong with the exposure of caret position to the accessibility API if there are such long lines. Not sure if VS Code renders off-screen characters automatically on the next line visually. My understanding is that this issue occurs only when a line has more than 10,000 characters without any linebreak in between.
Yes, NVDA version: alpha-32879,41418d7a (2024.4.0.32879) still has this issue on Visual Studio Code version: 1.91.1 (user setup).
cc @meganrogge
@hwf1324 are you able to reproduce with NVDA 2025.1 RC1 in VS code 1.101.0?
No changes.