Skip to content

Fixing Intelisense verbosity with screen readers - #67155

Merged
Johannes Rieken (jrieken) merged 7 commits into
microsoft:masterfrom
pawelurbanski:1.31_accessibility
Mar 5, 2019
Merged

Johannes Rieken (jrieken) merged 7 commits into
microsoft:masterfrom
pawelurbanski:1.31_accessibility

Conversation

@pawelurbanski

Copy link
Copy Markdown
Contributor

#65499 65499
The following simple fixes improve usability and accessibility with screen readers. I am currently working on an NVDA screen reader add-on module to make more improvements.
I am not a TypeScript developer, and therefore someone more knowledgeable will need to clean my code. I am available to give feedback and do testing.

Fixed the alert implementation, which was reporting how many times a particular spoken item occured. It is too verbose, for example when editing code and navigating possible choices by typing and removing item names to quickly hear what is suggested.

Fixed the suggestion controller, which was inserting an alert reporting accepted item, and also reporting that it was inserted into the document. It made the experience almost unusable for this sentence was read out on every insert. Such information is easily reported by screen readers in much better way, for it is also integrated with braille display handling.

Fixes to the suggestion list pop-up and documentation.

Need review and further implementation:
When suggestion appeard it reported with an alert the type of suggestion regular / snippet, and if the item had details - namely type information, or more expanded documentation.
While sighted users are not much interrupted by such hints, for they can observe them in parallel, screen readers, report everything, and on every item change.
Providing the completion item label only is sufficient.

Further fixes to the documentation widget appearing with contents.

Case 1: The details are simple: just a type / a few words hint.
It can be reported via the alert, ofr it is very breaif, and does not interrupt the flow.
Case 2: If the documentation details are longer, and rendered from markdown, or inserted from HTML documentation, the widget may/should have the aria-role="dialogue" added during the element creation. The focus should be placed at the beginning of the dialogue.
Read more / ** Read less
/ Close link buttons should have tabindex properties manually set, starting from 0 as it is in the specification.
Pressing either escape or keyboard activation of one of close button should return the focus to the last possition in the editor.
Important: We need to figure out how to split automatic reporting of short strings, and creating a dialogue when activating the documentation with a shortcut: Ctrl+Space.
A temporary work-around is to disable automatic parameter hints, and use them on demand, which in many cases may be prefered by the screen reader users.

…handle function, much better handled by the screen readers, and therefore they should be removed.
…rent completion item without unnecesary snippet/regular hints, or if items have details.
…has no use for a blind user, and causes too much verbosity.
@msftclas

Microsoft Contribution License Agreements (msftclas) commented Jan 26, 2019 •

Copy link
Copy Markdown

CLA assistant check
All CLA requirements met.

@jrieken Johannes Rieken (jrieken) added the accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues label Jan 28, 2019
@jrieken

Copy link
Copy Markdown
Contributor

Isidor Nikolic (@isidorn) Can you advice? We usually add (verbose) messages as feedback from testing and that seems to collide with real-world users. It's a tricky spot to be in

pawelurbanski Your change doesn't build (https://dev.azure.com/vscode/VSCode/_build/results?buildId=13521) because there are some strict null checks that fail.

@pawelurbanski

pawelurbanski commented Jan 28, 2019 via email

Copy link
Copy Markdown
Contributor Author

@jrieken

Copy link
Copy Markdown
Contributor

Unfortunately, I am not a TypeScript developer. It builds from my local checkout with a branch, and I’m using the dev build to work.

Should be quite easy. Just run yarn run strict-null-check. It will produce another set of local errors.

Hearing Accepting inserted the following text every time yu do completion makes the editor unusable.

You don't wanna hear anything then, right? The challenge is that some completion items are more complex, e.g. they insert more than the label. Like an import a the top of the file. Adding a verbosity setting is an option but ideally we make it work best without config needs.

@isidorn

Copy link
Copy Markdown

Johannes Rieken (@jrieken) I would suggest that we listen to our users and not testers. So we try to be less verbose.

For this particular sample in the default case when the compleition item is not complex we could be less verbose, and only mention if it is a case when more than the label is inserted.

Once we have some something we can ask feedback from our other users which use a screen reader.

@pawelurbanski

pawelurbanski commented Jan 28, 2019 via email

Copy link
Copy Markdown
Contributor Author

@jrieken Johannes Rieken (jrieken) added this to the March 2019 milestone Mar 5, 2019
…nserting an import statement, simplify the message that read when selecting an item
Comment thread src/vs/editor/contrib/suggest/suggestController.ts
@jrieken
Johannes Rieken (jrieken) merged commit 6c52d48 into microsoft:master Mar 5, 2019
@github-actions github-actions Bot locked and limited conversation to collaborators Mar 27, 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants