Skip to content

fix(datetime): wheel picker is easier to use with screen readers #25742

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

Closed
wants to merge 8 commits into from

Conversation

liamdebeasi
Copy link
Contributor

@liamdebeasi liamdebeasi commented Aug 9, 2022

Pull request checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been reviewed and added / updated if needed (for bug fixes / features)
    • Some docs updates need to be made in the ionic-docs repo, in a separate PR. See the contributing guide for details.
  • Build (npm run build) was run locally and any changes were pushed
  • Lint (npm run lint) has passed locally and any fixes were made for failures

Pull request type

Please check the type of change your PR introduces:

  • Bugfix
  • Feature
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Documentation content changes
  • Other (please describe):

What is the current behavior?

Issue URL: resolves #25221

Currently, swiping left/right with a screen reader enabled moves users between buttons within a single picker column. This makes it very difficult to move between columns because users need to swipe through all buttons in a column before proceeding to the next one.

What is the new behavior?

  • Adds the "role="spinbutton"` on the picker column. This makes it so that swiping moves between columns instead of moving between buttons within a single column. Users can then double tap to scroll a wheel up or down to select a new value.
  • Adding spinbutton requires a label to be added. We add a default "Picker Item" label that devs can customize. This was done so that devs do not get a set of new a11y issues if this fix ships.

Does this introduce a breaking change?

  • Yes
  • No

Other information

main branch
before.mp4
after.mp4

Note: There is a Safari bug where the values are read as "50%" when the spinbutton value is a percentage. It still reads the selected day/year, but it will also read "50%". See: https://bugs.webkit.org/show_bug.cgi?id=221102

@github-actions github-actions bot added the package: core @ionic/core package label Aug 9, 2022
@liamdebeasi
Copy link
Contributor Author

Closing for now. Will re-open when I have time to revisit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package: core @ionic/core package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

bug: datetime month/year picker is hard to use with screen readers
1 participant