Skip to content

Fix @elastic/eui/require-aria-label-for-modals lint violations in osquery plugin#263060

Merged
alexwizp merged 3 commits intomainfrom
copilot/fix-eslint-violations-aria-labels-again
Apr 14, 2026
Merged

Fix @elastic/eui/require-aria-label-for-modals lint violations in osquery plugin#263060
alexwizp merged 3 commits intomainfrom
copilot/fix-eslint-violations-aria-labels-again

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 14, 2026

Closes: #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:

<EuiPopover
  button={triggerButton}
  isOpen={isOpen}
  closePopover={closePopover}
  aria-label={EXISTING_I18N_LABEL}  // ← added
>

Example pattern for flyout:

const flyoutTitleId = useGeneratedHtmlId();
// ...
<EuiFlyout aria-labelledby={flyoutTitleId}>     {/* ← added */}
  <EuiFlyoutHeader>
    <EuiTitle><h2 id={flyoutTitleId}></h2></EuiTitle>  {/* ← id added */}
  </EuiFlyoutHeader>
</EuiFlyout>

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

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 {&#34;@elastic/eui/require-aria-label-for-modals&#34;: &#34;error&#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:

…ConfirmModal in osquery plugin

Closes #225182

Agent-Logs-Url: https://github.com/elastic/kibana/sessions/f36151e0-3b4a-494d-8488-46a11488e918

Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix @elastic/eui require-aria-label-for-modals lint violations Fix @elastic/eui/require-aria-label-for-modals lint violations in osquery plugin Apr 14, 2026
Copilot AI requested a review from alexwizp April 14, 2026 13:09
@alexwizp alexwizp marked this pull request as ready for review April 14, 2026 13:21
@alexwizp alexwizp requested a review from a team as a code owner April 14, 2026 13:21
@alexwizp alexwizp requested review from gergoabraham and pzl April 14, 2026 13:21
@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp alexwizp added a11y:agent-pr PR has been created by the agent backport:version Backport to applied version labels v9.4.0 v9.5.0 v9.3.4 release_note:skip Skip the PR/issue when compiling release notes labels Apr 14, 2026
@pzl pzl requested review from tomsonpl and removed request for pzl April 14, 2026 13:22
@alexwizp
Copy link
Copy Markdown
Contributor

@elasticmachine run docs-build

@alexwizp alexwizp merged commit 318e2dc into main Apr 14, 2026
30 checks passed
@alexwizp alexwizp deleted the copilot/fix-eslint-violations-aria-labels-again branch April 14, 2026 19:10
@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 9.3, 9.4

https://github.com/elastic/kibana/actions/runs/24417949723

kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Apr 14, 2026
…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
Copy link
Copy Markdown
Contributor

💔 Some backports could not be created

Status Branch Result
9.3 Backport failed because of merge conflicts

You might need to backport the following PRs to 9.3:
- Remove remaining Trace Explorer implementation (#262265)
- [Typed React Router Config] Implement self-healing mechanism for malformed urls (#257245)
- [Security Solution][Alert KPI] Fix white space bug in alert KPIs (#260803)
9.4

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

Manual backport

To create the backport manually run:

node scripts/backport --pr 263060

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Apr 14, 2026
…s in osquery plugin (#263060) (#263196)

# Backport

This will backport the following commits from `main` to `9.4`:
- [Fix `@elastic/eui/require-aria-label-for-modals` lint violations in
osquery plugin (#263060)](#263060)

<!--- Backport version: 9.6.6 -->

### 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-04-14T19:10:47Z","message":"Fix
`@elastic/eui/require-aria-label-for-modals` lint violations in osquery
plugin (#263060)\n\nCloses:
https://github.com/elastic/kibana/issues/263059\n\nFixes 13
`@elastic/eui/require-aria-label-for-modals` ESLint violations\nacross
the osquery plugin (`@elastic/security-defend-workflows`).\n\n###
EuiFlyout\n- `add_tags_flyout.tsx` — Added `aria-labelledby` linked to
the `<h2>`\nheading via `useGeneratedHtmlId`\n\n### EuiConfirmModal\n-
`use_duplicate_guard.tsx` — Added `aria-labelledby` + `titleProps`
via\n`useGeneratedHtmlId`\n\n### EuiPopover (11 files)\nAdded
`aria-label` using existing i18n labels already in scope:\n\n-
`run_by_filter_popover.tsx`,
`source_filter_popover.tsx`,\n`tags_column.tsx`,
`tags_filter_popover.tsx`,\n`column_picker_popover.tsx`,
`created_by_filter_popover.tsx`,\n`selectable_filter_popover.tsx`,
`sort_fields_popover.tsx` — reuse\nmodule-level i18n constants\n-
`row_actions_menu.tsx`, `row_kebab_menu.tsx` — reuse the
button's\n`aria-label` prop\n- `packs_table.tsx` — new `i18n.translate`
(no existing label available)\n\nExample pattern for
popovers:\n```tsx\n<EuiPopover\n button={triggerButton}\n
isOpen={isOpen}\n closePopover={closePopover}\n
aria-label={EXISTING_I18N_LABEL} // ← added\n>\n```\n\nExample pattern
for flyout:\n```tsx\nconst flyoutTitleId = useGeneratedHtmlId();\n//
...\n<EuiFlyout aria-labelledby={flyoutTitleId}> {/* ← added */}\n
<EuiFlyoutHeader>\n <EuiTitle><h2 id={flyoutTitleId}>…</h2></EuiTitle>
{/* ← id added */}\n </EuiFlyoutHeader>\n</EuiFlyout>\n```\n\n>
[!WARNING]\n>\n> <details>\n> <summary>Firewall rules blocked me from
connecting to one or more\naddresses (expand for
details)</summary>\n>\n> #### I tried to connect to the following
addresses, but was blocked by\nfirewall rules:\n>\n> -
`ci-stats.kibana.dev`\n> - Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\n/usr/local/n/versions/node/22.22.0/bin/node\nscripts/yarn_install_scripts.js
run ldd 0.8.2\nnibrowser-gtk/sys/lib/libbrotlienc.so.1` (dns block)\n> -
Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\n/usr/local/n/versions/node/22.22.0/bin/node
scripts/kbn bootstrap` (dns\nblock)\n> - Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\nnode scripts/eslint
--no-cache
--rule\n{&#34;@elastic/eui/require-aria-label-for-modals&#34;:
&#34;error&#34;}\nx-pack/platform/plugins/shared/osquery/public/actions/components/add_tags_flyout.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/run_by_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/source_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/tags_column.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/tags_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/common/hooks/use_duplicate_guard.tsx\nx-pack/platform/plugins/shared/osquery/public/components/row_actions_menu.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/column_picker_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/created_by_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/selectable_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/sort_fields_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/live_queries/form/row_kebab_menu.tsx\nx-pack/platform/plugins/shared/osquery/public/packs/packs_table.tsx\ncal/bin/git
ldd` (dns block)\n> - `clients3.google.com`\n> - Triggering
command:\n`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\n/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\nrun
:build-webpack /lib64/ld-linux-x86-64.so.2
b/li\u0004\u0018\n/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest`
(dns\nblock)\n> - `detectportal.firefox.com`\n> - Triggering
command:\n`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\n/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\nrun
:build-webpack /lib64/ld-linux-x86-64.so.2
b/li\u0004\u0018\n/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest`
(dns\nblock)\n> - `google.com`\n> - Triggering
command:\n`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\n/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\nrun
:build-webpack /lib64/ld-linux-x86-64.so.2
b/li\u0004\u0018\n/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest`
(dns\nblock)\n> - `googlechromelabs.github.io`\n> - Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\n/usr/local/n/versions/node/22.22.0/bin/node
install.js de/node/bin/git\nldd b/li\u0004\u0018` (dns block)\n>\n> If
you need me to access, download, or install something from one of\nthese
locations, you can either:\n>\n> - Configure [Actions
setup\nsteps](https://gh.io/copilot/actions-setup-steps) to set up
my\nenvironment, which run before the firewall is enabled\n> - Add the
appropriate URLs or hosts to the custom allowlist in this\nrepository's
[Copilot coding
agent\nsettings](https://github.com/elastic/kibana/settings/copilot/coding_agent)\n(admins
only)\n>\n> </details>\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: Alexey
Antonov
<alexwizp@gmail.com>","sha":"318e2dcb839e74ed4d2bf44e98a8c0a7d5dfa02e","branchLabelMapping":{"^v9.5.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","💝community","backport:version","v9.4.0","a11y:agent-pr","v9.5.0","v9.3.4"],"title":"Fix
`@elastic/eui/require-aria-label-for-modals` lint violations in osquery
plugin","number":263060,"url":"https://github.com/elastic/kibana/pull/263060","mergeCommit":{"message":"Fix
`@elastic/eui/require-aria-label-for-modals` lint violations in osquery
plugin (#263060)\n\nCloses:
https://github.com/elastic/kibana/issues/263059\n\nFixes 13
`@elastic/eui/require-aria-label-for-modals` ESLint violations\nacross
the osquery plugin (`@elastic/security-defend-workflows`).\n\n###
EuiFlyout\n- `add_tags_flyout.tsx` — Added `aria-labelledby` linked to
the `<h2>`\nheading via `useGeneratedHtmlId`\n\n### EuiConfirmModal\n-
`use_duplicate_guard.tsx` — Added `aria-labelledby` + `titleProps`
via\n`useGeneratedHtmlId`\n\n### EuiPopover (11 files)\nAdded
`aria-label` using existing i18n labels already in scope:\n\n-
`run_by_filter_popover.tsx`,
`source_filter_popover.tsx`,\n`tags_column.tsx`,
`tags_filter_popover.tsx`,\n`column_picker_popover.tsx`,
`created_by_filter_popover.tsx`,\n`selectable_filter_popover.tsx`,
`sort_fields_popover.tsx` — reuse\nmodule-level i18n constants\n-
`row_actions_menu.tsx`, `row_kebab_menu.tsx` — reuse the
button's\n`aria-label` prop\n- `packs_table.tsx` — new `i18n.translate`
(no existing label available)\n\nExample pattern for
popovers:\n```tsx\n<EuiPopover\n button={triggerButton}\n
isOpen={isOpen}\n closePopover={closePopover}\n
aria-label={EXISTING_I18N_LABEL} // ← added\n>\n```\n\nExample pattern
for flyout:\n```tsx\nconst flyoutTitleId = useGeneratedHtmlId();\n//
...\n<EuiFlyout aria-labelledby={flyoutTitleId}> {/* ← added */}\n
<EuiFlyoutHeader>\n <EuiTitle><h2 id={flyoutTitleId}>…</h2></EuiTitle>
{/* ← id added */}\n </EuiFlyoutHeader>\n</EuiFlyout>\n```\n\n>
[!WARNING]\n>\n> <details>\n> <summary>Firewall rules blocked me from
connecting to one or more\naddresses (expand for
details)</summary>\n>\n> #### I tried to connect to the following
addresses, but was blocked by\nfirewall rules:\n>\n> -
`ci-stats.kibana.dev`\n> - Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\n/usr/local/n/versions/node/22.22.0/bin/node\nscripts/yarn_install_scripts.js
run ldd 0.8.2\nnibrowser-gtk/sys/lib/libbrotlienc.so.1` (dns block)\n> -
Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\n/usr/local/n/versions/node/22.22.0/bin/node
scripts/kbn bootstrap` (dns\nblock)\n> - Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\nnode scripts/eslint
--no-cache
--rule\n{&#34;@elastic/eui/require-aria-label-for-modals&#34;:
&#34;error&#34;}\nx-pack/platform/plugins/shared/osquery/public/actions/components/add_tags_flyout.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/run_by_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/source_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/tags_column.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/tags_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/common/hooks/use_duplicate_guard.tsx\nx-pack/platform/plugins/shared/osquery/public/components/row_actions_menu.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/column_picker_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/created_by_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/selectable_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/sort_fields_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/live_queries/form/row_kebab_menu.tsx\nx-pack/platform/plugins/shared/osquery/public/packs/packs_table.tsx\ncal/bin/git
ldd` (dns block)\n> - `clients3.google.com`\n> - Triggering
command:\n`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\n/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\nrun
:build-webpack /lib64/ld-linux-x86-64.so.2
b/li\u0004\u0018\n/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest`
(dns\nblock)\n> - `detectportal.firefox.com`\n> - Triggering
command:\n`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\n/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\nrun
:build-webpack /lib64/ld-linux-x86-64.so.2
b/li\u0004\u0018\n/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest`
(dns\nblock)\n> - `google.com`\n> - Triggering
command:\n`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\n/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\nrun
:build-webpack /lib64/ld-linux-x86-64.so.2
b/li\u0004\u0018\n/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest`
(dns\nblock)\n> - `googlechromelabs.github.io`\n> - Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\n/usr/local/n/versions/node/22.22.0/bin/node
install.js de/node/bin/git\nldd b/li\u0004\u0018` (dns block)\n>\n> If
you need me to access, download, or install something from one of\nthese
locations, you can either:\n>\n> - Configure [Actions
setup\nsteps](https://gh.io/copilot/actions-setup-steps) to set up
my\nenvironment, which run before the firewall is enabled\n> - Add the
appropriate URLs or hosts to the custom allowlist in this\nrepository's
[Copilot coding
agent\nsettings](https://github.com/elastic/kibana/settings/copilot/coding_agent)\n(admins
only)\n>\n> </details>\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: Alexey
Antonov
<alexwizp@gmail.com>","sha":"318e2dcb839e74ed4d2bf44e98a8c0a7d5dfa02e"}},"sourceBranch":"main","suggestedTargetBranches":["9.4","9.3"],"targetPullRequestStates":[{"branch":"9.4","label":"v9.4.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.5.0","branchLabelMappingKey":"^v9.5.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/263060","number":263060,"mergeCommit":{"message":"Fix
`@elastic/eui/require-aria-label-for-modals` lint violations in osquery
plugin (#263060)\n\nCloses:
https://github.com/elastic/kibana/issues/263059\n\nFixes 13
`@elastic/eui/require-aria-label-for-modals` ESLint violations\nacross
the osquery plugin (`@elastic/security-defend-workflows`).\n\n###
EuiFlyout\n- `add_tags_flyout.tsx` — Added `aria-labelledby` linked to
the `<h2>`\nheading via `useGeneratedHtmlId`\n\n### EuiConfirmModal\n-
`use_duplicate_guard.tsx` — Added `aria-labelledby` + `titleProps`
via\n`useGeneratedHtmlId`\n\n### EuiPopover (11 files)\nAdded
`aria-label` using existing i18n labels already in scope:\n\n-
`run_by_filter_popover.tsx`,
`source_filter_popover.tsx`,\n`tags_column.tsx`,
`tags_filter_popover.tsx`,\n`column_picker_popover.tsx`,
`created_by_filter_popover.tsx`,\n`selectable_filter_popover.tsx`,
`sort_fields_popover.tsx` — reuse\nmodule-level i18n constants\n-
`row_actions_menu.tsx`, `row_kebab_menu.tsx` — reuse the
button's\n`aria-label` prop\n- `packs_table.tsx` — new `i18n.translate`
(no existing label available)\n\nExample pattern for
popovers:\n```tsx\n<EuiPopover\n button={triggerButton}\n
isOpen={isOpen}\n closePopover={closePopover}\n
aria-label={EXISTING_I18N_LABEL} // ← added\n>\n```\n\nExample pattern
for flyout:\n```tsx\nconst flyoutTitleId = useGeneratedHtmlId();\n//
...\n<EuiFlyout aria-labelledby={flyoutTitleId}> {/* ← added */}\n
<EuiFlyoutHeader>\n <EuiTitle><h2 id={flyoutTitleId}>…</h2></EuiTitle>
{/* ← id added */}\n </EuiFlyoutHeader>\n</EuiFlyout>\n```\n\n>
[!WARNING]\n>\n> <details>\n> <summary>Firewall rules blocked me from
connecting to one or more\naddresses (expand for
details)</summary>\n>\n> #### I tried to connect to the following
addresses, but was blocked by\nfirewall rules:\n>\n> -
`ci-stats.kibana.dev`\n> - Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\n/usr/local/n/versions/node/22.22.0/bin/node\nscripts/yarn_install_scripts.js
run ldd 0.8.2\nnibrowser-gtk/sys/lib/libbrotlienc.so.1` (dns block)\n> -
Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\n/usr/local/n/versions/node/22.22.0/bin/node
scripts/kbn bootstrap` (dns\nblock)\n> - Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\nnode scripts/eslint
--no-cache
--rule\n{&#34;@elastic/eui/require-aria-label-for-modals&#34;:
&#34;error&#34;}\nx-pack/platform/plugins/shared/osquery/public/actions/components/add_tags_flyout.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/run_by_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/source_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/tags_column.tsx\nx-pack/platform/plugins/shared/osquery/public/actions/components/tags_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/common/hooks/use_duplicate_guard.tsx\nx-pack/platform/plugins/shared/osquery/public/components/row_actions_menu.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/column_picker_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/created_by_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/selectable_filter_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/components/table_toolbar/sort_fields_popover.tsx\nx-pack/platform/plugins/shared/osquery/public/live_queries/form/row_kebab_menu.tsx\nx-pack/platform/plugins/shared/osquery/public/packs/packs_table.tsx\ncal/bin/git
ldd` (dns block)\n> - `clients3.google.com`\n> - Triggering
command:\n`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\n/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\nrun
:build-webpack /lib64/ld-linux-x86-64.so.2
b/li\u0004\u0018\n/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest`
(dns\nblock)\n> - `detectportal.firefox.com`\n> - Triggering
command:\n`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\n/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\nrun
:build-webpack /lib64/ld-linux-x86-64.so.2
b/li\u0004\u0018\n/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest`
(dns\nblock)\n> - `google.com`\n> - Triggering
command:\n`/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\n/home/REDACTED/work/kibana/kibana/node_modules/@moonrepo/core-linux-x64-gnu/moon\nrun
:build-webpack /lib64/ld-linux-x86-64.so.2
b/li\u0004\u0018\n/home/REDACTED/.cache/ms-playwright/firefox-1511/firefox/glxtest`
(dns\nblock)\n> - `googlechromelabs.github.io`\n> - Triggering command:
`/usr/local/n/versions/node/22.22.0/bin/node\n/usr/local/n/versions/node/22.22.0/bin/node
install.js de/node/bin/git\nldd b/li\u0004\u0018` (dns block)\n>\n> If
you need me to access, download, or install something from one of\nthese
locations, you can either:\n>\n> - Configure [Actions
setup\nsteps](https://gh.io/copilot/actions-setup-steps) to set up
my\nenvironment, which run before the firewall is enabled\n> - Add the
appropriate URLs or hosts to the custom allowlist in this\nrepository's
[Copilot coding
agent\nsettings](https://github.com/elastic/kibana/settings/copilot/coding_agent)\n(admins
only)\n>\n> </details>\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: Alexey
Antonov
<alexwizp@gmail.com>","sha":"318e2dcb839e74ed4d2bf44e98a8c0a7d5dfa02e"}},{"branch":"9.3","label":"v9.3.4","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Co-authored-by: Alexey Antonov <alexwizp@gmail.com>
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 release_note:skip Skip the PR/issue when compiling release notes v9.3.4 v9.4.0 v9.5.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_security-defend-workflows files

5 participants