microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
163.14k stars 28.83k forks source link

Investigate into JAWS support #95225

Open isidorn opened 4 years ago

isidorn commented 4 years ago

Look into how VS Code works with JAWS and identify the current limitations.

@GS-Avaluka feedback is very welcome

isidorn commented 4 years ago

I just gave JAWS a spin on my Windows machine. Here are my findings:

I am not a screen reader user, so my findings are of course not complete. It would be great to get much more feedback from users.

fyi @jfayre @RussellSprouts as you have filled JAWS related issue to this repository

ggordon-vispero commented 4 years ago

I too will try this over the weekend and report back.

isidorn commented 4 years ago

@ggordon-vispero awesome, thanks!

cannona commented 4 years ago

The first two items you mention are in fact expected Jaws behavior, and not something which applications can control. I suspect that the extra information will not be read if the user decreases the verbosity, but I have not confirmed this. Regardless, there's nothing you can do about it.

MarcoZehe commented 4 years ago

The punctuation is also a JaWS setting, and role "code" is very new. It is slatted for WAI-ARIA 1.3, and WAI-ARIA 1.2 hasn't even been finalized yet, but both Firefox and Chromium already support it because it was low-hanging fruit. Screen Reader support will need to be added for this first. Orca is, so far, the only screen reader that does it, and AFAIK only in Master.

Menelion commented 4 years ago

Hi @isidorn and thanks for this, it's greatly appreciated!
for me the main issues with JAWS are:

  1. As the editor is a forms-mode environment, JAWS does not speak indentation there even if turned on.
  2. Even if it did speak the indentation in editors, it would not differ between editor and non-editor parts of VS Code. I.e., when in the trees or even in virtual cursor mode, you'll hear superfluous indentation markings which is as annoying as not having them at all. @ggordon-vispero Probably it's something that needs to be tweaked in JAWS as well as separating VS Code settings from Chrome ones.
  3. this is very intermittent and extremely hard to describe, but JAWS sometimes loses focus and hangs for some time, especially in big trees and lists. the best way to reproduce it is to replicate my setup: install Remote SSH, SSH to some other machine with a large codebase on it and try to work fast.

Thank you again, and I hope my two favorite companies (Microsoft and Vispero) will come with a robust solution that would allow us to work with our preferred screen reader and there won't be people moving from JAWS to whatever anymore (see the Gitter chat).

isidorn commented 4 years ago

Thanks all for feedback. @Menelion We would love to improve this, however I am not sure what can be done on the VS code side for this.

  1. Is there something in VS code which we can do such that the editor is no in forms-mode environment?
  2. Why doesn't JAWS use different role we set. For example the editor has the role textbox and the trees have role tree
  3. This might be due to a large number of accessilibity events. @joanmarie already investeged in this for the Orca screen reader and this might be an underlying Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=1050718 Please note that I am only speculating here

Overall to improve with JAWS we would need somebody from Vispero to share his thoughts. So let's see what @ggordon-vispero has to say.

Menelion commented 4 years ago

@isidorn Just investigated. Yes, it seems, you can do nothing here, sorry. @ggordon-vispero It's a JAWS issue. If you want more info, please chime in, I'll write you privately.

ggordon-vispero commented 4 years ago

@Menelion , please write me with additional details. I have already noticed the JAWS failure to announce intentation and agree that it's an issue on our side. If you have additional JAWS specific details about either indentation or the JAWS hanging please write to me privately. I think you already have my contact info. If not it's first Initial followed by my last name.

akash07k commented 4 years ago

Thanks @isidorn for this. Actually, I'd be very happy if the problems with indentation levels will be fixed from freedom scientific side. Also, I've observed, that JAWS sometimes responds little slower inside command pallat.

isidorn commented 4 years ago

We have done the inital investigation and it seems like the work should be done on the JAWS side. However we will still keep this issue open to have all the information in one place. I should also have a meeting with the authors of JAWS in the next one month so I will keep updates here.

jhomme commented 4 years ago

JAWS reacts too quickly and repeats text in some situations. One such situation is in the editor when you select some text, then delete it. JAWS repeats the selected text.

jhomme commented 4 years ago

Regarding the indentation issue, I believe JAWS thinks it is seeing characters or something where the cursor cannot go to the left of every line. It thinks every line starts at the margin. I can check related settings in the JCF.

akash07k commented 4 years ago

Hi @ggordon-vispero @isidorn Guys, I've observed that If I use JAWS with VS Code, it doesn't read the terminal output automatically. Can you guys please look into this? @ggordon-vispero We'll be thankful to you for improving the JAWS support for VS Code.

jhomme commented 4 years ago

I just happened to be looking through default JAWS settings. There is a checkbox in JAWS Quick Settings that turns the speaking of live regions on and off. It is off by default. I have begun to put together a configuration and script set for JAWS for VS Code. I'm going to turn the live region checkbox on and see how far this takes me and report back. I'm hoping that a lot of nice speaking will simply just start happening.

