Skip to content

Fix @elastic/eui/icon-accessibility-rules lint violations across @elastic/kibana-security files#269654

Merged
alexwizp merged 14 commits into
mainfrom
copilot/fix-eslint-violations-icon-accessibility
May 30, 2026
Merged

Fix @elastic/eui/icon-accessibility-rules lint violations across @elastic/kibana-security files#269654
alexwizp merged 14 commits into
mainfrom
copilot/fix-eslint-violations-icon-accessibility

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 18, 2026

Resolves 36 ESLint @elastic/eui/icon-accessibility-rules violations across 25 files owned by @elastic/kibana-security.

Changes

  • Decorative icons (adjacent to visible text): added aria-hidden={true}
    • Logo icons, category icons, chevrons, empty spacers, inputOutput icons, document/sort icons
  • Meaningful icons (convey standalone information): added aria-label with i18n
    • Warning icon in role_table_display.tsx → "Deprecated"
    • MinusCircle icon in privilege_display.tsx → "None"

Example:

// Decorative — icon next to visible text
<EuiIcon type="logoElastic" size="xxl" aria-hidden={true} />

// Meaningful — icon conveys status independently
<EuiIcon
  type="warning"
  color="warning"
  size="s"
  aria-label={i18n.translate(
    'xpack.security.management.roles.roleTableDisplay.deprecatedIconAriaLabel',
    { defaultMessage: 'Deprecated' }
  )}
/>

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: /home/REDACTED/.nvm/versions/node/v24.14.1/bin/node /home/REDACTED/.nvm/versions/node/v24.14.1/bin/node scripts/yarn_install_scripts.js run ldd 0.8.2 (dns block)
    • Triggering command: /home/REDACTED/.nvm/versions/node/v24.14.1/bin/node /home/REDACTED/.nvm/versions/node/v24.14.1/bin/node scripts/kbn bootstrap (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 ldd 0.8.2 &gt; b[i]) exit(0) (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 ldd 0.8.2 &gt; b[i]) exit(0) (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 ldd 0.8.2 &gt; b[i]) exit(0) (dns block)
  • googlechromelabs.github.io
    • Triggering command: /home/REDACTED/.nvm/versions/node/v24.14.1/bin/node /home/REDACTED/.nvm/versions/node/v24.14.1/bin/node install.js yp-bin/ldd ldd b/li�� nibrowser-gtk/sys/lib/libbrotlienc.so.1.0.7 (dns block)
  • iojs.org
    • Triggering command: /usr/bin/curl curl -q --fail --compressed -L -s REDACTED -o - (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

…ross @elastic/kibana-security files

Closes #218508

Agent-Logs-Url: https://github.com/elastic/kibana/sessions/c2c7b956-4021-457e-a456-099eaef4d1c4

Co-authored-by: alexwizp <20072247+alexwizp@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix eslint violations for icon accessibility rules in security files Fix @elastic/eui/icon-accessibility-rules lint violations across @elastic/kibana-security files May 18, 2026
Copilot AI requested a review from alexwizp May 18, 2026 09:05
@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp alexwizp added v9.5.0 v9.3.5 v9.4.2 release_note:skip Skip the PR/issue when compiling release notes backport:version Backport to applied version labels a11y:agent-pr PR has been created by the agent Project:Accessibility labels May 18, 2026
@alexwizp alexwizp marked this pull request as ready for review May 18, 2026 09:11
@alexwizp alexwizp requested a review from a team as a code owner May 18, 2026 09:11
@alexwizp alexwizp requested a review from rgodfrey-elastic May 18, 2026 09:11
@infra-vault-gh-plugin-prod
Copy link
Copy Markdown

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

@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp
Copy link
Copy Markdown
Contributor

@elastic/kibana-security please review

@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp
Copy link
Copy Markdown
Contributor

/ci

@alexwizp alexwizp removed the v9.3.5 label May 30, 2026
@alexwizp alexwizp enabled auto-merge (squash) May 30, 2026 09:35
@kibanamachine
Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
security 603.3KB 605.1KB +1.8KB
spaces 252.6KB 252.8KB +238.0B
total +2.0KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
interactiveSetup 33.1KB 33.1KB +51.0B
security 73.6KB 73.6KB +17.0B
total +68.0B

History

cc @alexwizp @Copilot

@alexwizp alexwizp merged commit a067907 into main May 30, 2026
30 checks passed
@alexwizp alexwizp deleted the copilot/fix-eslint-violations-icon-accessibility branch May 30, 2026 10:49
@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 9.4

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

@kibanamachine
Copy link
Copy Markdown
Contributor

💚 All backports created successfully

Status Branch Result
9.4

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

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request May 30, 2026
…oss @elastic/kibana-security files (#269654) (#272024)

# Backport

This will backport the following commits from `main` to `9.4`:
- [Fix `@elastic/eui/icon-accessibility-rules` lint violations across
@elastic/kibana-security files
(#269654)](#269654)

<!--- 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-05-30T10:49:36Z","message":"Fix
`@elastic/eui/icon-accessibility-rules` lint violations across
@elastic/kibana-security files (#269654)\n\nResolves 36 ESLint
`@elastic/eui/icon-accessibility-rules` violations\nacross 25 files
owned by @elastic/kibana-security.\n\n## Changes\n\n- **Decorative
icons** (adjacent to visible text): added\n`aria-hidden={true}`\n- Logo
icons, category icons, chevrons, empty spacers, inputOutput\nicons,
document/sort icons\n- **Meaningful icons** (convey standalone
information): added\n`aria-label` with i18n\n - Warning icon in
`role_table_display.tsx` → \"Deprecated\"\n - MinusCircle icon in
`privilege_display.tsx` → \"None\"\n\nExample:\n\n```tsx\n// Decorative
— icon next to visible text\n<EuiIcon type=\"logoElastic\" size=\"xxl\"
aria-hidden={true} />\n\n// Meaningful — icon conveys status
independently\n<EuiIcon\n type=\"warning\"\n color=\"warning\"\n
size=\"s\"\n aria-label={i18n.translate(\n
'xpack.security.management.roles.roleTableDisplay.deprecatedIconAriaLabel',\n
{ defaultMessage: 'Deprecated' }\n )}\n/>\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:\n`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\n/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\nscripts/yarn_install_scripts.js
run ldd 0.8.2` (dns block)\n> - Triggering
command:\n`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\n/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
scripts/kbn\nbootstrap` (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 ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)\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 ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)\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 ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)\n> -
`googlechromelabs.github.io`\n> - Triggering
command:\n`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\n/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
install.js\nyp-bin/ldd ldd b/li\u0004\u0018
nibrowser-gtk/sys/lib/libbrotlienc.so.1.0.7` (dns\nblock)\n> -
`iojs.org`\n> - Triggering command: `/usr/bin/curl curl -q --fail
--compressed -L -s\nREDACTED -o -` (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>\nCo-authored-by: kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"a067907e6ac04afd33ea6a64b56a83dcb0aa5c09","branchLabelMapping":{"^v9.5.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Project:Accessibility","release_note:skip","💝community","backport:version","a11y:agent-pr","v9.5.0","v9.4.2"],"title":"Fix
`@elastic/eui/icon-accessibility-rules` lint violations across
@elastic/kibana-security
files","number":269654,"url":"https://github.com/elastic/kibana/pull/269654","mergeCommit":{"message":"Fix
`@elastic/eui/icon-accessibility-rules` lint violations across
@elastic/kibana-security files (#269654)\n\nResolves 36 ESLint
`@elastic/eui/icon-accessibility-rules` violations\nacross 25 files
owned by @elastic/kibana-security.\n\n## Changes\n\n- **Decorative
icons** (adjacent to visible text): added\n`aria-hidden={true}`\n- Logo
icons, category icons, chevrons, empty spacers, inputOutput\nicons,
document/sort icons\n- **Meaningful icons** (convey standalone
information): added\n`aria-label` with i18n\n - Warning icon in
`role_table_display.tsx` → \"Deprecated\"\n - MinusCircle icon in
`privilege_display.tsx` → \"None\"\n\nExample:\n\n```tsx\n// Decorative
— icon next to visible text\n<EuiIcon type=\"logoElastic\" size=\"xxl\"
aria-hidden={true} />\n\n// Meaningful — icon conveys status
independently\n<EuiIcon\n type=\"warning\"\n color=\"warning\"\n
size=\"s\"\n aria-label={i18n.translate(\n
'xpack.security.management.roles.roleTableDisplay.deprecatedIconAriaLabel',\n
{ defaultMessage: 'Deprecated' }\n )}\n/>\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:\n`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\n/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\nscripts/yarn_install_scripts.js
run ldd 0.8.2` (dns block)\n> - Triggering
command:\n`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\n/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
scripts/kbn\nbootstrap` (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 ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)\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 ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)\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 ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)\n> -
`googlechromelabs.github.io`\n> - Triggering
command:\n`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\n/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
install.js\nyp-bin/ldd ldd b/li\u0004\u0018
nibrowser-gtk/sys/lib/libbrotlienc.so.1.0.7` (dns\nblock)\n> -
`iojs.org`\n> - Triggering command: `/usr/bin/curl curl -q --fail
--compressed -L -s\nREDACTED -o -` (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>\nCo-authored-by: kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"a067907e6ac04afd33ea6a64b56a83dcb0aa5c09"}},"sourceBranch":"main","suggestedTargetBranches":["9.4"],"targetPullRequestStates":[{"branch":"main","label":"v9.5.0","branchLabelMappingKey":"^v9.5.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/269654","number":269654,"mergeCommit":{"message":"Fix
`@elastic/eui/icon-accessibility-rules` lint violations across
@elastic/kibana-security files (#269654)\n\nResolves 36 ESLint
`@elastic/eui/icon-accessibility-rules` violations\nacross 25 files
owned by @elastic/kibana-security.\n\n## Changes\n\n- **Decorative
icons** (adjacent to visible text): added\n`aria-hidden={true}`\n- Logo
icons, category icons, chevrons, empty spacers, inputOutput\nicons,
document/sort icons\n- **Meaningful icons** (convey standalone
information): added\n`aria-label` with i18n\n - Warning icon in
`role_table_display.tsx` → \"Deprecated\"\n - MinusCircle icon in
`privilege_display.tsx` → \"None\"\n\nExample:\n\n```tsx\n// Decorative
— icon next to visible text\n<EuiIcon type=\"logoElastic\" size=\"xxl\"
aria-hidden={true} />\n\n// Meaningful — icon conveys status
independently\n<EuiIcon\n type=\"warning\"\n color=\"warning\"\n
size=\"s\"\n aria-label={i18n.translate(\n
'xpack.security.management.roles.roleTableDisplay.deprecatedIconAriaLabel',\n
{ defaultMessage: 'Deprecated' }\n )}\n/>\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:\n`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\n/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\nscripts/yarn_install_scripts.js
run ldd 0.8.2` (dns block)\n> - Triggering
command:\n`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\n/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
scripts/kbn\nbootstrap` (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 ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)\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 ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)\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 ldd 0.8.2 &gt; b[i]) exit(0)` (dns block)\n> -
`googlechromelabs.github.io`\n> - Triggering
command:\n`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node\n/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node
install.js\nyp-bin/ldd ldd b/li\u0004\u0018
nibrowser-gtk/sys/lib/libbrotlienc.so.1.0.7` (dns\nblock)\n> -
`iojs.org`\n> - Triggering command: `/usr/bin/curl curl -q --fail
--compressed -L -s\nREDACTED -o -` (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>\nCo-authored-by: kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"a067907e6ac04afd33ea6a64b56a83dcb0aa5c09"}},{"branch":"9.4","label":"v9.4.2","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 Project:Accessibility release_note:skip Skip the PR/issue when compiling release notes v9.4.2 v9.5.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[eslint-issue-reporter] Fix @elastic/eui/icon-accessibility-rules lint violations across @elastic/kibana-security files

4 participants