Skip to content

[9.4] Fix @elastic/eui/require-aria-label-for-modals lint violations in osquery plugin (#263060)#263196

Merged
kibanamachine merged 1 commit intoelastic:9.4from
kibanamachine:backport/9.4/pr-263060
Apr 14, 2026
Merged

[9.4] Fix @elastic/eui/require-aria-label-for-modals lint violations in osquery plugin (#263060)#263196
kibanamachine merged 1 commit intoelastic:9.4from
kibanamachine:backport/9.4/pr-263060

Conversation

@kibanamachine
Copy link
Copy Markdown
Contributor

Backport

This will backport the following commits from main to 9.4:

Questions ?

Please refer to the Backport tool documentation

…squery plugin (elastic#263060)

Closes: elastic#263059

Fixes 13 `@elastic/eui/require-aria-label-for-modals` ESLint violations
across the osquery plugin (`@elastic/security-defend-workflows`).

### EuiFlyout
- `add_tags_flyout.tsx` — Added `aria-labelledby` linked to the `<h2>`
heading via `useGeneratedHtmlId`

### EuiConfirmModal
- `use_duplicate_guard.tsx` — Added `aria-labelledby` + `titleProps` via
`useGeneratedHtmlId`

### EuiPopover (11 files)
Added `aria-label` using existing i18n labels already in scope:

- `run_by_filter_popover.tsx`, `source_filter_popover.tsx`,
`tags_column.tsx`, `tags_filter_popover.tsx`,
`column_picker_popover.tsx`, `created_by_filter_popover.tsx`,
`selectable_filter_popover.tsx`, `sort_fields_popover.tsx` — reuse
module-level i18n constants
- `row_actions_menu.tsx`, `row_kebab_menu.tsx` — reuse the button's
`aria-label` prop
- `packs_table.tsx` — new `i18n.translate` (no existing label available)

Example pattern for popovers:
```tsx
<EuiPopover
  button={triggerButton}
  isOpen={isOpen}
  closePopover={closePopover}
  aria-label={EXISTING_I18N_LABEL}  // ← added
>
```

Example pattern for flyout:
```tsx
const flyoutTitleId = useGeneratedHtmlId();
// ...
<EuiFlyout aria-labelledby={flyoutTitleId}>     {/* ← added */}
  <EuiFlyoutHeader>
    <EuiTitle><h2 id={flyoutTitleId}>…</h2></EuiTitle>  {/* ← id added */}
  </EuiFlyoutHeader>
</EuiFlyout>
```

> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `ci-stats.kibana.dev`
> - Triggering command: `/usr/local/n/versions/node/22.22.0/bin/node
/usr/local/n/versions/node/22.22.0/bin/node
scripts/yarn_install_scripts.js run ldd 0.8.2
nibrowser-gtk/sys/lib/libbrotlienc.so.1` (dns block)
> - Triggering command: `/usr/local/n/versions/node/22.22.0/bin/node
/usr/local/n/versions/node/22.22.0/bin/node scripts/kbn bootstrap` (dns
block)
> - Triggering command: `/usr/local/n/versions/node/22.22.0/bin/node
node scripts/eslint --no-cache --rule
{&elastic#34;@elastic/eui/require-aria-label-for-modals&elastic#34;: &elastic#34;error&elastic#34;}
x-pack/platform/plugins/shared/osquery/public/actions/components/add_tags_flyout.tsx
x-pack/platform/plugins/shared/osquery/public/actions/components/run_by_filter_popover.tsx
x-pack/platform/plugins/shared/osquery/public/actions/components/source_filter_popover.tsx
x-pack/platform/plugins/shared/osquery/public/actions/components/tags_column.tsx
x-pack/platform/plugins/shared/osquery/public/actions/components/tags_filter_popover.tsx
x-pack/platform/plugins/shared/osquery/public/common/hooks/use_duplicate_guard.tsx
x-pack/platform/plugins/shared/osquery/public/components/row_actions_menu.tsx
x-pack/platform/plugins/shared/osquery/public/components/table_toolbar/column_picker_popover.tsx
x-pack/platform/plugins/shared/osquery/public/components/table_toolbar/created_by_filter_popover.tsx
x-pack/platform/plugins/shared/osquery/public/components/table_toolbar/selectable_filter_popover.tsx
x-pack/platform/plugins/shared/osquery/public/components/table_toolbar/sort_fields_popover.tsx
x-pack/platform/plugins/shared/osquery/public/live_queries/form/row_kebab_menu.tsx
x-pack/platform/plugins/shared/osquery/public/packs/packs_table.tsx
cal/bin/git ldd` (dns block)
> - `clients3.google.com`
> - Triggering command:
`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
run :build-webpack /lib64/ld-linux-x86-64.so.2 b/li��
/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest` (dns
block)
> - `detectportal.firefox.com`
> - Triggering command:
`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
run :build-webpack /lib64/ld-linux-x86-64.so.2 b/li��
/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest` (dns
block)
> - `google.com`
> - Triggering command:
`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon
run :build-webpack /lib64/ld-linux-x86-64.so.2 b/li��
/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest` (dns
block)
> - `googlechromelabs.github.io`
> - Triggering command: `/usr/local/n/versions/node/22.22.0/bin/node
/usr/local/n/versions/node/22.22.0/bin/node install.js de/node/bin/git
ldd b/li��` (dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/elastic/kibana/settings/copilot/coding_agent)
(admins only)
>
> </details>

---------

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: Alexey Antonov <alexwizp@gmail.com>
(cherry picked from commit 318e2dc)
@kibanamachine kibanamachine merged commit 6aec6b1 into elastic:9.4 Apr 14, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport This PR is a backport of another PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants