Skip to content

Controls: Improve accessibility of BooleanControl for screen readers#24418

Merged
cdedreuille merged 5 commits into
storybookjs:nextfrom
danielmarcano:toggle-accessibility-fix
Oct 31, 2023
Merged

Controls: Improve accessibility of BooleanControl for screen readers#24418
cdedreuille merged 5 commits into
storybookjs:nextfrom
danielmarcano:toggle-accessibility-fix

Conversation

@danielmarcano

Copy link
Copy Markdown
Contributor

Closes #24128

What I did

  • Fixed the accessibility of the BooleanControl component, based on the W3C Web Accessibility Initiative recipes for the Switch component. This way, screen readers read a more accurate label.

Checklist for Contributors

Testing

The changes in this PR are covered in the following automated tests:

  • stories
  • unit tests
  • integration tests
  • end-to-end tests

Manual testing

This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!

Documentation

  • Add or update documentation reflecting your changes
  • If you are deprecating/removing a feature, make sure to update
    MIGRATION.MD

Checklist for Maintainers

  • When this PR is ready for testing, make sure to add ci:normal, ci:merged or ci:daily GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in code/lib/cli/src/sandbox-templates.ts

  • Make sure this PR contains one of the labels below:

    Available labels
    • bug: Internal changes that fixes incorrect behavior.
    • maintenance: User-facing maintenance tasks.
    • dependencies: Upgrading (sometimes downgrading) dependencies.
    • build: Internal-facing build tooling & test updates. Will not show up in release changelog.
    • cleanup: Minor cleanup style change. Will not show up in release changelog.
    • documentation: Documentation only changes. Will not show up in release changelog.
    • feature request: Introducing a new feature.
    • BREAKING CHANGE: Changes that break compatibility in some way with current major version.
    • other: Changes that don't fit in the above categories.

🦋 Canary release

This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the @storybookjs/core team here.

core team members can create a canary release here or locally with gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=<PR_NUMBER>

@danielmarcano

Copy link
Copy Markdown
Contributor Author

Hi there, @JReinhold and @cdedreuille.

Would it be possible to label this PR as "hacktoberfest-accepted" once you have reviewed it and given that you consider these changes to be valid?

Thanks in advance.

@JReinhold JReinhold self-assigned this Oct 10, 2023
@JReinhold JReinhold changed the title fix: enhance accessibility of BooleanControl component so that a screenreader reads the correct label Controls: Improve accessibility of BooleanControl for screen readers Oct 10, 2023

@JReinhold JReinhold left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is great, thank you! could you provide a short audio/video clip of how the screen reader narrates it with this fix?

@JReinhold JReinhold added hacktoberfest-accepted ci:normal Run our default set of CI jobs (choose this for most PRs). labels Oct 10, 2023
@danielmarcano

danielmarcano commented Oct 10, 2023

Copy link
Copy Markdown
Contributor Author

this is great, thank you! could you provide a short audio/video clip of how the screen reader narrates it with this fix?

Hi, @JReinhold, thank you for the review.

Here's a short video showcasing the way this one is read by Voice Over on macOS:

voice-over-test.mov

In synth, the component is now read as:

  • A switch, which indicates the off/on nature to the user
  • The value is mentioned correctly
  • The name of the property that this switch relates to is now part of the description as well

Let me know if this would be good to go ✨

Edit: I noticed there were some test errors, and have fixed them. They were due to the Undefined story not being passed the required name prop.

@danielmarcano danielmarcano force-pushed the toggle-accessibility-fix branch from 83bed38 to ad10877 Compare October 11, 2023 11:36
Comment thread code/ui/blocks/src/controls/Boolean.tsx
@danielmarcano danielmarcano requested a review from yannbf October 22, 2023 21:49
@cdedreuille cdedreuille merged commit 994689d into storybookjs:next Oct 31, 2023
@vanessayuenn vanessayuenn added bug and removed maintenance User-facing maintenance tasks labels Nov 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

accessibility addon: controls bug ci:normal Run our default set of CI jobs (choose this for most PRs). hacktoberfest-accepted ui

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: While navigating to “True/False” button in controls pane narrator announcing as true false check box checked which is incorrect.

5 participants