-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Custom calendar VoiceOver improvements #17756
Custom calendar VoiceOver improvements #17756
Conversation
VoiceOver users typically navigate by headings, rather than by scrolling. Previously, the "January 2022" headers within the calendar collection view were not accessible via voiceover Headings navigation. This change allows a VoiceOver user to step through the months one at a time.
Previously, the weekday headers were individually selectable accessibility elements, which were not linked in the VoiceOver heirarchy with the DateCells which they related to. This meant that in VoiceOver, there was no way to know what day of the week the focused day was, and the user had to swipe through the unusable day of the week headings before getting to the DateCells. This change removes the weekday headings from the VoiceOver heirarchy, and announces the weekday along with the date when the user focuses on a DateCell, e.g. "Wednesday, 12th January 2022".
Previously, there were no indicators to VoiceOver users that dates were selectable, nor which dates were selected. Announces date cells as buttons, with those at the beginning and end of of a range, or individually selected, annouced as "Selected". e.g. VoiceOver would announce "Selected, Thursday, the sixth of January, 2022, button" for a selected date, or "Friday, the seventh of January, 2022, button" for an unselected date.
Previously, the date range header in the Activity Log calendar filter was announced by VoiceOver as three separate elements. They were read as "Start date; hyphen; End date" or "The fifth of January, 2021; hyphen; End date" or "The fifth of January, 2021; hyphen; The seventh of January, 2021". This did not give good context to the user that it represented the selection made in the calendar, nor the true meaning of these labels. This change makes VoiceOver read the summary as a single element, with a localized accessibilty label that describes the selection the user has made. First: "No date range selected" With one selection: "Selected range: the fifth of January, 2021 only" With two selections: "Selected range: the fifth of January 2021 to the seventh of January 2021" N.B. selecting 1 date only is valid, and the user can tap done in that state. This filter shows only that day's logs, not an open ended search to today.
Gives descriptive accessibilityLabels to the previous/next month buttons on Schedule Post
You can trigger an installable build for these changes by visiting CircleCI here. |
You can trigger optional UI/connected tests for these changes by visiting CircleCI here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💯 LGTM! Thank you for your detailed commit messages -- it made it way easier to understand the issue you were solving and your solution!
Part of #15722
Description
This improves the VoiceOver announcements for the calendars in a variety of ways. Each commit covers one of the five areas detailed below, and the commit message gives details on exactly what changes are made, what the previous state was, and why the changes are improvements. Testing notes below cover the changes which I made.
Addresses:
To test:
On the Activity Log for a site with filters available:
Scenario 1
Scenario 2
Scenario 3
Scenario 4
On the Schedule Post calendar:
Scenario 5
Scenario 6
Scenario 7
Screenshots
This video covers the above testing scenarios in order. Sound on!
VoiceOver.improvements.on.calendars.mp4
Regression Notes
Potential unintended areas of impact
There are no other areas where the Calendar is used, and both uses have been carefully tested for these changes. The calendars do behave differently but share code, so both should be tested.
What I did to test those areas of impact (or what existing automated tests I relied on)
Navigating, selecting, changing dates using Voiceover.
What automated tests I added (or what prevented me from doing so)
None
PR submission checklist:
RELEASE-NOTES.txt
if necessary.