microsoft / vscode

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

Accessibility service not firing onDidChangeAccessibilitySupport #71185

Open alexr00 opened 5 years ago

alexr00 commented 5 years ago

Found testing https://github.com/Microsoft/vscode/issues/67744

All testing was done in the explorer view.

I turned on NVDA and saw that the list keyboard navigation changed.

When I turned off NVDA, I expected that the list keyboard navigation would go back to the new filtering behavior. It did not.

I reloaded. It still stayed on the simple navigation.

I had to fully restart VS Code before the navigation went back to the filtering behavior. If VS Code can automatically switch to simple when there is a screen reader (no restart) then it should be able to switch back.

isidorn commented 5 years ago

That sounds like the accessibility service is not firing the onDidChangeAccessibilitySupport event, since I am listening on it here

I tried reproducing and I hit an even weireder issue on my Win VM, that the accessiblity service always returns that accessilibty mode is on. Even though I do not have NVDA turned on. Due to that assigining to March.

@sbatten can you please investigate? You also work on win. Can you repro the issue @alexr00 is mentioning? Just open explorer and start typiing, you should get the orange higlight box, not the simple navigation. After that please check the state of the accessibility service. Thanks!

On osx everything works fine.

sbatten commented 5 years ago

The accessibility service relies on an event from electron: https://github.com/Microsoft/vscode/blob/b9bcca2b9830df592892d63201704026c18dcbe5/src/vs/code/electron-main/app.ts#L127

This event relies on the chromium event: https://electronjs.org/docs/api/app#event-accessibility-support-changed-macos-windows

Chromium only detects the enablement of assistive technologies, not the disablement of them on Windows. https://www.chromium.org/developers/design-documents/accessibility#TOC-How-Chrome-detects-the-presence-of-Assistive-Technology

I did not repro the initial bad state you were talking about where it was always on, so that may be some VM issue.

isidorn commented 5 years ago

The initial bad state is a vm issue and I will not tackle this. @sbatten The actual issue is the accessibility service not firing a change event on windows, thus giving bug back to you and assigning upstream to it.

bpasero commented 4 years ago

@alexr00 Can you try to reproduce with our nightly insider builds? You can give our preview releases a try from: https://code.visualstudio.com/insiders/

alexr00 commented 4 years ago

@bpasero the issue is still happening.

bpasero commented 4 years ago

@sbatten if you want a fix you will have to report this as upstream with a reproducible case.

//cc @isidorn or you file it

sbatten commented 4 years ago

filed this issue on chromium https://bugs.chromium.org/p/chromium/issues/detail?id=1015906