Skip to content

Fix @elastic/eui/require-aria-label-for-modals violations across kibana-data-discovery files#259315

Merged
alexwizp merged 13 commits intomainfrom
copilot/fix-eslint-violations-modal-labels
Mar 25, 2026
Merged

Fix @elastic/eui/require-aria-label-for-modals violations across kibana-data-discovery files#259315
alexwizp merged 13 commits intomainfrom
copilot/fix-eslint-violations-modal-labels

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 24, 2026

Closes: #259304

20 EuiPopover, EuiModal, EuiFlyout, and EuiWrappingPopover components were missing required aria-label props across 18 files owned by @elastic/kibana-data-discovery, violating WCAG 2.2 AA accessibility requirements.

Changes

  • Added aria-label to 16 EuiPopover components across discover, data_view_management, kbn-unified-tabs, kbn-unified-field-list, kbn-search-response-warnings, and data_view_editor
  • Added aria-label to 1 EuiModal (image_preview_modal.tsx)
  • Added aria-label to 1 EuiFlyout (help_flyout.tsx)
  • Added aria-label to 1 EuiWrappingPopover (use_row_header_components.tsx)
  • Reused existing translated strings where available (e.g. menuButtonLabel, filterAriaLabel, badgeText) to avoid duplicate copy; added new i18n.translate() calls only where no suitable string existed
  • Added i18n imports to the handful of files that were missing them

Example of the pattern applied:

// Before
<EuiPopover
  id={contextMenuPopoverId}
  isOpen={isPopoverOpen}
  ...
>

// After — reusing an already-translated nearby string
<EuiPopover
  id={contextMenuPopoverId}
  aria-label={menuButtonLabel}
  isOpen={isPopoverOpen}
  ...
>

use_table_header_components.tsx was listed in the issue but was already compliant; no change needed there.


💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

…na-data-discovery files

Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Agent-Logs-Url: https://github.com/elastic/kibana/sessions/91439a1c-5f64-4699-879f-934da574b785
Copilot AI changed the title [WIP] Fix eslint violations for require-aria-label-for-modals rule Fix @elastic/eui/require-aria-label-for-modals violations across kibana-data-discovery files Mar 24, 2026
Copilot AI requested a review from alexwizp March 24, 2026 11:42
@alexwizp alexwizp added backport:version Backport to applied version labels v9.4.0 v9.3.3 v9.2.8 a11y:agent-pr PR has been created by the agent Project:Accessibility labels Mar 24, 2026
@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp alexwizp marked this pull request as ready for review March 24, 2026 19:20
@alexwizp alexwizp requested review from a team as code owners March 24, 2026 19:20
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/kibana-accessibility (Project:Accessibility)

@alexwizp alexwizp added the release_note:skip Skip the PR/issue when compiling release notes label Mar 24, 2026
@alexwizp
Copy link
Copy Markdown
Contributor

/ci

Copy link
Copy Markdown
Contributor

@justinkambic justinkambic left a comment

Choose a reason for hiding this comment

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

obs-exploration changes LGTM

Copy link
Copy Markdown
Contributor

@jughosta jughosta left a comment

Choose a reason for hiding this comment

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

Thanks!

alexwizp and others added 3 commits March 25, 2026 10:41
…/form_fields/title_docs_popover.tsx

Co-authored-by: Julia Rechkunova <julia.rechkunova@elastic.co>
…ents/field_editor/components/scripting_help/help_flyout.tsx

Co-authored-by: Julia Rechkunova <julia.rechkunova@elastic.co>
@alexwizp alexwizp enabled auto-merge (squash) March 25, 2026 08:41
@alexwizp
Copy link
Copy Markdown
Contributor

@elasticmachine run docs-build

@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@elasticmachine
Copy link
Copy Markdown
Contributor

⏳ Build in-progress, with failures

Failed CI Steps

Test Failures

  • [job] [logs] affected Scout: [ platform / navigation ] plugin / local-serverless-security_complete - navigation - has security serverless side nav
  • [job] [logs] affected Scout: [ platform / navigation ] plugin / local-serverless-security_complete - navigation - opens panel on legacy management landing page
  • [job] [logs] Jest Tests #6 / ScriptingHelpFlyout should render normally
  • [job] [logs] Jest Tests #6 / ScriptingHelpFlyout should render normally
  • [job] [logs] Jest Tests #6 / ScriptingHelpFlyout should render nothing if not visible
  • [job] [logs] Jest Tests #6 / ScriptingHelpFlyout should render nothing if not visible

History

cc @alexwizp @Copilot

@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp
Copy link
Copy Markdown
Contributor

@elasticmachine run docs-build

@alexwizp alexwizp merged commit e9d79de into main Mar 25, 2026
18 checks passed
@alexwizp alexwizp deleted the copilot/fix-eslint-violations-modal-labels branch March 25, 2026 11:57
jeramysoucy pushed a commit to jeramysoucy/kibana that referenced this pull request Mar 26, 2026
…bana-data-discovery files (elastic#259315)

Closes: elastic#259304

20 `EuiPopover`, `EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`
components were missing required `aria-label` props across 18 files
owned by `@elastic/kibana-data-discovery`, violating WCAG 2.2 AA
accessibility requirements.

## Changes

- **Added `aria-label` to 16 `EuiPopover` components** across
`discover`, `data_view_management`, `kbn-unified-tabs`,
`kbn-unified-field-list`, `kbn-search-response-warnings`, and
`data_view_editor`
- **Added `aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)
- **Added `aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)
- **Added `aria-label` to 1 `EuiWrappingPopover`**
(`use_row_header_components.tsx`)
- **Reused existing translated strings** where available (e.g.
`menuButtonLabel`, `filterAriaLabel`, `badgeText`) to avoid duplicate
copy; added new `i18n.translate()` calls only where no suitable string
existed
- **Added `i18n` imports** to the handful of files that were missing
them

Example of the pattern applied:

```tsx
// Before
<EuiPopover
  id={contextMenuPopoverId}
  isOpen={isPopoverOpen}
  ...
>

// After — reusing an already-translated nearby string
<EuiPopover
  id={contextMenuPopoverId}
  aria-label={menuButtonLabel}
  isOpen={isPopoverOpen}
  ...
>
```

`use_table_header_components.tsx` was listed in the issue but was
already compliant; no change needed there.

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 Send tasks to Copilot coding agent from
[Slack](https://gh.io/cca-slack-docs) and
[Teams](https://gh.io/cca-teams-docs) to turn conversations into code.
Copilot posts an update in your thread when it's finished.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Alexey Antonov <alexwizp@gmail.com>
Co-authored-by: Julia Rechkunova <julia.rechkunova@elastic.co>
@kibanamachine kibanamachine added the backport missing Added to PRs automatically when the are determined to be missing a backport. label Mar 27, 2026
@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 259315 locally
cc: @alexwizp

1 similar comment
@kibanamachine
Copy link
Copy Markdown
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create automatically backports add a backport:* label or prevent reminders by adding the backport:skip label.
You can also create backports manually by running node scripts/backport --pr 259315 locally
cc: @alexwizp

alexwizp pushed a commit to alexwizp/kibana that referenced this pull request Mar 31, 2026
…bana-data-discovery files (elastic#259315)

Closes: elastic#259304

20 `EuiPopover`, `EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`
components were missing required `aria-label` props across 18 files
owned by `@elastic/kibana-data-discovery`, violating WCAG 2.2 AA
accessibility requirements.

## Changes

- **Added `aria-label` to 16 `EuiPopover` components** across
`discover`, `data_view_management`, `kbn-unified-tabs`,
`kbn-unified-field-list`, `kbn-search-response-warnings`, and
`data_view_editor`
- **Added `aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)
- **Added `aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)
- **Added `aria-label` to 1 `EuiWrappingPopover`**
(`use_row_header_components.tsx`)
- **Reused existing translated strings** where available (e.g.
`menuButtonLabel`, `filterAriaLabel`, `badgeText`) to avoid duplicate
copy; added new `i18n.translate()` calls only where no suitable string
existed
- **Added `i18n` imports** to the handful of files that were missing
them

Example of the pattern applied:

```tsx
// Before
<EuiPopover
  id={contextMenuPopoverId}
  isOpen={isPopoverOpen}
  ...
>

// After — reusing an already-translated nearby string
<EuiPopover
  id={contextMenuPopoverId}
  aria-label={menuButtonLabel}
  isOpen={isPopoverOpen}
  ...
>
```

`use_table_header_components.tsx` was listed in the issue but was
already compliant; no change needed there.

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 Send tasks to Copilot coding agent from
[Slack](https://gh.io/cca-slack-docs) and
[Teams](https://gh.io/cca-teams-docs) to turn conversations into code.
Copilot posts an update in your thread when it's finished.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Alexey Antonov <alexwizp@gmail.com>
Co-authored-by: Julia Rechkunova <julia.rechkunova@elastic.co>
(cherry picked from commit e9d79de)

# Conflicts:
#	examples/discover_customization_examples/moon.yml
#	examples/discover_customization_examples/tsconfig.json
#	src/platform/plugins/shared/discover/public/application/main/components/layout/cascaded_documents/blocks/use_row_header_components.tsx
#	src/platform/plugins/shared/discover/public/embeddable/components/search_embeddable_inline_edit_hover_actions.tsx
@alexwizp
Copy link
Copy Markdown
Contributor

💚 All backports created successfully

Status Branch Result
9.3
9.2

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

alexwizp pushed a commit to alexwizp/kibana that referenced this pull request Mar 31, 2026
…bana-data-discovery files (elastic#259315)

Closes: elastic#259304

20 `EuiPopover`, `EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`
components were missing required `aria-label` props across 18 files
owned by `@elastic/kibana-data-discovery`, violating WCAG 2.2 AA
accessibility requirements.

## Changes

- **Added `aria-label` to 16 `EuiPopover` components** across
`discover`, `data_view_management`, `kbn-unified-tabs`,
`kbn-unified-field-list`, `kbn-search-response-warnings`, and
`data_view_editor`
- **Added `aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)
- **Added `aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)
- **Added `aria-label` to 1 `EuiWrappingPopover`**
(`use_row_header_components.tsx`)
- **Reused existing translated strings** where available (e.g.
`menuButtonLabel`, `filterAriaLabel`, `badgeText`) to avoid duplicate
copy; added new `i18n.translate()` calls only where no suitable string
existed
- **Added `i18n` imports** to the handful of files that were missing
them

Example of the pattern applied:

```tsx
// Before
<EuiPopover
  id={contextMenuPopoverId}
  isOpen={isPopoverOpen}
  ...
>

// After — reusing an already-translated nearby string
<EuiPopover
  id={contextMenuPopoverId}
  aria-label={menuButtonLabel}
  isOpen={isPopoverOpen}
  ...
>
```

`use_table_header_components.tsx` was listed in the issue but was
already compliant; no change needed there.

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 Send tasks to Copilot coding agent from
[Slack](https://gh.io/cca-slack-docs) and
[Teams](https://gh.io/cca-teams-docs) to turn conversations into code.
Copilot posts an update in your thread when it's finished.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Alexey Antonov <alexwizp@gmail.com>
Co-authored-by: Julia Rechkunova <julia.rechkunova@elastic.co>
(cherry picked from commit e9d79de)

# Conflicts:
#	examples/discover_customization_examples/moon.yml
#	examples/discover_customization_examples/tsconfig.json
#	src/platform/plugins/shared/data_view_management/public/components/edit_index_pattern/index_header/index_header.tsx
#	src/platform/plugins/shared/discover/public/application/main/components/layout/cascaded_documents/blocks/use_row_header_components.tsx
#	src/platform/plugins/shared/discover/public/application/main/components/top_nav/solutions_view_badge.tsx
#	src/platform/plugins/shared/discover/public/embeddable/components/search_embeddable_inline_edit_hover_actions.tsx
@kibanamachine
Copy link
Copy Markdown
Contributor

Looks like this PR has backport PRs but they still haven't been merged. Please merge them ASAP to keep the branches relatively in sync.
cc: @alexwizp

alexwizp added a commit that referenced this pull request Mar 31, 2026
…oss kibana-data-discovery files (#259315) (#260392)

# Backport

This will backport the following commits from `main` to `9.3`:
- [Fix `@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery files
(#259315)](#259315)

<!--- Backport version: 11.0.1 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT
[{"author":{"name":"Copilot","email":"198982749+Copilot@users.noreply.github.com"},"sourceCommit":{"committedDate":"2026-03-25T11:57:27Z","message":"Fix
`@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery files (#259315)\n\nCloses:
https://github.com/elastic/kibana/issues/259304\n\n20 `EuiPopover`,
`EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`\ncomponents were
missing required `aria-label` props across 18 files\nowned by
`@elastic/kibana-data-discovery`, violating WCAG 2.2 AA\naccessibility
requirements.\n\n## Changes\n\n- **Added `aria-label` to 16 `EuiPopover`
components** across\n`discover`, `data_view_management`,
`kbn-unified-tabs`,\n`kbn-unified-field-list`,
`kbn-search-response-warnings`, and\n`data_view_editor`\n- **Added
`aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)\n- **Added
`aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)\n- **Added
`aria-label` to 1
`EuiWrappingPopover`**\n(`use_row_header_components.tsx`)\n- **Reused
existing translated strings** where available (e.g.\n`menuButtonLabel`,
`filterAriaLabel`, `badgeText`) to avoid duplicate\ncopy; added new
`i18n.translate()` calls only where no suitable string\nexisted\n-
**Added `i18n` imports** to the handful of files that were
missing\nthem\n\nExample of the pattern applied:\n\n```tsx\n//
Before\n<EuiPopover\n id={contextMenuPopoverId}\n
isOpen={isPopoverOpen}\n ...\n>\n\n// After — reusing an
already-translated nearby string\n<EuiPopover\n
id={contextMenuPopoverId}\n aria-label={menuButtonLabel}\n
isOpen={isPopoverOpen}\n
...\n>\n```\n\n`use_table_header_components.tsx` was listed in the issue
but was\nalready compliant; no change needed there.\n\n\n---\n\n💬 Send
tasks to Copilot coding agent
from\n[Slack](https://gh.io/cca-slack-docs)
and\n[Teams](https://gh.io/cca-teams-docs) to turn conversations into
code.\nCopilot posts an update in your thread when it's
finished.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot]
<198982749+Copilot@users.noreply.github.com>\nCo-authored-by: alexwizp
<20072247+alexwizp@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by:
Alexey Antonov <alexwizp@gmail.com>\nCo-authored-by: Julia Rechkunova
<julia.rechkunova@elastic.co>","sha":"e9d79de71a27d08e9e9f05529415bd9442f5b515","branchLabelMapping":{"^v9.4.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Project:Accessibility","release_note:skip","backport
missing","💝community","backport:version","v9.4.0","v9.3.3","v9.2.8","a11y:agent-pr"],"title":"Fix
`@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery
files","number":259315,"url":"https://github.com/elastic/kibana/pull/259315","mergeCommit":{"message":"Fix
`@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery files (#259315)\n\nCloses:
https://github.com/elastic/kibana/issues/259304\n\n20 `EuiPopover`,
`EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`\ncomponents were
missing required `aria-label` props across 18 files\nowned by
`@elastic/kibana-data-discovery`, violating WCAG 2.2 AA\naccessibility
requirements.\n\n## Changes\n\n- **Added `aria-label` to 16 `EuiPopover`
components** across\n`discover`, `data_view_management`,
`kbn-unified-tabs`,\n`kbn-unified-field-list`,
`kbn-search-response-warnings`, and\n`data_view_editor`\n- **Added
`aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)\n- **Added
`aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)\n- **Added
`aria-label` to 1
`EuiWrappingPopover`**\n(`use_row_header_components.tsx`)\n- **Reused
existing translated strings** where available (e.g.\n`menuButtonLabel`,
`filterAriaLabel`, `badgeText`) to avoid duplicate\ncopy; added new
`i18n.translate()` calls only where no suitable string\nexisted\n-
**Added `i18n` imports** to the handful of files that were
missing\nthem\n\nExample of the pattern applied:\n\n```tsx\n//
Before\n<EuiPopover\n id={contextMenuPopoverId}\n
isOpen={isPopoverOpen}\n ...\n>\n\n// After — reusing an
already-translated nearby string\n<EuiPopover\n
id={contextMenuPopoverId}\n aria-label={menuButtonLabel}\n
isOpen={isPopoverOpen}\n
...\n>\n```\n\n`use_table_header_components.tsx` was listed in the issue
but was\nalready compliant; no change needed there.\n\n\n---\n\n💬 Send
tasks to Copilot coding agent
from\n[Slack](https://gh.io/cca-slack-docs)
and\n[Teams](https://gh.io/cca-teams-docs) to turn conversations into
code.\nCopilot posts an update in your thread when it's
finished.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot]
<198982749+Copilot@users.noreply.github.com>\nCo-authored-by: alexwizp
<20072247+alexwizp@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by:
Alexey Antonov <alexwizp@gmail.com>\nCo-authored-by: Julia Rechkunova
<julia.rechkunova@elastic.co>","sha":"e9d79de71a27d08e9e9f05529415bd9442f5b515"}},"sourceBranch":"main","suggestedTargetBranches":["9.3","9.2"],"targetPullRequestStates":[{"branch":"main","label":"v9.4.0","branchLabelMappingKey":"^v9.4.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/259315","number":259315,"mergeCommit":{"message":"Fix
`@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery files (#259315)\n\nCloses:
https://github.com/elastic/kibana/issues/259304\n\n20 `EuiPopover`,
`EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`\ncomponents were
missing required `aria-label` props across 18 files\nowned by
`@elastic/kibana-data-discovery`, violating WCAG 2.2 AA\naccessibility
requirements.\n\n## Changes\n\n- **Added `aria-label` to 16 `EuiPopover`
components** across\n`discover`, `data_view_management`,
`kbn-unified-tabs`,\n`kbn-unified-field-list`,
`kbn-search-response-warnings`, and\n`data_view_editor`\n- **Added
`aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)\n- **Added
`aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)\n- **Added
`aria-label` to 1
`EuiWrappingPopover`**\n(`use_row_header_components.tsx`)\n- **Reused
existing translated strings** where available (e.g.\n`menuButtonLabel`,
`filterAriaLabel`, `badgeText`) to avoid duplicate\ncopy; added new
`i18n.translate()` calls only where no suitable string\nexisted\n-
**Added `i18n` imports** to the handful of files that were
missing\nthem\n\nExample of the pattern applied:\n\n```tsx\n//
Before\n<EuiPopover\n id={contextMenuPopoverId}\n
isOpen={isPopoverOpen}\n ...\n>\n\n// After — reusing an
already-translated nearby string\n<EuiPopover\n
id={contextMenuPopoverId}\n aria-label={menuButtonLabel}\n
isOpen={isPopoverOpen}\n
...\n>\n```\n\n`use_table_header_components.tsx` was listed in the issue
but was\nalready compliant; no change needed there.\n\n\n---\n\n💬 Send
tasks to Copilot coding agent
from\n[Slack](https://gh.io/cca-slack-docs)
and\n[Teams](https://gh.io/cca-teams-docs) to turn conversations into
code.\nCopilot posts an update in your thread when it's
finished.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot]
<198982749+Copilot@users.noreply.github.com>\nCo-authored-by: alexwizp
<20072247+alexwizp@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by:
Alexey Antonov <alexwizp@gmail.com>\nCo-authored-by: Julia Rechkunova
<julia.rechkunova@elastic.co>","sha":"e9d79de71a27d08e9e9f05529415bd9442f5b515"}},{"branch":"9.3","label":"v9.3.3","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"9.2","label":"v9.2.8","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
alexwizp added a commit that referenced this pull request Mar 31, 2026
…oss kibana-data-discovery files (#259315) (#260393)

# Backport

This will backport the following commits from `main` to `9.2`:
- [Fix `@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery files
(#259315)](#259315)

<!--- Backport version: 11.0.1 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT
[{"author":{"name":"Copilot","email":"198982749+Copilot@users.noreply.github.com"},"sourceCommit":{"committedDate":"2026-03-25T11:57:27Z","message":"Fix
`@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery files (#259315)\n\nCloses:
https://github.com/elastic/kibana/issues/259304\n\n20 `EuiPopover`,
`EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`\ncomponents were
missing required `aria-label` props across 18 files\nowned by
`@elastic/kibana-data-discovery`, violating WCAG 2.2 AA\naccessibility
requirements.\n\n## Changes\n\n- **Added `aria-label` to 16 `EuiPopover`
components** across\n`discover`, `data_view_management`,
`kbn-unified-tabs`,\n`kbn-unified-field-list`,
`kbn-search-response-warnings`, and\n`data_view_editor`\n- **Added
`aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)\n- **Added
`aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)\n- **Added
`aria-label` to 1
`EuiWrappingPopover`**\n(`use_row_header_components.tsx`)\n- **Reused
existing translated strings** where available (e.g.\n`menuButtonLabel`,
`filterAriaLabel`, `badgeText`) to avoid duplicate\ncopy; added new
`i18n.translate()` calls only where no suitable string\nexisted\n-
**Added `i18n` imports** to the handful of files that were
missing\nthem\n\nExample of the pattern applied:\n\n```tsx\n//
Before\n<EuiPopover\n id={contextMenuPopoverId}\n
isOpen={isPopoverOpen}\n ...\n>\n\n// After — reusing an
already-translated nearby string\n<EuiPopover\n
id={contextMenuPopoverId}\n aria-label={menuButtonLabel}\n
isOpen={isPopoverOpen}\n
...\n>\n```\n\n`use_table_header_components.tsx` was listed in the issue
but was\nalready compliant; no change needed there.\n\n\n---\n\n💬 Send
tasks to Copilot coding agent
from\n[Slack](https://gh.io/cca-slack-docs)
and\n[Teams](https://gh.io/cca-teams-docs) to turn conversations into
code.\nCopilot posts an update in your thread when it's
finished.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot]
<198982749+Copilot@users.noreply.github.com>\nCo-authored-by: alexwizp
<20072247+alexwizp@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by:
Alexey Antonov <alexwizp@gmail.com>\nCo-authored-by: Julia Rechkunova
<julia.rechkunova@elastic.co>","sha":"e9d79de71a27d08e9e9f05529415bd9442f5b515","branchLabelMapping":{"^v9.4.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Project:Accessibility","release_note:skip","backport
missing","💝community","backport:version","v9.4.0","v9.3.3","v9.2.8","a11y:agent-pr"],"title":"Fix
`@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery
files","number":259315,"url":"https://github.com/elastic/kibana/pull/259315","mergeCommit":{"message":"Fix
`@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery files (#259315)\n\nCloses:
https://github.com/elastic/kibana/issues/259304\n\n20 `EuiPopover`,
`EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`\ncomponents were
missing required `aria-label` props across 18 files\nowned by
`@elastic/kibana-data-discovery`, violating WCAG 2.2 AA\naccessibility
requirements.\n\n## Changes\n\n- **Added `aria-label` to 16 `EuiPopover`
components** across\n`discover`, `data_view_management`,
`kbn-unified-tabs`,\n`kbn-unified-field-list`,
`kbn-search-response-warnings`, and\n`data_view_editor`\n- **Added
`aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)\n- **Added
`aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)\n- **Added
`aria-label` to 1
`EuiWrappingPopover`**\n(`use_row_header_components.tsx`)\n- **Reused
existing translated strings** where available (e.g.\n`menuButtonLabel`,
`filterAriaLabel`, `badgeText`) to avoid duplicate\ncopy; added new
`i18n.translate()` calls only where no suitable string\nexisted\n-
**Added `i18n` imports** to the handful of files that were
missing\nthem\n\nExample of the pattern applied:\n\n```tsx\n//
Before\n<EuiPopover\n id={contextMenuPopoverId}\n
isOpen={isPopoverOpen}\n ...\n>\n\n// After — reusing an
already-translated nearby string\n<EuiPopover\n
id={contextMenuPopoverId}\n aria-label={menuButtonLabel}\n
isOpen={isPopoverOpen}\n
...\n>\n```\n\n`use_table_header_components.tsx` was listed in the issue
but was\nalready compliant; no change needed there.\n\n\n---\n\n💬 Send
tasks to Copilot coding agent
from\n[Slack](https://gh.io/cca-slack-docs)
and\n[Teams](https://gh.io/cca-teams-docs) to turn conversations into
code.\nCopilot posts an update in your thread when it's
finished.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot]
<198982749+Copilot@users.noreply.github.com>\nCo-authored-by: alexwizp
<20072247+alexwizp@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by:
Alexey Antonov <alexwizp@gmail.com>\nCo-authored-by: Julia Rechkunova
<julia.rechkunova@elastic.co>","sha":"e9d79de71a27d08e9e9f05529415bd9442f5b515"}},"sourceBranch":"main","suggestedTargetBranches":["9.3","9.2"],"targetPullRequestStates":[{"branch":"main","label":"v9.4.0","branchLabelMappingKey":"^v9.4.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/259315","number":259315,"mergeCommit":{"message":"Fix
`@elastic/eui/require-aria-label-for-modals` violations across
kibana-data-discovery files (#259315)\n\nCloses:
https://github.com/elastic/kibana/issues/259304\n\n20 `EuiPopover`,
`EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`\ncomponents were
missing required `aria-label` props across 18 files\nowned by
`@elastic/kibana-data-discovery`, violating WCAG 2.2 AA\naccessibility
requirements.\n\n## Changes\n\n- **Added `aria-label` to 16 `EuiPopover`
components** across\n`discover`, `data_view_management`,
`kbn-unified-tabs`,\n`kbn-unified-field-list`,
`kbn-search-response-warnings`, and\n`data_view_editor`\n- **Added
`aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)\n- **Added
`aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)\n- **Added
`aria-label` to 1
`EuiWrappingPopover`**\n(`use_row_header_components.tsx`)\n- **Reused
existing translated strings** where available (e.g.\n`menuButtonLabel`,
`filterAriaLabel`, `badgeText`) to avoid duplicate\ncopy; added new
`i18n.translate()` calls only where no suitable string\nexisted\n-
**Added `i18n` imports** to the handful of files that were
missing\nthem\n\nExample of the pattern applied:\n\n```tsx\n//
Before\n<EuiPopover\n id={contextMenuPopoverId}\n
isOpen={isPopoverOpen}\n ...\n>\n\n// After — reusing an
already-translated nearby string\n<EuiPopover\n
id={contextMenuPopoverId}\n aria-label={menuButtonLabel}\n
isOpen={isPopoverOpen}\n
...\n>\n```\n\n`use_table_header_components.tsx` was listed in the issue
but was\nalready compliant; no change needed there.\n\n\n---\n\n💬 Send
tasks to Copilot coding agent
from\n[Slack](https://gh.io/cca-slack-docs)
and\n[Teams](https://gh.io/cca-teams-docs) to turn conversations into
code.\nCopilot posts an update in your thread when it's
finished.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot]
<198982749+Copilot@users.noreply.github.com>\nCo-authored-by: alexwizp
<20072247+alexwizp@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by:
Alexey Antonov <alexwizp@gmail.com>\nCo-authored-by: Julia Rechkunova
<julia.rechkunova@elastic.co>","sha":"e9d79de71a27d08e9e9f05529415bd9442f5b515"}},{"branch":"9.3","label":"v9.3.3","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"9.2","label":"v9.2.8","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
@kibanamachine kibanamachine removed the backport missing Added to PRs automatically when the are determined to be missing a backport. label Mar 31, 2026
jeramysoucy pushed a commit to jeramysoucy/kibana that referenced this pull request Apr 1, 2026
…bana-data-discovery files (elastic#259315)

Closes: elastic#259304

20 `EuiPopover`, `EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`
components were missing required `aria-label` props across 18 files
owned by `@elastic/kibana-data-discovery`, violating WCAG 2.2 AA
accessibility requirements.

## Changes

- **Added `aria-label` to 16 `EuiPopover` components** across
`discover`, `data_view_management`, `kbn-unified-tabs`,
`kbn-unified-field-list`, `kbn-search-response-warnings`, and
`data_view_editor`
- **Added `aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)
- **Added `aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)
- **Added `aria-label` to 1 `EuiWrappingPopover`**
(`use_row_header_components.tsx`)
- **Reused existing translated strings** where available (e.g.
`menuButtonLabel`, `filterAriaLabel`, `badgeText`) to avoid duplicate
copy; added new `i18n.translate()` calls only where no suitable string
existed
- **Added `i18n` imports** to the handful of files that were missing
them

Example of the pattern applied:

```tsx
// Before
<EuiPopover
  id={contextMenuPopoverId}
  isOpen={isPopoverOpen}
  ...
>

// After — reusing an already-translated nearby string
<EuiPopover
  id={contextMenuPopoverId}
  aria-label={menuButtonLabel}
  isOpen={isPopoverOpen}
  ...
>
```

`use_table_header_components.tsx` was listed in the issue but was
already compliant; no change needed there.

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 Send tasks to Copilot coding agent from
[Slack](https://gh.io/cca-slack-docs) and
[Teams](https://gh.io/cca-teams-docs) to turn conversations into code.
Copilot posts an update in your thread when it's finished.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Alexey Antonov <alexwizp@gmail.com>
Co-authored-by: Julia Rechkunova <julia.rechkunova@elastic.co>
paulinashakirova pushed a commit to paulinashakirova/kibana that referenced this pull request Apr 2, 2026
…bana-data-discovery files (elastic#259315)

Closes: elastic#259304

20 `EuiPopover`, `EuiModal`, `EuiFlyout`, and `EuiWrappingPopover`
components were missing required `aria-label` props across 18 files
owned by `@elastic/kibana-data-discovery`, violating WCAG 2.2 AA
accessibility requirements.

## Changes

- **Added `aria-label` to 16 `EuiPopover` components** across
`discover`, `data_view_management`, `kbn-unified-tabs`,
`kbn-unified-field-list`, `kbn-search-response-warnings`, and
`data_view_editor`
- **Added `aria-label` to 1 `EuiModal`** (`image_preview_modal.tsx`)
- **Added `aria-label` to 1 `EuiFlyout`** (`help_flyout.tsx`)
- **Added `aria-label` to 1 `EuiWrappingPopover`**
(`use_row_header_components.tsx`)
- **Reused existing translated strings** where available (e.g.
`menuButtonLabel`, `filterAriaLabel`, `badgeText`) to avoid duplicate
copy; added new `i18n.translate()` calls only where no suitable string
existed
- **Added `i18n` imports** to the handful of files that were missing
them

Example of the pattern applied:

```tsx
// Before
<EuiPopover
  id={contextMenuPopoverId}
  isOpen={isPopoverOpen}
  ...
>

// After — reusing an already-translated nearby string
<EuiPopover
  id={contextMenuPopoverId}
  aria-label={menuButtonLabel}
  isOpen={isPopoverOpen}
  ...
>
```

`use_table_header_components.tsx` was listed in the issue but was
already compliant; no change needed there.

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 Send tasks to Copilot coding agent from
[Slack](https://gh.io/cca-slack-docs) and
[Teams](https://gh.io/cca-teams-docs) to turn conversations into code.
Copilot posts an update in your thread when it's finished.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Alexey Antonov <alexwizp@gmail.com>
Co-authored-by: Julia Rechkunova <julia.rechkunova@elastic.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a11y:agent-pr PR has been created by the agent backport:version Backport to applied version labels 💝community Project:Accessibility release_note:skip Skip the PR/issue when compiling release notes v9.2.8 v9.3.3 v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[eslint-issue-reporter] Fix @elastic/eui/require-aria-label-for-modals lint violations across @elastic/kibana-data-discovery files

6 participants