Skip to content

[9.4] [ML] Add aria-label to Anomaly score button for screen reader accessibility (#266469)#268595

Merged
kibanamachine merged 1 commit into
elastic:9.4from
kibanamachine:backport/9.4/pr-266469
May 10, 2026
Merged

[9.4] [ML] Add aria-label to Anomaly score button for screen reader accessibility (#266469)#268595
kibanamachine merged 1 commit into
elastic:9.4from
kibanamachine:backport/9.4/pr-266469

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

…bility (elastic#266469)

The Anomaly score button in the Anomaly Explorer only announces its
selection value ("Multiple") to screen readers, missing the "Anomaly
score" title context. This violates WCAG SC 4.1.2 (Name, Role, Value).

Fixes elastic#264988

### Changes

- Added optional `aria-label` prop to `MultiSuperSelect` component,
forwarded to the inner `EuiButtonEmpty`
- Passed the "Anomaly score" label as `aria-label` in `SelectSeverityUI`
so assistive technology announces the full context

Screen readers will now announce: *"Anomaly score, Multiple, collapsed,
button"* instead of just *"Multiple, collapsed, button"*.

> [!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:
`/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 x86-64.so.2 0.8.2 if (a[i] &lt;`
(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)
> - Triggering command:
`/home/REDACTED/.nvm/versions/node/v24.14.1/bin/node node
scripts/check_changes.ts dd ldd s/li��` (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` (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` (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` (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
_TOKEN&elastic#34;; }; f 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:
>
> - 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: L1nBra <178042654+L1nBra@users.noreply.github.com>
Co-authored-by: Bhavya RM <bhavya@elastic.co>
Co-authored-by: L1nBra <lina.braziulyte@gmail.com>
Co-authored-by: Alexey Antonov <alexwizp@gmail.com>
(cherry picked from commit 8ef3b44)
@kibanamachine
Copy link
Copy Markdown
Contributor Author

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] Scout Lane #6 - stateful-classic / default / local-stateful-classic - APM integration not installed but setup completed - Admin user
  • [job] [logs] Scout Lane #6 - stateful-classic / default / local-stateful-classic - APM integration not installed but setup completed - Viewer user
  • [job] [logs] Scout Lane #6 - stateful-classic / default / local-stateful-classic - Observability Landing Page (discover.isEsqlDefault enabled) - redirects to onboarding when no logs data exists
  • [job] [logs] Scout Lane #6 - stateful-classic / default / local-stateful-classic - Profiling is not setup and no data is loaded - Admin users
  • [job] [logs] Scout Lane #6 - stateful-classic / default / local-stateful-classic - Profiling is not setup and no data is loaded - Viewer users

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
ml 5.8MB 5.8MB +49.0B

@kibanamachine kibanamachine merged commit 39c0e0d into elastic:9.4 May 10, 2026
35 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