[EuiFlyout] Missing flyout title in screen reader announcement#9398
Merged
alexwizp merged 6 commits intoelastic:mainfrom Feb 25, 2026
Merged
[EuiFlyout] Missing flyout title in screen reader announcement#9398alexwizp merged 6 commits intoelastic:mainfrom
alexwizp merged 6 commits intoelastic:mainfrom
Conversation
alexwizp
commented
Feb 19, 2026
| data-autofocus={!isPushed || undefined} | ||
| onAnimationEnd={onAnimationEnd} | ||
| > | ||
| <EuiFlyoutParentProvider>{children}</EuiFlyoutParentProvider> |
Contributor
Author
There was a problem hiding this comment.
Note
The key change is that PR is here
Collaborator
💚 Build SucceededHistory
|
Collaborator
💚 Build Succeeded
History
|
tkajtoch
approved these changes
Feb 24, 2026
Member
tkajtoch
left a comment
There was a problem hiding this comment.
Changes look and work good 🚢
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes an accessibility gap in
EuiFlyoutwhere the screen reader “region” announcement could be missing the flyout title. The flyout now ensures a reliable accessible name is present so assistive tech announces the flyout with its title instead of only announcing a generic region.Why are we making this change?
Even when a dialog name is provided, the screen reader ignores it in the current implementation. If we move the interactive buttons lower in the DOM, the expected behavior is restored.
We previously implemented a similar fix for
EuiModal(see #8954) and also made an initial attempt to address this issue inEuiFlyout(see #9212).More context
During our initial attempt to resolve this issue, we encountered a problem (see #9212 (review)) where NVDA announced the entire flyout body when the flyout opened . This occurred because, by default, NVDA is configured to announce all focusable elements. In our case, the body container was assigned
tabIndex="0",which caused it to receive focus and triggered the unintended announcement.To address this behavior:
added
role="region"to the scrollable container, following the guidance provided by MDN for scrollable content areas:http://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/region_role#scrolling_content_areas_with_overflow_text
introduced a default
aria-labelto prevent NVDA from announcing the entire body content for users who have enabled the option to automatically read focusable elements.Screens
NVDA
Impact to users
ℹ️ Affects UX for keyboard users - focus on the close button will be at the end.
ℹ️ Due to the DOM changes, it's expected that snapshots might require updates.
General checklist
Checked in both light and dark modesChecked in both MacOS and Windows high contrast modesChecked in mobileProps have proper autodocs (using@defaultif default values are missing) and playground togglesChecked Code Sandbox works for any docs examplesUpdated visual regression testsIf applicable, added the breaking change issue label (and filled out the breaking change checklist)If applicable, file an issue to update EUI's Figma library with any corresponding UI changes. (This is an internal repo, if you are external to Elastic, ask a maintainer to submit this request)