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
Comments
@isidorn Pushed a partial fix adding 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 |
@chrmarti thanks for looking into this! 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. |
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 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 |
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. |
@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. |
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. |
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. |
This makes sense to me Christof, thank for looking into it. If we get more specific complains in this area we can revisit this. |
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. |
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:
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
The text was updated successfully, but these errors were encountered: