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

Fixing Intelisense verbosity with screen readers #67155

Merged
merged 7 commits into from
Mar 5, 2019

Conversation

pawelurbanski
Copy link
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
Copy link

msftclas commented Jan 26, 2019

CLA assistant check
All CLA requirements met.

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

jrieken commented Jan 28, 2019

@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
Copy link
Contributor Author

pawelurbanski commented Jan 28, 2019 via email

@jrieken
Copy link
Member

jrieken commented Jan 28, 2019

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
Contributor

isidorn commented Jan 28, 2019

@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
Copy link
Contributor Author

pawelurbanski commented Jan 28, 2019 via email

@jrieken jrieken added this to the March 2019 milestone Mar 5, 2019
…nserting an import statement, simplify the message that read when selecting an item
@jrieken 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.

None yet

4 participants