Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accessibility: Screen readers cut off lines in latest insider build #237493

Open
Menelion opened this issue Jan 8, 2025 · 22 comments · May be fixed by #241189
Open

Accessibility: Screen readers cut off lines in latest insider build #237493

Menelion opened this issue Jan 8, 2025 · 22 comments · May be fixed by #241189
Assignees
Labels
accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues bug Issue identified by VS Code Team member as probable bug

Comments

@Menelion
Copy link

Menelion commented Jan 8, 2025

Type: Bug

In this latest insiders build, screen readers (tested with both JAWS and NVDA) started cutting off lines of code. the amount read is a bit longer than what is visible on screen, but still it's nearly impossible to work because before the whole line was read no matter what.
Please fix or revert this.

VS Code version: Code - Insiders 1.97.0-insider (9b0b13d, 2025-01-08T05:06:32.681Z)
OS version: Windows_NT x64 10.0.26100
Modes:

System Info
Item Value
CPUs 12th Gen Intel(R) Core(TM) i7-1270P (16 x 2496)
GPU Status 2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: enabled
webnn: disabled_off
Load (avg) undefined
Memory (System) 15.24GB (6.47GB free)
Process Argv --disable-extensions . --crash-reporter-id 798ba14e-190a-4e22-8cdc-4ff2f816f42d
Screen Reader yes
VM 0%
Extensions disabled
A/B Experiments
vsliv368cf:30146710
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscod805cf:30301675
vsaa593cf:30376535
py29gd2263:31024238
vscaat:30438846
c4g48928:30535728
a9j8j154:30646983
962ge761:30841072
pythonnoceb:30776497
dsvsc014:30777825
dsvsc015:30821418
pythonmypyd1:30859725
2e7ec940:31000449
pythontbext0:30879054
cppperfnew:30980852
pythonait:30973460
dvdeprecation:31040973
dwnewjupyter:31046869
newcmakeconfigv2:31071590
nativerepl1:31134653
pythonrstrctxt:31093868
nativeloc1:31118317
cf971741:31144450
parsetypescript:31116713
e80f6927:31120813
iacca1:31150324
notype1:31143044
dwcopilot:31158714
h409b430:31177054
2j25a237:31183119
c3hdf307:31184662
6074i472:31201624

@meganrogge
Copy link
Contributor

Do you have any settings that could explain this? Nothing that I know of has changed and I cannot reproduce the issue.

@meganrogge meganrogge added the info-needed Issue requires more information from poster label Jan 8, 2025
@Menelion
Copy link
Author

Menelion commented Jan 8, 2025

Nope, yesterday everything was normal, today after the update it's like this. Nothing touched, tried to disable all extensions. If the editor window is smaller, it gets even worse. Like (it's PHP code but doesn't matter): the line use App\Entity\User; gets read like this: use. that's it. to hear the rest, you have to press the End key.
If the window is on full screen, I hear nearly 110 first characters of the line in question.

@meganrogge
Copy link
Contributor

which screen reader are you using? have you tried others?

@Menelion
Copy link
Author

Menelion commented Jan 8, 2025

JAWS and NVDA, both latest versions.

@meganrogge
Copy link
Contributor

@rperez030 or @jooyoungseo, can you reproduce? I don't have my windows computer atm.

@rperez030
Copy link
Contributor

@Menelion could you please share a file where you experience this problem? So far, I cannot reproduce it either. Maybe my lines are not long enough :).

@jooyoungseo
Copy link

@meganrogge @rperez030 I have the same issue. This needs to be addressed asap. Copy and paste the following text into a new editor and test with JAWS and NVDA:

The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.

Previously, all the content on the same line was read aloud unless they had a hard return.

Currently, a soft line break is introduced even for screen readers and some words are cut off like this:
blank

  • l1: The quick brown fox jumps over the lazy dog. The quick brown fox
  • l2: dog.

There are missing words between two lines.

@rperez030
Copy link
Contributor

Thanks @jooyoungseo. i can reproduce it now. @meganrogge @isidorn this is an extremely critical issue. I think this is related to #229051. We discussed this problem back then. The workaround is to add "editor.experimentalEditContextEnabled": false to the user preferences file which reverse to using the textarea.

@meganrogge
Copy link
Contributor

Thank you both for investigating and calling this to my attention. It makes sense that I could not reproduce as I had disabled that setting. We will ensure it's fixed promptly. @aiday-mar , while looking for a permanent fix, I suggest disabling "editor.experimentalEditContextEnabled" when in screen reader mode by default.

@Menelion
Copy link
Author

Thanks folks! Do you know if this is related or not? Approximately from the same time both JAWS and NVDA started reading a non-existing right brace. I'll explain.
In PHP world it's common practice to have a blank line at the end of the file. And many files, being classes, end with a right brace } and a blank line. so now both JAWS and NVDA in VS Code read in speech and show in Braille the right brace on both lines, one where it does exist indeed, and another on the blank line. If you press the "read current character" key, you'll hear "blank" or "U+0" as expected.
Any ideas if this is the same issue or should I open a new one? Thanks!

@aiday-mar
Copy link
Contributor

Hi @meganrogge thank you for the ping and apologies for the issue. I will disable the edit context for screen reader users and will look for a fix.

@aiday-mar
Copy link
Contributor

I have the following PR which disables the edit context: #238112. I will investigate the issue more in depth

@aiday-mar
Copy link
Contributor

aiday-mar commented Jan 17, 2025

I am trying to reproduce this issue. I am currently not able to exactly reproduce the issue described by @jooyoungseo using NVDA on windows. I turned on word wrap and even with a line spread out on several view lines, NVDA still reads the full line. I was running however into another issue while using NVDA, which was that I had to press Escape to move the cursor up and down and be able to navigate. I am not sure if this is an edit context problem or because I was connecting to windows through the dev box and maybe it was an input issue.

Screen.Recording.2025-01-17.at.11.20.55.mov

I then tried with Voice Over on macos and I am not able to reproduce the issue either.

Could I ask the users in this thread for your settings, so I can try to reproduce the issue?

@Menelion
Copy link
Author

@aiday-mar I have word wrap turned off so line numbers would match what is shown in error messages (like: "error on line 128"). How can I send you my settings please?

@aiday-mar
Copy link
Contributor

Hi @Menelion thanks for your response. You can copy paste them here, or if there is confidential information if you'd prefer , I can send you an email on your profile email and you can reply with the settings

@Menelion
Copy link
Author

@aiday-mar No, by "how" I really meant that, sorry for my stupidness. How do I copy them? Please help me locate the full JSON file you need on Windows. Thanks!

@aiday-mar
Copy link
Contributor

Hi, ah yes of course, you can run the following command: workbench.action.openSettingsJson. In the command palette this command is called: Preferences: Open User Settings (JSON). This will open a file called settings.json which contains all your settings.

@Menelion
Copy link
Author

Menelion commented Jan 17, 2025

C:\Users\User\AppData\Roaming\Code - Insiders\User\settings.json:

{
    "editor.accessibilitySupport": "on",
    "security.workspace.trust.untrustedFiles": "open",
    "update.showReleaseNotes": false,
    "java.jdt.ls.androidSupport.enabled": "on",
    "java.jdt.ls.java.home": "C:\\Program Files\\Microsoft\\jdk-17.0.11.9-hotspot",
    "java.configuration.runtimes": [
        {
            "default": true,
            "name": "JavaSE-17",
            "path": "C:\\Program Files\\Microsoft\\jdk-17.0.11.9-hotspot",
        }
    ],
    "remote.SSH.remotePlatform": {
        "do": "linux",
        "alpha": "linux"
    },
    "security.allowedUNCHosts": [
        "wsl.localhost"
    ],
}  

@meganrogge
Copy link
Contributor

I am able to reproduce on mac with VoiceOver when I enable"editor.experimentalEditContextEnabled"

@meganrogge meganrogge added bug Issue identified by VS Code Team member as probable bug accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues and removed info-needed Issue requires more information from poster labels Jan 17, 2025
@rperez030
Copy link
Contributor

I was running however into another issue while using NVDA, which was that I had to press Escape to move the cursor up and down and be able to navigate. I am not sure if this is an edit context problem or because I was connecting to windows through the dev box and maybe it was an input issue.

Make sure you are not using NVDA in browse mode. One way to ensure you are not in browse mode is trying to type some content. You can use NVDA +L (Laptop) or NVDA +Up arrow (desktop) to read the line with the cursor. you can configure your keyboard layout under NVDA menu / Preferences / Keyboard.

@rperez030
Copy link
Contributor

Approximately from the same time both JAWS and NVDA started reading a non-existing right brace.

@Menelion Can you please try if disabling "editor.experimentalEditContextEnabled" fix the issue with the right brace? If not, I think we should open a separate issue for that one.

@Menelion
Copy link
Author

@rperez030 Yes yes! It fixed the non-existent line announcement issue. Actually, it's not only right brace, it doesn't matter what. To reproduce this, type something in a file and press Enter so the last line is blank, then press Up Arrow, then down Arrow again to read the last line. // CC @meganrogge @aiday-mar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues bug Issue identified by VS Code Team member as probable bug
Projects
None yet
5 participants