jhomme commented 4 years ago

Reporting back. If you use VS Code Insider with JAWS, press INSERT+V. Unfortunately, this gives you Chrome Quick settings because JAWS does not have a configuration and script set for VS Code. I have started one here. So for me, the right stuff comes up. You can still test this, but you may want to remember to put it back the way you had it, so you do not have any adverse affects in Chrome. Anyway, here is what to do. Arrow down to Virtual Cursor > General, and toggle live region speaking on. This will suddenly make JAWS speak all sorts of helpful messages just like NVDA does. I will package up my script set for VS Code Insider and put it somewhere so others can use it, once I have more of it working.

Menelion commented 4 years ago

One more observation. If more than one file editor is open, and you switch back and forth with Ctrl+Tab and Ctrl+Shift+Tab, You get extraneous verbiage such as "Et active input active input 2 results list box list box".
A similar thing happens when you start typing a keyword. JAWS says: "Suggestion suggestion list box 13 of 29, type to narrow search" (sorry, the citation might not be exact).

isidorn commented 3 years ago

@sana-ajani just let me know that the news JAWS version has an improved VS Code support. From their release notes: "Improved the user experience when using JAWS with the Visual Studio Code application. This includes turning off the Virtual PC Cursor by default, eliminating the announcement of ARIA regions, and removing the announcement of a long URL when the program is launched."

Let us know if JAWS behaves better with VS Code now and what are the biggest issues remaining.

jhomme commented 3 years ago

Hi, I started coding JAWS scripts for VS Code. I will unhook the scripts and report back.

Jim

On 1/6/21, Isidor Nikolic notifications@github.com wrote:

@sana-ajani just let me know that the news JAWS version has an improved VS Code support. From their release notes: "Improved the user experience when using JAWS with the Visual Studio Code application. This includes turning off the Virtual PC Cursor by default, eliminating the announcement of ARIA regions, and removing the announcement of a long URL when the program is launched."

Let us know if JAWS behaves better with VS Code now and what are the biggest issues remaining.

-- You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/microsoft/vscode/issues/95225#issuecomment-755155965

--

Jim Homme Website: https://www.jimhomme.com/ Twitter: @jimhomme Facebook: http://www.facebook.com/jimhomme LinkedIn: https://www.linkedin.com/in/jimhomme Skype: jim.homme FreeChess: jhomme

jhomme commented 3 years ago

The issue of JAWS saying the page address is fixed.

isidorn commented 3 years ago

I have been notified that the JAWS update sort of broke VS Code users. As David mentions: "I used to be able to hit the pc cursor key twice in jaws, and this allowed me to move around the screen, but now I can’t even navigate the links in the update document using the arrow keys."

@ggordon-vispero is this something the jaws team can investigate into?

ggordon-vispero commented 3 years ago

This change was actually made intentionally after conversations with several users. Back in the JAWS January update, we changed the VSCode configuration to have the virtual PC cursor off by default. This both improves performance and interaction with most parts of the app, which aren’t intended to be rendered as a web page. There are of course things like the What’s New documentation which doesn’t have a caret and for which the virtual cursor must be used. Simply press JAWSKey+Z to toggle on the virtual cursor and you should be able to read this document. Press JAWSKey+Z again to toggle the virtual cursor off. We’re working on ways of detecting this sort of document to do this toggling automatically behind the scenes.

Alternatively, you can change a JAWS setting to permanently go back to the old behavior: While in VSCode with JAWS, press JAWSKey+6, that’s 6 on the number row. This will open Settings Center to change the VSCode configuration. Search for, Use Virtual PC Cursor. Enable that option and you should be back to the mode where JAWS has the VPC enabled by default for VSCode.

MarcoZehe commented 3 years ago

The Document Role was devised for exactly this purpose: Provide content inside a web application that is browsable with virtual buffers. In essence, treat everything like an application, but everything inside an element with role "document" like an embedded web page. You know, like the IE view in Outlook Express. ;-)

ggordon-vispero commented 3 years ago

Point taken, and the markup does appear to be correct in VSCode. The problem is that with JAWS VPC toggled off for the aforementioned performance/improved user experience, we’ll need to account for this in scripts and turn the VPC on for these documents.

BeastlyTheos commented 2 years ago

As a Jaws user just learning VS Code I have some thoughts and requests to add to this conversation. Most of this needs to be fixed on the Jaws end, but in accordance with a prior comment, I am posting it here to keep everything in one place.

The following are some hotkeys that would be very useful to me, and should be relatively easy to implement.

@jhomme, you said you were working on some Jaws scripts and an ideal Jaws config. Do you have those in a public repository? I know a thing or two about Jaws scripting, and am willing to do what I can to implement these ideas.

chrisnestrud commented 2 years ago

@travisroth has created some useful JAWS scripts here: https://github.com/travisroth/VSCodeJAWSScripts