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

fix: screen readers don't announce the indeterminate state correctly in checkbox #6448

Closed
MaiLeeTR opened this issue Oct 12, 2022 · 3 comments · Fixed by #6451
Closed

fix: screen readers don't announce the indeterminate state correctly in checkbox #6448

MaiLeeTR opened this issue Oct 12, 2022 · 3 comments · Fixed by #6451
Assignees
Labels
area:fast-foundation Pertains to fast-foundation bug A bug community:request Issues specifically reported by a member of the community. compliance:a11y Accessibility compliance.

Comments

@MaiLeeTR
Copy link

🐛 Bug Report

The indeterminate state of the checkbox isn't announced correctly to users who use screen reader software and declares the state as "checked."

Screen readers will announce the indeterminate state in different ways, such as "mixed" (iOS), "half-checked" (NVDA), "partially checked" (JAWS), or "partially ticked" (TalkBack). (2.1.1)(1.3.1)(4.1.2)

Also agree that there should also be an indeterminate content attribute #4084.

💻 Repro or Code Sample

  1. Turn on screen reader software
  2. Use the Tab key to navigate to the Checkbox Indeterminate example
    • I couldn't produce the indeterminate state in Component Explorer and ran the FAST repo locally to test.
  3. Notice that the screen reader software announces the indeterminate state as "checked"

🤔 Expected Behavior

Screen readers will announce the indeterminate state in different ways, such as "mixed" (iOS), "half-checked" (NVDA), "partially checked" (JAWS), or "partially ticked" (TalkBack). (2.1.1)(1.3.1)(4.1.2)

😯 Current Behavior

fast-checkbox is setting aria-checked="true" for indeterminate state
Screen Shot 2022-10-12 at 12 04 37 PM

Example from Aria Authoring Practices Guide is setting aria-checked="mixed" for indeterminate state
Screen Shot 2022-10-12 at 12 02 59 PM

💁 Possible Solution

Set aria-checked="mixed" for indeterminate state.

🔦 Context

This issue has accessibility implications and is not delivering correct information to screen reader users. ARIA guidelines from the W3C provides excellent documentation about mixed-state checkboxes.

🌍 Your Environment

  • MacOS
  • Google Chrome Version 106.0.5249.103
  • VoiceOver
@MaiLeeTR MaiLeeTR added the status:triage New Issue - needs triage label Oct 12, 2022
@chrisdholt
Copy link
Member

Thanks for this - picking it up :)

@chrisdholt chrisdholt self-assigned this Oct 12, 2022
@chrisdholt chrisdholt added bug A bug area:fast-foundation Pertains to fast-foundation community:request Issues specifically reported by a member of the community. compliance:a11y Accessibility compliance. and removed status:triage New Issue - needs triage labels Oct 12, 2022
@chrisdholt
Copy link
Member

There is a PR out with a fix for this issue.

With regards to this:

Also agree that there should also be an indeterminate content attribute #4084.

Definitely appreciate the feedback here. While these are ARIA radios and not inputs with a type of checkbox, I'm not ready yet to add a content attribute given the current platform API for checkboxes and indeterminate being strictly a property. We'll certainly keep an eye on it. If we wanted to change platform behavior to reflect the property as an attribute, that may be something that could be opened up in Open UI as something to gather community feedback and momentum around.

@MaiLeeTR
Copy link
Author

Thanks for this - picking it up :)

Thanks for the quick response and turnaround time for getting a fix in! Really appreciate it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:fast-foundation Pertains to fast-foundation bug A bug community:request Issues specifically reported by a member of the community. compliance:a11y Accessibility compliance.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants