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

A11y_VSCode_ WelcomeScreen_ScreenReader: The role and name of the interactive element is not announced to screen reader users. #76972

Closed
MayuriNaik opened this issue Jul 9, 2019 · 11 comments
Assignees
Labels
a11ymas Issue from accessibility team accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues bug Issue identified by VS Code Team member as probable bug macos Issues with VS Code on MAC/OS X verified Verification succeeded workbench-welcome Welcome page issues
Milestone

Comments

@MayuriNaik
Copy link

MayuriNaik commented Jul 9, 2019

Environment Details:
VSCode Version : 1.35.6 (user setup)
OS Version : MAC OS Mojave, V 10.14.5, Mac Mini Late2012

GitHubTags: #A11yMAS; #A11yTCS; #MACOS; #DesktopApp #A11y_VSCodeEditor; #MAS4.1.2; #A11ySev2; #NonBenchmark

Additional Details:
MAS Violated : MAS 4.1.2
ScreenReader Versions : Voiceover

Repro Steps:

  1. Open Visual studio code editor.
  2. Using "Alt+H" key navigate to the "Help" menu bar option.
  3. Using "Down" arrow key navigate to the "Welcome item".
  4. Start screen reader.
  5. Navigate to “Tools and Languages” and “Settings and keybindings” interactive elements.
  6. Listen if it's name and role of these elements is announced or not.

Actual:
When screen reader users navigate to the “Tools and Languages” and “Settings and keybindings” interactive elements the name and the role of these elements are not announced to the screen reader users

Expected:
The name and role of the interactive elements should be announced to the screen reader users when they navigate to it.

Recommendations:
Refer below link which is repository of bug fixes code snippets:
https://microsoft.sharepoint.com/teams/msenable/mas/pages/browse-fixes.aspx

User Impact:
If the name and role of the interactive elements are not announced to the screen reader users then they will not understand how to interact with them.

MAS Reference:
MAS 4.1.2 - https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={248054a6-5e68-4771-9e1e-242fb5025730}

Attachment for Reference:
VSCode_ WelcomeScreen_ScreenReader Role and Name not announced in MAC.zip

@nirmalsahoo
Copy link

nirmalsahoo commented May 6, 2020

@chrmarti The issue is still reproduced in the VS code version.
Version: 1.44.2 (user setup)
Commit: ff91584
Date: 2020-04-16T16:36:23.138Z
Electron: 7.1.11
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18363

chrmarti added a commit that referenced this issue Jun 16, 2020
@chrmarti chrmarti added this to the June 2020 milestone Jun 16, 2020
@chrmarti
Copy link
Contributor

@isidorn Pushed a partial fix adding aria-label to the group elements. The links inside the group are still not read. Maybe group is not the right role. Could you advise?

We have several buttons with a header and some text in it. Two of the buttons also have links embedded. Currently these two buttons have role "group". Previously the group buttons' headers were not read, adding aria-label to them fixed this. The links are still not read and tabbing to the links shows like a secondary focus border (not sure if that is a hint towards what is going on):
image

@isidorn
Copy link
Contributor

isidorn commented Jun 16, 2020

@chrmarti thanks for looking into this!
I just tried it out, and at the end these guys are buttons, when you click on them they behave like buttons and they react on enter / space. Thus I suggest to use role button.

The links should also be read. So I would experiment with the aria label on the links if there is no other way for the screen reader to also make it read. You could potentialy also set role:link on them.

@chrmarti
Copy link
Contributor

Using the default role 'button' seems indeed better. With this it reads the entire button's text (just like for Color Theme). When I then tab into the button, giving focus to the links, it still does not read anything. Adding aria-label to the links just makes it read the aria-label (instead of the visible text) when reading the entire button, but it remains silent when tabbing to the links themselves. Setting role 'link' on the links did not have any effect.

Clearly the behavior of the links inside the button is different from the behavior in the lists on the left of the Welcome page where they are read as expected. Embedding the links in the button in a list inside the button didn't help. I guess the screen reader tries to avoid reading the same elements twice.

I'll push the removal of the "role": "group" attributes as this seems to be an improvement and revert yesterdays change.

@isidorn Let me know if you can think of anything else I can try.

chrmarti added a commit that referenced this issue Jun 17, 2020
chrmarti added a commit that referenced this issue Jun 17, 2020
@isidorn
Copy link
Contributor

isidorn commented Jun 17, 2020

@chrmarti thanks! If you have time maybe check if NVDA or Orca behaves the same, it might be some specific VoiceOver behavior that links are not read.

Maybe @MarcoZehe has some ideas why links are handeld differently when inside a button role on macOS.

@MarcoZehe
Copy link
Contributor

Quite simple: Buttons do not allow for interactive children. The fact that NVDA and Orca by accident do something right is nothing more than that. Buttons have text content, maybe a graphic, but never ever ever a link, other button, or form elements etc. inside of them. Never.

@isidorn
Copy link
Contributor

isidorn commented Jun 17, 2020

@MarcoZehe thanks! Might there be a better role for our use case here then. Bascicaly the whole element is clickable and behaves like a button, inside is is a text which inside it has a link.

@MarcoZehe
Copy link
Contributor

No. What this is is a dialog, or at least a grouping, with a (yet to be added) Close button, and a link inside. This is not only a problem for screen reader users, but also for keyboard users, since theoretically, with a link inside the button, focus is in two places at once, which can never be. So, this thing needs to get a proper Close button. Clicking on the rest of the group may forward that to the Close button, except for the link, so the mouse user can still click on this and dismiss it. But still, the only proper way to do this is with a Close button.

@chrmarti chrmarti added the accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues label Jun 26, 2020
@chrmarti
Copy link
Contributor

After more discussion we decided to close this issue as fixed. The fix being the removal of the group role. That make VoiceOver read out the button's text without the need for an aria-label. Let me know if you have any concerns.

@isidorn
Copy link
Contributor

isidorn commented Jun 26, 2020

This makes sense to me Christof, thank for looking into it. If we get more specific complains in this area we can revisit this.

@alexr00
Copy link
Member

alexr00 commented Jul 6, 2020

Verified that the entire Tools and languages and the entire Settings and keybindings buttons are read and say "button". However, as noted, the links with in each element are not read when tabbed to.

@alexr00 alexr00 added the verified Verification succeeded label Jul 6, 2020
@github-actions github-actions bot locked and limited conversation to collaborators Aug 10, 2020
@isidorn isidorn added macos Issues with VS Code on MAC/OS X a11ymas Issue from accessibility team windows VS Code on Windows issues and removed windows VS Code on Windows issues labels Jan 27, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a11ymas Issue from accessibility team accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues bug Issue identified by VS Code Team member as probable bug macos Issues with VS Code on MAC/OS X verified Verification succeeded workbench-welcome Welcome page issues
Projects
None yet
Development

No branches or pull requests

6 participants