Skip to content

[EuiFlyout] Missing flyout title in screen reader announcement#9398

Merged
alexwizp merged 6 commits intoelastic:mainfrom
alexwizp:feb-18
Feb 25, 2026
Merged

[EuiFlyout] Missing flyout title in screen reader announcement#9398
alexwizp merged 6 commits intoelastic:mainfrom
alexwizp:feb-18

Conversation

@alexwizp
Copy link
Contributor

@alexwizp alexwizp commented Feb 18, 2026

Summary

Fixes an accessibility gap in EuiFlyout where 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 in EuiFlyout (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:

Screens

NVDA

image

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

  • Browser QA
    • Checked in both light and dark modes
    • 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
  • Docs site QA
  • Code quality checklist
  • Release checklist
    • A changelog entry exists and is marked appropriately.
    • If applicable, added the breaking change issue label (and filled out the breaking change checklist)
  • Designer 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)

data-autofocus={!isPushed || undefined}
onAnimationEnd={onAnimationEnd}
>
<EuiFlyoutParentProvider>{children}</EuiFlyoutParentProvider>
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Note

The key change is that PR is here

@alexwizp alexwizp marked this pull request as ready for review February 19, 2026 09:53
@alexwizp alexwizp requested a review from a team as a code owner February 19, 2026 09:53
@tkajtoch tkajtoch self-requested a review February 20, 2026 12:44
@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

Copy link
Member

@tkajtoch tkajtoch left a comment

Choose a reason for hiding this comment

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

Changes look and work good 🚢

@alexwizp alexwizp merged commit 93379e8 into elastic:main Feb 25, 2026
5 checks passed
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.

3 participants