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

In latest code insiders, pressing alt+up or down no longer reads suggestions for accessibility #28914

Closed
derekriemer opened this issue Jun 16, 2017 · 18 comments
Assignees
Labels
accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues suggest IntelliSense, Auto Complete
Milestone

Comments

@derekriemer
Copy link

  • VSCode Version:
    • Version 1.14.0-insider
    • Commit 73015a5
      -Date 2017-06-16T05:13:31.107Z
    • Shell 1.6.6
    • Renderer 56.0.2924.87
    • Node 7.4.0
  • OS Version: win10 15063

Steps to Reproduce:

  1. start nvda, and launch vs code insiders.
  2. open a random file, foo.html
  3. type <h.
  4. when suggestions appear, press down arrow, noticve how it works but nvda tries to read the next line.
  5. press alt+down and alt+up.

Expected: NVDA says the next or previous choice as documented:
Actual: nothing.

@derekriemer
Copy link
Author

This has been happening for a week or so but I was on vacation for another week and haven't used code until recently much. Short story, I don't know exactly when this came into existance

@ramya-rao-a
Copy link
Contributor

@derekriemer Are the suggestions read as expected in the stable build?

@ramya-rao-a ramya-rao-a added the info-needed Issue requires more information from poster label Jun 17, 2017
@derekriemer
Copy link
Author

derekriemer commented Jun 18, 2017 via email

@ramya-rao-a
Copy link
Contributor

@alexandrudima Could this be related to the work you did in the May milestone around the suggest widget and accessibility?

@ramya-rao-a ramya-rao-a added accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues suggest IntelliSense, Auto Complete and removed info-needed Issue requires more information from poster labels Jun 19, 2017
@alexdima
Copy link
Member

@derekriemer It has been reported that alt+up and alt+down causes NVDA to leave focus mode -- #4351. We have changed the default "alternate" keybindings for moving in the suggest widget to ctrl+up and ctrl+down on Windows, in addition to up and down. We have updated our documentation to reflect the new keybindings in https://code.visualstudio.com/docs/editor/accessibility#_screen-readers , but we did not note the change in the Release Notes, sorry about that.

For completeness, here is how alt+ keybindings can be mapped again -- if desirable -- in keybindings.json:

{
	"key": "alt+down",
	"command": "selectNextSuggestion",
	"when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
},
{
	"key": "alt+up",
	"command": "selectPrevSuggestion",
	"when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
}

@alexdima alexdima added this to the On Deck milestone Jun 19, 2017
@derekriemer
Copy link
Author

derekriemer commented Jun 19, 2017 via email

@derekriemer
Copy link
Author

derekriemer commented Jun 19, 2017 via email

@alexdima
Copy link
Member

@derekriemer out-of-the-box suggestions are navigable via arrow up / arrow down and also ctrl + arrow up / ctrl + arrow down. We have added the ctrl+ variant out-of-the-box precisely because focus is kept in the editor and NVDA reads the current line again on arrow up / arrow down without the ctrl+ modifier.

The correct semantic solution involves using aria-activedescendant on the <textarea> used for editor input and pointing towards the suggestion list. This is explored at length in #3787, where we are currently blocked on the following Chromium bug (that reproduces on Google's home page): https://bugs.chromium.org/p/chromium/issues/detail?id=593646

@alexdima alexdima added the *question Issue represents a question, should be posted to StackOverflow (VS Code) label Jun 28, 2017
@derekriemer
Copy link
Author

derekriemer commented Jun 29, 2017 via email

@derekriemer
Copy link
Author

derekriemer commented Jun 29, 2017 via email

@alexdima
Copy link
Member

alexdima commented Jun 30, 2017

@derekriemer Thank you for letting me know, I didn't realize ctrl+arrows is also handled specially by NVDA. Is there any arrow combination remaining that is not special when in focus mode?

What do you mean by a class or an ID? If you mean a css class, then that would be "inputarea", but I can rename to something better if that would help.

@alexdima alexdima reopened this Jun 30, 2017
@derekriemer
Copy link
Author

I have an addon for NVDA which I'm working on to nuke control+up/down, because moving by paragraph is silly when in a code editor. this would squelch the spurious announcement. Another way would be to add something like another class to the editor when the autocomplete appears (Since we don't use a list there is no focus change). Something like

<textarea class="inputarea">... when autocomplete is on <textarea class="inputarea autocompleteon"> This would allow me to simply return early from the NVDA caret move routine if I detect autocomplete.

@alexdima
Copy link
Member

alexdima commented Sep 1, 2017

@derekriemer We can definitely look into something like that. I wasn't aware that the class name list is something that NVDA has access to. Are there other DOM attributes that make their way to NVDA? We could add more semantics via custom attributes. e.g.

<textarea class="inputarea" data-completion="true" data-completion-index="0" data-completion-count="10">

As a different completion gets selected, we could update the data-completion-index value.

Another example would be to transmit when the cursor is entering / leaving a squiggle. e.g.

<textarea class="inputarea" data-squiggle="true">

We could potentially use this one-way communication mechanism to express more specific things (at a semantic level) about the code editor.

@derekriemer
Copy link
Author

These are things which are normally not used in conventional scripting, and NVDA only has access to because of the fact that iaccessible2 gives us access to them. I think we can support class, id, and tag name, but I don't know about data-*. Also, note that this mechanism requires me to script NVDA to recognize things, so it is more of a crude way to get at this info.

@derekriemer
Copy link
Author

yeah, I can't access data-blah

@Neurrone
Copy link

Neurrone commented Jan 10, 2018

Some more things I've noticed:

  • up/down arrows navigates through the suggestions list. Screen readers typically use the ctrl+up/down keys for paragraph navigation, so maybe that could be deprecated in favour of the arrow keys.
  • When there are multiple suggestions available, arrowing lands on items where NVDA speaks nothing about every other item. Some suggestions also says "has details". I assume this is intellisense info. Is it possible to read this additional information using a screen reader?

@ramya-rao-a ramya-rao-a removed their assignment Nov 22, 2018
@bpasero bpasero removed the *question Issue represents a question, should be posted to StackOverflow (VS Code) label Oct 8, 2019
@alexdima
Copy link
Member

@isidorn Given the new aria usage, do you think this issue is still relevant?

@alexdima alexdima removed their assignment Jan 18, 2020
@isidorn
Copy link
Contributor

isidorn commented Jan 20, 2020

@alexdima good point, this should be fixed now via #87880 Closing optimistically
@derekriemer please reopen if you can still reproduce this with latest vscode insiders https://code.visualstudio.com/insiders/

@isidorn isidorn closed this as completed Jan 20, 2020
@vscodebot vscodebot bot locked and limited conversation to collaborators Mar 5, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues suggest IntelliSense, Auto Complete
Projects
None yet
Development

No branches or pull requests

7 participants