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

Select panel: custom screen reader announcements #4968

Merged
merged 8 commits into from
Sep 20, 2024

Conversation

siddharthkp
Copy link
Member

@siddharthkp siddharthkp commented Sep 16, 2024

Context

Browser + screen reader combinations have different default announcements. We are trying to fill in the gaps, which leads to great results for some combinations but redundant/verbose results for others. See notes below for more information.

We shy away from browser + OS (proxy for screen reader) detection to optimise these results, in order to avoid accidentally doing more harm than good. We are choosing redundancy/verbosity over missing information.

Rollout strategy

  • Patch release
  • Minor release
  • Major release; if selected, include a written rollout or migration plan
  • None; if selected, include a brief description as to why

Testing & Reviewing

Voiceover on MacOS + Safari

Notes: Safari has the least amount of automated announcements, so our additions fill in the gaps very nicely.

  • 🟢 On first open, Safari (default announcements) tells the user about the structure, Then, we inform the user about focus state.
  • 🟢 On updates to results, Safari announces nothing. We inform user about focused item, selection state and number of items
Event Before After (with custom announcements)
recording
voiceover-safari-without-custom-announcements.mov
voiceover-safari-with-custom-announcements.mov
On panel open Select labels Filter items, web dialogue, with 6 items, Filter items. Items will be filtered as you type, edit text.

Select labels Filter items, web dialogue, with 6 items, Filter items. Items will be filtered as you type, edit text.
Focus on filter text box and list of items, Focused item: enhancement, selected, 1 of 7
type letter "b" silence List updated, Focused item: bug, selected, 1 of 3
type letter "l" silence List updated, Focused item: blocker, not selected, 1 of 1
type letter "a" (no results) silence No matching items.

Voiceover on MacOS + Chrome

Notes: Chrome has more automated announcements than Safari, so our additions could sometimes be seen as noisy or redundant

  • 🟡 On first open, Chrome (default announcements) tells the user about the structure without any details + the focused item, selection state and number of items. Then, we inform the user about the focused input AND the focused item, selection state and number of items.
  • 🟡 On updates to results, Chrome announces the current selected item, selection state and number of items. We also inform the user about focused item, selection state and number of items
Event Before After (with custom announcements)
recording
voiceover-chrome-without-announcements.mov
voiceover-chrome-with-custom-announcements.mov
On panel open dialogue, with 6 items enhancement selected, selected, (1 of 7)


dialogue, with 6 items enhancement selected, selected, (1 of 7)
Focus on filter text box and list of labels, Focused item: enhancement, selected, 1 of 7
type letter "b" bug selected, selected, (1 of 3)


bug selected, selected, (1 of 3)
List updated, Focused item: bug, selected, 1 of 3
type letter "l" blocker not selected, selected, (1 of 1)


blocker not selected, selected, (1 of 1)
List updated, Focused item: blocker, not selected, 1 of 1
type letter "a" (no results) bla, Insertion at end of text., Filter items Items will be filtered as you type, edit text


bla, Insertion at end of text., Filter items Items will be filtered as you type, edit text
No matching items.

NVDA on Windows + Edge/Chrome

Notes: NVDA includes more information about the structure, so our additions could sometimes be seen as noisy or redundant. Chrome has the same exact behavior as Edge.

  • 🟡 On first open, Edge/Chrome (default announcements) tells the user about the structure + the focused item and number of items, but not it's selection state. Then, we inform the user about the focused input AND the focused item, selection state and number of items.
  • 🟢 On updates to results, Edge/Chrome announces the current selected item but not it's selection state or number of items. We also inform the user about focused item, selection state and number of items
Event Before After (with custom announcements)
recording
nvda-edge-without-announcements.mov
nvda-edge-with-announcements.mov
On panel open Select labels dialog. Use labels to organize issues and pull requests.
Select labels list.
enhancement 1 of 7


Select labels dialog. Use labels to organize issues and pull requests.
Select labels list.
enhancement 1 of 7
Focus on filter text box and list of labels, Focused item: enhancement, selected, 1 of 7
type letter "b" b. bug

b. bug.
List updated, Focused item: bug, selected, 1 of 3
type letter "l" l. blocker, not selected

l. blocker, not selected.
List updated, Focused item: blocker, not selected, 1 of 1
type letter "a" (no results) a. Filter items edit Items will be filtered as you type, bla

a. Filter items edit Items will be filtered as you type, bla.
No matching items.

Merge checklist

Copy link

changeset-bot bot commented Sep 16, 2024

🦋 Changeset detected

Latest commit: 473a5a2

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@primer/react Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions bot added the staff Author is a staff member label Sep 16, 2024
@github-actions github-actions bot temporarily deployed to storybook-preview-4968 September 16, 2024 14:39 Inactive
@siddharthkp siddharthkp self-assigned this Sep 16, 2024
Copy link
Contributor

github-actions bot commented Sep 16, 2024

size-limit report 📦

Path Size
packages/react/dist/browser.esm.js 97.78 KB (+0.33% 🔺)
packages/react/dist/browser.umd.js 98.18 KB (+0.51% 🔺)

@github-actions github-actions bot temporarily deployed to storybook-preview-4968 September 17, 2024 13:10 Inactive
@siddharthkp siddharthkp changed the title WIP: Select panel announcements WIP: Select panel custom screen reader announcements Sep 18, 2024
@github-actions github-actions bot temporarily deployed to storybook-preview-4968 September 18, 2024 13:37 Inactive
@siddharthkp siddharthkp marked this pull request as ready for review September 18, 2024 14:08
@siddharthkp siddharthkp requested a review from a team as a code owner September 18, 2024 14:08
Copy link
Collaborator

@camertron camertron left a comment

Choose a reason for hiding this comment

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

Awesome, well done!

@siddharthkp
Copy link
Member Author

siddharthkp commented Sep 20, 2024

Update: merged and upgraded 🎉

@siddharthkp siddharthkp added this pull request to the merge queue Sep 20, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 20, 2024
@siddharthkp siddharthkp added this pull request to the merge queue Sep 20, 2024
Merged via the queue into main with commit da0f48b Sep 20, 2024
32 checks passed
@siddharthkp siddharthkp deleted the select-panel-announcements-2 branch September 20, 2024 18:00
@siddharthkp siddharthkp changed the title WIP: Select panel custom screen reader announcements Select panel custom screen reader announcements Sep 20, 2024
@primer primer bot mentioned this pull request Sep 20, 2024
@siddharthkp siddharthkp changed the title Select panel custom screen reader announcements Select panel: ccustom screen reader announcements Sep 20, 2024
@siddharthkp siddharthkp changed the title Select panel: ccustom screen reader announcements Select panel: custom screen reader announcements Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants