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

Multi-select useCombobox: VoiceOver bug when deselecting item #1555

Open
emlai opened this issue Nov 8, 2023 · 2 comments
Open

Multi-select useCombobox: VoiceOver bug when deselecting item #1555

emlai opened this issue Nov 8, 2023 · 2 comments

Comments

@emlai
Copy link

emlai commented Nov 8, 2023

  • downshift version: 8.2.2
  • OS: macOS 13.6.1
  • Browser: Chrome 119.0.6045.123

Relevant code or config

The basic multiple selection combobox example: https://www.downshift-js.com/use-combobox/#basic-multiple-selection

What you did:

Deselect item

What happened:

After deselecting an item, VoiceOver moves to the first selected item in the list:

Screen.Recording.2023-11-08.at.17.11.18.mov

Reproduction repository:

Reproduces in the example: https://www.downshift-js.com/use-combobox/#basic-multiple-selection

Problem description:

I think VoiceOver should stay on the focused item even after deselecting it.

It works as expected in the Ariakit multi-select combobox: https://ariakit.org/examples/combobox-multiple

Suggested solution:

@silviuaavram
Copy link
Collaborator

I tried to figure out briefly what's going on but no luck. Could someone take a better look?

@martakule
Copy link

👋 Hi there!

Just ran into the same problem during an a11y audit of a new multi-select component based on this Downshift example.

We confirmed that on Safari the focus ring actually stays on the toggle button, so it behaves as expected:

safari-voiceover

It's only in Chrome (and I assume Edge) and Firefox that the focus ring jumps around. The GIF below is Chrome:

chrome-voiceover

I recall years ago Apple recommending using VoiceOver with Safari since they couldn't guarantee the correct behaviour in other browsers, but I don't see that language in the official guide anymore.

We're still googling for any information about how VoiceOver determines the focus ring position, but not having much luck so far. I'm subscribing to this issue in case anyone else finds the cause!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants