Skip to content

Conversation

@jorgeoliveira117
Copy link

@jorgeoliveira117 jorgeoliveira117 commented Nov 18, 2025

Closes #9161

Summary

Updates focus behavior in EuiSelectable and ARIA attributes to match best practices. When focusing the search input, the active option remains visually focused, and aria-activedescendant is only added when an option is active.

Why are we making this change?

  • To preserve focus: Moving focus between the search input and the item list should keep the active option visually focused, improving keyboard navigation.

  • ARIA compliance: aria-activedescendant should only be present when there is an active descendant. An empty string is invalid.

Screenshots

Before:
When we open the popover/dialog and focus inside the Selectable component, the first item on the list is also focused

Before.mp4

After:
When we focus inside the Selectable component, now the first item isn't focused, only the search input

After.mp4

Impact to users

🟢 No breaking changes. No code updates are required on consumer side.

ℹ️ This fix has been run in Kibana CI and required test changes have been prepared here.

✨ User value

  • Better keyboard navigation as active option remains visible when focusing the search input
  • Improved accessibility as ARIA attributes follow best practices
  • More consistent UX when switching between search and list

QA

General checklist

  • Browser QA
    • Checked in both MacOS and Windows high contrast modes
    • Checked in mobile
    • Checked in Chrome, Safari, Edge, and Firefox
    • Checked for accessibility including keyboard-only and screenreader modes
  • Code quality checklist
  • Release checklist

@jorgeoliveira117 jorgeoliveira117 marked this pull request as ready for review November 20, 2025 11:26
@jorgeoliveira117 jorgeoliveira117 requested a review from a team as a code owner November 20, 2025 11:26
@mgadewoll mgadewoll self-requested a review November 20, 2025 15:25
Copy link
Contributor

@mgadewoll mgadewoll left a comment

Choose a reason for hiding this comment

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

Thanks for picking up this A11y fix!
I left a couple small comments for improvements, but in general the proposed update works as expected (tested in Jaws, NVDA and VoiceOver). 🎉

⚠️ Let's make sure to run the changes in Kibana CI and wait for the results to understand what might break and if there is anything else we might need to address.

@mgadewoll
Copy link
Contributor

ℹ️ @jorgeoliveira117 I merged main into your branch to have it updated before merging.
I also confirmed that the latest run of these changes on Kibana CI looked clean 👍

Copy link
Contributor

@mgadewoll mgadewoll left a comment

Choose a reason for hiding this comment

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

🟢 The changes work as expected and fix the A11y issue.
Thank you for contributing! 🎉

@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

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.

[EuiSelectable][A11y] Search input is not read out by screen readers

3 participants