-
Notifications
You must be signed in to change notification settings - Fork 29.3k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Screen readers cannot update caret offset in code editor #98256
Comments
@joanmarie yes this seems to be due to the fact that we are using a Idealy we would listen on cursor change events in the fyi @alexdima |
@isidorn We do listen to selection changes especially for cases where it gets via Braille displays. That was confirmed to be working, although I don't own one of those devices to try it out. Here it is --
@isidorn It might be as easy as tweaking this if statement to allow Linux to go through. Currently, that code path is only allowed on Windows + Chrome -- vscode/src/vs/editor/browser/controller/textAreaInput.ts Lines 409 to 412 in 69dadff
|
@alexdima great pointer, thanks a lot! |
@isidorn: Removing the check for windows solved it for me. Thanks! I wonder if VoiceOver might also have a need to reset the caret in that textarea? |
@joanmarie great, thanks for trying it out. |
I have pushed a change that we allow selection change events to update the selection not only on Win, but on Mac and Linux as well. @joanmarie Insiders in a couple of days should have this change, then you can try it out and let us know. |
@joanmarie did you get a chance to try this out with vscode insiders? |
@isidorn based on the test I did it seems to be correct. Steps used in the test:
as expected, the orca continues to read from where it was stopped. |
@jvesouza thanks a lot, really appreciate it! Adding verified label. |
Steps to reproduce:
Expected result: The caret would move to the "h" (because that's the character at offset 0)
Actual result: The caret does not move.
Impact: Orca has a SayAll command which allows the user to give a single command / keystroke which causes Orca to speak the full content starting from the present location. When the user reaches the end of the document or interrupts speech by pressing a key like Ctrl, Orca uses ATK/AT-SPI2 to set the caret offset at the last location read. Doing so means the user is where they think they are. ("Orca just read 'foo bar', so I must be on the line with 'foo bar'".) Unfortunately, because
setCaretOffset()
fails to work in the Editor, Orca is unable to make this update and the user remains at the point where the SayAll command was given.@isidorn: Is this due to the fact that VSCode has a special
textarea
which it uses to make the Editor contents available to screen readers? If so, could you pay attention to the caret being moved in thattextarea
and update the real location within the Editor?The text was updated successfully, but these errors were encountered: