Skip to content

Conversation

@seialkali
Copy link
Contributor

@seialkali seialkali commented Oct 7, 2025

Summary

Currently, when a user clicks Reset changes or Remove all on the Add Terms panel (for either equivalent or explicit types) in the Synonyms set editor, the terms are reset visually but the change is not announced by VoiceOver on macOS Safari. This breaks WCAG 4.1.2: Name, Role, Value (Level A).

This PR updates the Add Terms panel to use aria-live="polite" announcements when either buttons are clicked, so screen readers can inform users of the change.

How to test

  1. Enable VoiceOver on macOS (Cmd + F5).
  2. Open Kibana and navigate to Search → Synonyms.
  3. Create a new synonyms set and select either "equivalent" or "explicit" rule.
  4. Add terms and click "Reset changes".
  5. Confirm that VoiceOver announces that the terms have been reset.
  6. Add terms and click "Remove all".
  7. Confirm that VoiceOver announces that the terms have been removed.

Checklist

Check the PR satisfies following conditions.

Reviewers should verify this PR satisfies this list as well.

  • Any text added follows EUI's writing guidelines, uses sentence case text and includes i18n support
  • Documentation was added for features that require explanation or tutorials
  • Unit or functional tests were updated or added to match the most common scenarios
  • If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the docker list
  • This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The release_note:breaking label should be applied in these situations.
  • Flaky Test Runner was used on any tests changed
  • The PR description includes the appropriate Release Notes section, and the correct release_note:* label is applied per the guidelines
  • Review the backport guidelines and apply applicable backport:* labels.

Release Note

Fixes an accessibility issue where resetting changes or removing all terms in the Synonyms panel was not announced by screen readers. VoiceOver users on Safari will now hear updates when terms are reset.

@wildemat
Copy link
Contributor

wildemat commented Oct 8, 2025

There's a new announcement component that's in beta right now: https://eui.elastic.co/docs/utilities/accessibility/#live-announcer-region-

Doesn't really apply to this change because we don't render anything like an Error callout when these clear/reset buttons are pressed. But it's worth knowing about for future a11y tickets.

@seialkali seialkali force-pushed the fix/announce-reset-changes-synonym-panel branch from 91e1246 to 3fab9ba Compare October 9, 2025 15:34
@bhavyarm
Copy link
Contributor

bhavyarm commented Oct 9, 2025

@seialkali

“Add an announcement for the Remove all button too?”

  • Yes. Both actions change user data the same way (clearing a list). They should both fire the same polite status message.

“Move focus back to the top after Reset/Remove all?”

  • Usually no. Unexpected focus jumps are disorienting. Keep focus on the button the user pressed so they can continue tabbing. Exception: if the button disappears or becomes disabled immediately, then move focus to the Add terms input (top of form) so the user can start again without hunting.

That should help. Thanks!

@seialkali seialkali force-pushed the fix/announce-reset-changes-synonym-panel branch from 28f0150 to d0eef9f Compare October 10, 2025 09:02
@seialkali seialkali force-pushed the fix/announce-reset-changes-synonym-panel branch from d0eef9f to d394484 Compare October 10, 2025 09:04
@seialkali seialkali enabled auto-merge (squash) October 10, 2025 09:07
@seialkali seialkali added v8.19.6 backport:all-open Backport to all branches that could still receive a release ci:cloud-redeploy Always create a new Cloud deployment and removed backport:version Backport to applied version labels v9.2.0 v9.1.6 v8.19.6 v9.0.9 ci:cloud-redeploy Always create a new Cloud deployment labels Oct 10, 2025
@elasticmachine
Copy link
Contributor

elasticmachine commented Oct 10, 2025

💔 Build Failed

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
searchSynonyms 64.9KB 65.8KB +976.0B

History

@seialkali seialkali merged commit 9e7e748 into elastic:main Oct 10, 2025
24 checks passed
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.18, 8.19, 9.0, 9.1, 9.2

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

kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Oct 10, 2025
…nyms panel (elastic#237877)

## Summary
Currently, when a user clicks `Reset changes` or `Remove all` on the Add
Terms panel (for either equivalent or explicit types) in the Synonyms
set editor, the terms are reset visually but the change is not announced
by VoiceOver on macOS Safari. This breaks WCAG 4.1.2: Name, Role, Value
(Level A).

This PR updates the Add Terms panel to use `aria-live="polite"`
announcements when either buttons are clicked, so screen readers can
inform users of the change.

### How to test
1. Enable VoiceOver on macOS (Cmd + F5).
2. Open Kibana and navigate to **Search → Synonyms**.
3. Create a new synonyms set and select either "equivalent" or
"explicit" rule.
4. Add terms and click "Reset changes".
5. Confirm that VoiceOver announces that the terms have been reset.
6. Add terms and click "Remove all".
5. Confirm that VoiceOver announces that the terms have been removed.

### Checklist

Check the PR satisfies following conditions.

Reviewers should verify this PR satisfies this list as well.

- [ ] ~Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)~
- [ ]
~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials~
- [ ] ~[Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios~
- [ ] ~If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~
- [ ] ~This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.~
- [ ] ~[Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed~
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

## Release Note

Fixes an accessibility issue where resetting changes or removing all
terms in the Synonyms panel was not announced by screen readers.
VoiceOver users on Safari will now hear updates when terms are reset.

(cherry picked from commit 9e7e748)
@kibanamachine
Copy link
Contributor

💔 Some backports could not be created

Status Branch Result
8.18 Backport failed because of merge conflicts
8.19 Backport failed because of merge conflicts
9.0 Backport failed because of merge conflicts
9.1 Backport failed because of merge conflicts
9.2

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

Manual backport

To create the backport manually run:

node scripts/backport --pr 237877

Questions ?

Please refer to the Backport tool documentation

<EuiFlexItem grow={false}>
<EuiButtonEmpty
data-test-subj="searchSynonymsSynonymsRuleFlyoutResetChangesButton"
aria-label={i18n.translate(
Copy link
Contributor

Choose a reason for hiding this comment

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

@seialkali @wildemat — just a note for future reference: there’s no need to set an explicit aria-label on EuiButtonEmpty.
This was an issue we introduced in the ESLint rule, and it’s already been fixed in elastic/eui#9046
.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the update @alexwizp!

kibanamachine added a commit that referenced this pull request Oct 10, 2025
…n synonyms panel (#237877) (#238420)

# Backport

This will backport the following commits from `main` to `9.2`:
- [[Search][Accessibility] Announce changes when resetting terms in
synonyms panel (#237877)](#237877)

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

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

<!--BACKPORT
[{"author":{"name":"Brittany","email":"seialkali@gmail.com"},"sourceCommit":{"committedDate":"2025-10-10T11:13:41Z","message":"[Search][Accessibility]
Announce changes when resetting terms in synonyms panel (#237877)\n\n##
Summary\nCurrently, when a user clicks `Reset changes` or `Remove all`
on the Add\nTerms panel (for either equivalent or explicit types) in the
Synonyms\nset editor, the terms are reset visually but the change is not
announced\nby VoiceOver on macOS Safari. This breaks WCAG 4.1.2: Name,
Role, Value\n(Level A).\n\nThis PR updates the Add Terms panel to use
`aria-live=\"polite\"`\nannouncements when either buttons are clicked,
so screen readers can\ninform users of the change.\n\n### How to
test\n1. Enable VoiceOver on macOS (Cmd + F5).\n2. Open Kibana and
navigate to **Search → Synonyms**.\n3. Create a new synonyms set and
select either \"equivalent\" or\n\"explicit\" rule.\n4. Add terms and
click \"Reset changes\".\n5. Confirm that VoiceOver announces that the
terms have been reset.\n6. Add terms and click \"Remove all\".\n5.
Confirm that VoiceOver announces that the terms have been
removed.\n\n\n### Checklist\n\nCheck the PR satisfies following
conditions. \n\nReviewers should verify this PR satisfies this list as
well.\n\n- [ ] ~Any text added follows [EUI's
writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\nsentence case text and includes
[i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)~\n-
[
]\n~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas
added for features that require explanation or tutorials~\n- [ ] ~[Unit
or
functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere
updated or added to match the most common scenarios~\n- [ ] ~If a plugin
configuration key changed, check if it needs to be\nallowlisted in the
cloud and added to the
[docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~\n-
[ ] ~This was checked for breaking HTTP API changes, and any
breaking\nchanges have been approved by the breaking-change committee.
The\n`release_note:breaking` label should be applied in these
situations.~\n- [ ] ~[Flaky
Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\nused on any tests changed~\n- [x] The PR description includes the
appropriate Release Notes section,\nand the correct `release_note:*`
label is applied per
the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n-
[x] Review the
[backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand
apply applicable `backport:*` labels.\n\n## Release Note\n\nFixes an
accessibility issue where resetting changes or removing all\nterms in
the Synonyms panel was not announced by screen readers.\nVoiceOver users
on Safari will now hear updates when terms are
reset.","sha":"9e7e748579b074f756e438941f236355ca190656","branchLabelMapping":{"^v9.3.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Search","backport:all-open","ci:cloud-redeploy","v9.3.0"],"title":"[Search][Accessibility]
Announce changes when resetting terms in synonyms
panel","number":237877,"url":"https://github.com/elastic/kibana/pull/237877","mergeCommit":{"message":"[Search][Accessibility]
Announce changes when resetting terms in synonyms panel (#237877)\n\n##
Summary\nCurrently, when a user clicks `Reset changes` or `Remove all`
on the Add\nTerms panel (for either equivalent or explicit types) in the
Synonyms\nset editor, the terms are reset visually but the change is not
announced\nby VoiceOver on macOS Safari. This breaks WCAG 4.1.2: Name,
Role, Value\n(Level A).\n\nThis PR updates the Add Terms panel to use
`aria-live=\"polite\"`\nannouncements when either buttons are clicked,
so screen readers can\ninform users of the change.\n\n### How to
test\n1. Enable VoiceOver on macOS (Cmd + F5).\n2. Open Kibana and
navigate to **Search → Synonyms**.\n3. Create a new synonyms set and
select either \"equivalent\" or\n\"explicit\" rule.\n4. Add terms and
click \"Reset changes\".\n5. Confirm that VoiceOver announces that the
terms have been reset.\n6. Add terms and click \"Remove all\".\n5.
Confirm that VoiceOver announces that the terms have been
removed.\n\n\n### Checklist\n\nCheck the PR satisfies following
conditions. \n\nReviewers should verify this PR satisfies this list as
well.\n\n- [ ] ~Any text added follows [EUI's
writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\nsentence case text and includes
[i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)~\n-
[
]\n~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas
added for features that require explanation or tutorials~\n- [ ] ~[Unit
or
functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere
updated or added to match the most common scenarios~\n- [ ] ~If a plugin
configuration key changed, check if it needs to be\nallowlisted in the
cloud and added to the
[docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~\n-
[ ] ~This was checked for breaking HTTP API changes, and any
breaking\nchanges have been approved by the breaking-change committee.
The\n`release_note:breaking` label should be applied in these
situations.~\n- [ ] ~[Flaky
Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\nused on any tests changed~\n- [x] The PR description includes the
appropriate Release Notes section,\nand the correct `release_note:*`
label is applied per
the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n-
[x] Review the
[backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand
apply applicable `backport:*` labels.\n\n## Release Note\n\nFixes an
accessibility issue where resetting changes or removing all\nterms in
the Synonyms panel was not announced by screen readers.\nVoiceOver users
on Safari will now hear updates when terms are
reset.","sha":"9e7e748579b074f756e438941f236355ca190656"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.3.0","branchLabelMappingKey":"^v9.3.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/237877","number":237877,"mergeCommit":{"message":"[Search][Accessibility]
Announce changes when resetting terms in synonyms panel (#237877)\n\n##
Summary\nCurrently, when a user clicks `Reset changes` or `Remove all`
on the Add\nTerms panel (for either equivalent or explicit types) in the
Synonyms\nset editor, the terms are reset visually but the change is not
announced\nby VoiceOver on macOS Safari. This breaks WCAG 4.1.2: Name,
Role, Value\n(Level A).\n\nThis PR updates the Add Terms panel to use
`aria-live=\"polite\"`\nannouncements when either buttons are clicked,
so screen readers can\ninform users of the change.\n\n### How to
test\n1. Enable VoiceOver on macOS (Cmd + F5).\n2. Open Kibana and
navigate to **Search → Synonyms**.\n3. Create a new synonyms set and
select either \"equivalent\" or\n\"explicit\" rule.\n4. Add terms and
click \"Reset changes\".\n5. Confirm that VoiceOver announces that the
terms have been reset.\n6. Add terms and click \"Remove all\".\n5.
Confirm that VoiceOver announces that the terms have been
removed.\n\n\n### Checklist\n\nCheck the PR satisfies following
conditions. \n\nReviewers should verify this PR satisfies this list as
well.\n\n- [ ] ~Any text added follows [EUI's
writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\nsentence case text and includes
[i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)~\n-
[
]\n~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas
added for features that require explanation or tutorials~\n- [ ] ~[Unit
or
functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere
updated or added to match the most common scenarios~\n- [ ] ~If a plugin
configuration key changed, check if it needs to be\nallowlisted in the
cloud and added to the
[docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~\n-
[ ] ~This was checked for breaking HTTP API changes, and any
breaking\nchanges have been approved by the breaking-change committee.
The\n`release_note:breaking` label should be applied in these
situations.~\n- [ ] ~[Flaky
Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\nused on any tests changed~\n- [x] The PR description includes the
appropriate Release Notes section,\nand the correct `release_note:*`
label is applied per
the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n-
[x] Review the
[backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand
apply applicable `backport:*` labels.\n\n## Release Note\n\nFixes an
accessibility issue where resetting changes or removing all\nterms in
the Synonyms panel was not announced by screen readers.\nVoiceOver users
on Safari will now hear updates when terms are
reset.","sha":"9e7e748579b074f756e438941f236355ca190656"}}]}]
BACKPORT-->

Co-authored-by: Brittany <seialkali@gmail.com>
rylnd pushed a commit to rylnd/kibana that referenced this pull request Oct 17, 2025
…nyms panel (elastic#237877)

## Summary
Currently, when a user clicks `Reset changes` or `Remove all` on the Add
Terms panel (for either equivalent or explicit types) in the Synonyms
set editor, the terms are reset visually but the change is not announced
by VoiceOver on macOS Safari. This breaks WCAG 4.1.2: Name, Role, Value
(Level A).

This PR updates the Add Terms panel to use `aria-live="polite"`
announcements when either buttons are clicked, so screen readers can
inform users of the change.

### How to test
1. Enable VoiceOver on macOS (Cmd + F5).
2. Open Kibana and navigate to **Search → Synonyms**.
3. Create a new synonyms set and select either "equivalent" or
"explicit" rule.
4. Add terms and click "Reset changes".
5. Confirm that VoiceOver announces that the terms have been reset.
6. Add terms and click "Remove all".
5. Confirm that VoiceOver announces that the terms have been removed.


### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] ~Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)~
- [ ]
~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials~
- [ ] ~[Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios~
- [ ] ~If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~
- [ ] ~This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.~
- [ ] ~[Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed~
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

## Release Note

Fixes an accessibility issue where resetting changes or removing all
terms in the Synonyms panel was not announced by screen readers.
VoiceOver users on Safari will now hear updates when terms are reset.
nickpeihl pushed a commit to nickpeihl/kibana that referenced this pull request Oct 23, 2025
…nyms panel (elastic#237877)

## Summary
Currently, when a user clicks `Reset changes` or `Remove all` on the Add
Terms panel (for either equivalent or explicit types) in the Synonyms
set editor, the terms are reset visually but the change is not announced
by VoiceOver on macOS Safari. This breaks WCAG 4.1.2: Name, Role, Value
(Level A).

This PR updates the Add Terms panel to use `aria-live="polite"`
announcements when either buttons are clicked, so screen readers can
inform users of the change.

### How to test
1. Enable VoiceOver on macOS (Cmd + F5).
2. Open Kibana and navigate to **Search → Synonyms**.
3. Create a new synonyms set and select either "equivalent" or
"explicit" rule.
4. Add terms and click "Reset changes".
5. Confirm that VoiceOver announces that the terms have been reset.
6. Add terms and click "Remove all".
5. Confirm that VoiceOver announces that the terms have been removed.


### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] ~Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)~
- [ ]
~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials~
- [ ] ~[Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios~
- [ ] ~If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~
- [ ] ~This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.~
- [ ] ~[Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed~
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

## Release Note

Fixes an accessibility issue where resetting changes or removing all
terms in the Synonyms panel was not announced by screen readers.
VoiceOver users on Safari will now hear updates when terms are reset.
NicholasPeretti pushed a commit to NicholasPeretti/kibana that referenced this pull request Oct 27, 2025
…nyms panel (elastic#237877)

## Summary
Currently, when a user clicks `Reset changes` or `Remove all` on the Add
Terms panel (for either equivalent or explicit types) in the Synonyms
set editor, the terms are reset visually but the change is not announced
by VoiceOver on macOS Safari. This breaks WCAG 4.1.2: Name, Role, Value
(Level A).

This PR updates the Add Terms panel to use `aria-live="polite"`
announcements when either buttons are clicked, so screen readers can
inform users of the change.

### How to test
1. Enable VoiceOver on macOS (Cmd + F5).
2. Open Kibana and navigate to **Search → Synonyms**.
3. Create a new synonyms set and select either "equivalent" or
"explicit" rule.
4. Add terms and click "Reset changes".
5. Confirm that VoiceOver announces that the terms have been reset.
6. Add terms and click "Remove all".
5. Confirm that VoiceOver announces that the terms have been removed.


### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] ~Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)~
- [ ]
~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials~
- [ ] ~[Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios~
- [ ] ~If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~
- [ ] ~This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.~
- [ ] ~[Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed~
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

## Release Note

Fixes an accessibility issue where resetting changes or removing all
terms in the Synonyms panel was not announced by screen readers.
VoiceOver users on Safari will now hear updates when terms are reset.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:all-open Backport to all branches that could still receive a release ci:cloud-redeploy Always create a new Cloud deployment release_note:fix Team:Search v9.2.0 v9.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Search:Synonyms] Reset changes on add terms to match against panel for both equivalent and explicit rule type is not announced

6 participants