Skip to content

[Ingest pipelines] Fix processors accessibility announcements#259096

Merged
SoniaSanzV merged 5 commits intoelastic:mainfrom
SoniaSanzV:a11y/ingest_pipelines-processors-announcements#218245
Mar 25, 2026
Merged

[Ingest pipelines] Fix processors accessibility announcements#259096
SoniaSanzV merged 5 commits intoelastic:mainfrom
SoniaSanzV:a11y/ingest_pipelines-processors-announcements#218245

Conversation

@SoniaSanzV
Copy link
Copy Markdown
Contributor

@SoniaSanzV SoniaSanzV commented Mar 23, 2026

Closes #218245
Closes #218210

Summary

  • Improve ingest pipeline processor move accessibility by reliably announcing move completion and restoring focus to the moved processor.
  • Added a new test file yarn test:jest x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts
    Before
  • Move targets were ambiguous: while moving, NVDA announced only “Move here” / “Cannot move here” without indicating where the processor would be inserted (from/to context).
  • Confirmation + focus after drop were broken/inconsistent:
    • After placing with Space: focus was missing and a different processor could be announced.
    • After placing with Enter: sometimes no announcement at all (unclear whether the move succeeded).
  • Move button lacked processor context: navigating rows announced “Move this processor” without the processor name.

After:

  • Move button name includes processor context (processor name is included with the Move/Cancel control label).
  • Drop zones announce specific targets (before/after + section context), not just generic “move here”.
  • After dropping, the move completion is announced and focus is restored to the moved processor (works in NVDA/Chrome and VO per our manual verification).

Test plan

  • Manual:
    • VoiceOver (macOS): enter move mode, move within/across sections; verify confirmation announcement + focus.
    • If the reviewer has NVDA (Windows) set up, same flow.

Demo

Windows+NVDA

edge.mov

Safari + Voice Over

safari.mov
@SoniaSanzV SoniaSanzV self-assigned this Mar 23, 2026
@SoniaSanzV SoniaSanzV requested a review from a team as a code owner March 23, 2026 14:05
@SoniaSanzV SoniaSanzV added Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more t// release_note:skip Skip the PR/issue when compiling release notes Feature:Ingest Node Pipelines Ingest node pipelines management backport:all-open Backport to all branches that could still receive a release labels Mar 23, 2026
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/kibana-management (Team:Kibana Management)

@SoniaSanzV SoniaSanzV changed the title [Ingest pipelines ]Fix processors accessibility announcements Mar 23, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 23, 2026

Caution

Review failed

The head commit changed during the review from cd21bbc to f812403.

📝 Walkthrough

Walkthrough

The changes introduce processor-specific accessibility enhancements to the ingest pipeline editor's move functionality. They add human-readable processor labels to move buttons and drop-zone controls, localized accessibility announcements for move operations using context-aware labels, focus restoration to the moved processor after relocation, and screen reader announcements via EuiLiveAnnouncer for move completion. These modifications span 14 files with approximately 550 lines of changes, including new i18n translation utilities and accessibility helper modules.

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR comprehensively addresses all objectives from #218245: processor names in move buttons, context-specific drop-zone labels, and post-move focus restoration with announcement.
Out of Scope Changes check ✅ Passed All changes directly support the accessibility improvements outlined in #218245; no unrelated modifications detected.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • 🛠️ Update Documentation: Commit on current branch
  • 🛠️ Update Documentation: Create PR

Warning

Tools execution failed with the following error:

Failed to run tools: 13 INTERNAL: Received RST_STREAM with code 2 (Internal server error)


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.ts`:
- Around line 14-20: getScopeLabel incorrectly treats any selector that includes
'onFailure' but has the first element 'onFailure' as "failure processors",
causing nested selectors like ['onFailure','0','onFailure','0'] to be labeled
wrong; update the logic in getScopeLabel (and mirror the change in
processorsTreeI18nTexts.getSectionLabelForSelector()) to compute the index of
the first 'onFailure' (e.g., const firstOnFailure =
selector.indexOf('onFailure')) and use firstOnFailure === 0 to choose
destinationScope.failureProcessors, otherwise choose
destinationScope.failureHandlers, keeping the initial hasOnFailure check to
return processors when absent.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 6896bc54-dd5e-4477-b02b-c692de83fc75

📥 Commits

Reviewing files that changed from the base of the PR and between bb24225 and d5b3f1f.

📒 Files selected for processing (13)
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor.tsx
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor_item/i18n_texts.ts
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor_item/pipeline_processors_editor_item.tsx
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor_item_status.tsx
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/processors_tree/components/drop_zone_button.tsx
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/processors_tree/components/private_tree.tsx
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/processors_tree/components/tree_node.tsx
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/processors_tree/i18n_texts.ts
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/processors_tree/processors_tree.tsx
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/i18n_texts.ts
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.ts
  • x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/processors_context.tsx
Copy link
Copy Markdown
Contributor

@kapral18 kapral18 left a comment

Choose a reason for hiding this comment

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

Nice a11y improvement overall (move completion announcement + focus restore).

One correctness gap (already flagged by CodeRabbit): #259096 (comment)

I reproduced locally that nested onFailure selectors rooted in the top-level onFailure tree (e.g. ["onFailure","0","onFailure","0"]) are labeled as “Failure processors” but should be “Failure handlers”.

Suggestion: base the label on onFailure depth and apply consistently in both the move announcement scope labeling + processors_tree/i18n_texts.ts#getSectionLabelForSelector.

@SoniaSanzV SoniaSanzV added release_note:fix and removed release_note:skip Skip the PR/issue when compiling release notes labels Mar 24, 2026
@SoniaSanzV SoniaSanzV enabled auto-merge (squash) March 25, 2026 07:01
@elasticmachine
Copy link
Copy Markdown
Contributor

elasticmachine commented Mar 25, 2026

💔 Build Failed

Failed CI Steps

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
ingestPipelines 291 294 +3

Async chunks

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

id before after diff
ingestPipelines 349.7KB 358.8KB +9.1KB

History

cc @SoniaSanzV

@SoniaSanzV SoniaSanzV merged commit 7dcb394 into elastic:main Mar 25, 2026
19 checks passed
@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 8.19, 9.2, 9.3

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

kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Mar 25, 2026
…c#259096)

Closes elastic#218245
Closes elastic#218210
## Summary
- Improve ingest pipeline processor move accessibility by reliably
announcing move completion and restoring focus to the moved processor.
- Added a new test file `yarn test:jest
x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`
**Before**
- **Move targets were ambiguous**: while moving, NVDA announced only
“Move here” / “Cannot move here” without indicating *where* the
processor would be inserted (from/to context).
- **Confirmation + focus after drop were broken/inconsistent**:
- After placing with **Space**: focus was missing and a different
processor could be announced.
- After placing with **Enter**: sometimes **no announcement** at all
(unclear whether the move succeeded).
- **Move button lacked processor context**: navigating rows announced
“Move this processor” without the processor name.

**After**:
- **Move button name includes processor context** (processor name is
included with the Move/Cancel control label).
- **Drop zones announce specific targets** (before/after + section
context), not just generic “move here”.
- **After dropping, the move completion is announced and focus is
restored to the moved processor** (works in NVDA/Chrome and VO per our
manual verification).
### Test plan
- Manual:
- VoiceOver (macOS): enter move mode, move within/across sections;
verify confirmation announcement + focus.
  - If the reviewer has  NVDA (Windows) set up, same flow.

### Demo

**Windows+NVDA**

https://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb

**Safari + Voice Over**

https://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d
(cherry picked from commit 7dcb394)
kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Mar 25, 2026
…c#259096)

Closes elastic#218245
Closes elastic#218210
## Summary
- Improve ingest pipeline processor move accessibility by reliably
announcing move completion and restoring focus to the moved processor.
- Added a new test file `yarn test:jest
x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`
**Before**
- **Move targets were ambiguous**: while moving, NVDA announced only
“Move here” / “Cannot move here” without indicating *where* the
processor would be inserted (from/to context).
- **Confirmation + focus after drop were broken/inconsistent**:
- After placing with **Space**: focus was missing and a different
processor could be announced.
- After placing with **Enter**: sometimes **no announcement** at all
(unclear whether the move succeeded).
- **Move button lacked processor context**: navigating rows announced
“Move this processor” without the processor name.

**After**:
- **Move button name includes processor context** (processor name is
included with the Move/Cancel control label).
- **Drop zones announce specific targets** (before/after + section
context), not just generic “move here”.
- **After dropping, the move completion is announced and focus is
restored to the moved processor** (works in NVDA/Chrome and VO per our
manual verification).
### Test plan
- Manual:
- VoiceOver (macOS): enter move mode, move within/across sections;
verify confirmation announcement + focus.
  - If the reviewer has  NVDA (Windows) set up, same flow.

### Demo

**Windows+NVDA**

https://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb

**Safari + Voice Over**

https://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d
(cherry picked from commit 7dcb394)
@kibanamachine
Copy link
Copy Markdown
Contributor

💔 Some backports could not be created

Status Branch Result
8.19 Backport failed because of merge conflicts
9.2
9.3

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

Manual backport

To create the backport manually run:

node scripts/backport --pr 259096

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Mar 25, 2026
…259096) (#259531)

# Backport

This will backport the following commits from `main` to `9.2`:
- [[Ingest pipelines] Fix processors accessibility announcements
(#259096)](#259096)

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

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

<!--BACKPORT [{"author":{"name":"Sonia Sanz
Vivas","email":"sonia.sanzvivas@elastic.co"},"sourceCommit":{"committedDate":"2026-03-25T10:35:37Z","message":"[Ingest
pipelines] Fix processors accessibility announcements
(#259096)\n\nCloses
https://github.com/elastic/kibana/issues/218245\nCloses
https://github.com/elastic/kibana/issues/218210\n## Summary\n- Improve
ingest pipeline processor move accessibility by reliably\nannouncing
move completion and restoring focus to the moved processor.\n- Added a
new test file `yarn
test:jest\nx-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`\n**Before**\n-
**Move targets were ambiguous**: while moving, NVDA announced
only\n“Move here” / “Cannot move here” without indicating *where*
the\nprocessor would be inserted (from/to context).\n- **Confirmation +
focus after drop were broken/inconsistent**:\n- After placing with
**Space**: focus was missing and a different\nprocessor could be
announced.\n- After placing with **Enter**: sometimes **no
announcement** at all\n(unclear whether the move succeeded).\n- **Move
button lacked processor context**: navigating rows announced\n“Move this
processor” without the processor name.\n\n**After**:\n- **Move button
name includes processor context** (processor name is\nincluded with the
Move/Cancel control label).\n- **Drop zones announce specific targets**
(before/after + section\ncontext), not just generic “move here”.\n-
**After dropping, the move completion is announced and focus
is\nrestored to the moved processor** (works in NVDA/Chrome and VO per
our\nmanual verification).\n### Test plan\n- Manual:\n- VoiceOver
(macOS): enter move mode, move within/across sections;\nverify
confirmation announcement + focus.\n - If the reviewer has NVDA
(Windows) set up, same flow.\n\n###
Demo\n\n**Windows+NVDA**\n\n\n\nhttps://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb\n\n\n\n**Safari
+ Voice
Over**\n\n\n\nhttps://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d","sha":"7dcb39475e94a3481d4b3266219868402928f181","branchLabelMapping":{"^v9.4.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Kibana
Management","Feature:Ingest Node
Pipelines","backport:all-open","v9.4.0"],"title":"[Ingest pipelines] Fix
processors accessibility
announcements","number":259096,"url":"https://github.com/elastic/kibana/pull/259096","mergeCommit":{"message":"[Ingest
pipelines] Fix processors accessibility announcements
(#259096)\n\nCloses
https://github.com/elastic/kibana/issues/218245\nCloses
https://github.com/elastic/kibana/issues/218210\n## Summary\n- Improve
ingest pipeline processor move accessibility by reliably\nannouncing
move completion and restoring focus to the moved processor.\n- Added a
new test file `yarn
test:jest\nx-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`\n**Before**\n-
**Move targets were ambiguous**: while moving, NVDA announced
only\n“Move here” / “Cannot move here” without indicating *where*
the\nprocessor would be inserted (from/to context).\n- **Confirmation +
focus after drop were broken/inconsistent**:\n- After placing with
**Space**: focus was missing and a different\nprocessor could be
announced.\n- After placing with **Enter**: sometimes **no
announcement** at all\n(unclear whether the move succeeded).\n- **Move
button lacked processor context**: navigating rows announced\n“Move this
processor” without the processor name.\n\n**After**:\n- **Move button
name includes processor context** (processor name is\nincluded with the
Move/Cancel control label).\n- **Drop zones announce specific targets**
(before/after + section\ncontext), not just generic “move here”.\n-
**After dropping, the move completion is announced and focus
is\nrestored to the moved processor** (works in NVDA/Chrome and VO per
our\nmanual verification).\n### Test plan\n- Manual:\n- VoiceOver
(macOS): enter move mode, move within/across sections;\nverify
confirmation announcement + focus.\n - If the reviewer has NVDA
(Windows) set up, same flow.\n\n###
Demo\n\n**Windows+NVDA**\n\n\n\nhttps://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb\n\n\n\n**Safari
+ Voice
Over**\n\n\n\nhttps://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d","sha":"7dcb39475e94a3481d4b3266219868402928f181"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.4.0","branchLabelMappingKey":"^v9.4.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/259096","number":259096,"mergeCommit":{"message":"[Ingest
pipelines] Fix processors accessibility announcements
(#259096)\n\nCloses
https://github.com/elastic/kibana/issues/218245\nCloses
https://github.com/elastic/kibana/issues/218210\n## Summary\n- Improve
ingest pipeline processor move accessibility by reliably\nannouncing
move completion and restoring focus to the moved processor.\n- Added a
new test file `yarn
test:jest\nx-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`\n**Before**\n-
**Move targets were ambiguous**: while moving, NVDA announced
only\n“Move here” / “Cannot move here” without indicating *where*
the\nprocessor would be inserted (from/to context).\n- **Confirmation +
focus after drop were broken/inconsistent**:\n- After placing with
**Space**: focus was missing and a different\nprocessor could be
announced.\n- After placing with **Enter**: sometimes **no
announcement** at all\n(unclear whether the move succeeded).\n- **Move
button lacked processor context**: navigating rows announced\n“Move this
processor” without the processor name.\n\n**After**:\n- **Move button
name includes processor context** (processor name is\nincluded with the
Move/Cancel control label).\n- **Drop zones announce specific targets**
(before/after + section\ncontext), not just generic “move here”.\n-
**After dropping, the move completion is announced and focus
is\nrestored to the moved processor** (works in NVDA/Chrome and VO per
our\nmanual verification).\n### Test plan\n- Manual:\n- VoiceOver
(macOS): enter move mode, move within/across sections;\nverify
confirmation announcement + focus.\n - If the reviewer has NVDA
(Windows) set up, same flow.\n\n###
Demo\n\n**Windows+NVDA**\n\n\n\nhttps://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb\n\n\n\n**Safari
+ Voice
Over**\n\n\n\nhttps://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d","sha":"7dcb39475e94a3481d4b3266219868402928f181"}}]}]
BACKPORT-->

Co-authored-by: Sonia Sanz Vivas <sonia.sanzvivas@elastic.co>
kibanamachine added a commit that referenced this pull request Mar 25, 2026
…259096) (#259532)

# Backport

This will backport the following commits from `main` to `9.3`:
- [[Ingest pipelines] Fix processors accessibility announcements
(#259096)](#259096)

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

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

<!--BACKPORT [{"author":{"name":"Sonia Sanz
Vivas","email":"sonia.sanzvivas@elastic.co"},"sourceCommit":{"committedDate":"2026-03-25T10:35:37Z","message":"[Ingest
pipelines] Fix processors accessibility announcements
(#259096)\n\nCloses
https://github.com/elastic/kibana/issues/218245\nCloses
https://github.com/elastic/kibana/issues/218210\n## Summary\n- Improve
ingest pipeline processor move accessibility by reliably\nannouncing
move completion and restoring focus to the moved processor.\n- Added a
new test file `yarn
test:jest\nx-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`\n**Before**\n-
**Move targets were ambiguous**: while moving, NVDA announced
only\n“Move here” / “Cannot move here” without indicating *where*
the\nprocessor would be inserted (from/to context).\n- **Confirmation +
focus after drop were broken/inconsistent**:\n- After placing with
**Space**: focus was missing and a different\nprocessor could be
announced.\n- After placing with **Enter**: sometimes **no
announcement** at all\n(unclear whether the move succeeded).\n- **Move
button lacked processor context**: navigating rows announced\n“Move this
processor” without the processor name.\n\n**After**:\n- **Move button
name includes processor context** (processor name is\nincluded with the
Move/Cancel control label).\n- **Drop zones announce specific targets**
(before/after + section\ncontext), not just generic “move here”.\n-
**After dropping, the move completion is announced and focus
is\nrestored to the moved processor** (works in NVDA/Chrome and VO per
our\nmanual verification).\n### Test plan\n- Manual:\n- VoiceOver
(macOS): enter move mode, move within/across sections;\nverify
confirmation announcement + focus.\n - If the reviewer has NVDA
(Windows) set up, same flow.\n\n###
Demo\n\n**Windows+NVDA**\n\n\n\nhttps://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb\n\n\n\n**Safari
+ Voice
Over**\n\n\n\nhttps://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d","sha":"7dcb39475e94a3481d4b3266219868402928f181","branchLabelMapping":{"^v9.4.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Kibana
Management","Feature:Ingest Node
Pipelines","backport:all-open","v9.4.0"],"title":"[Ingest pipelines] Fix
processors accessibility
announcements","number":259096,"url":"https://github.com/elastic/kibana/pull/259096","mergeCommit":{"message":"[Ingest
pipelines] Fix processors accessibility announcements
(#259096)\n\nCloses
https://github.com/elastic/kibana/issues/218245\nCloses
https://github.com/elastic/kibana/issues/218210\n## Summary\n- Improve
ingest pipeline processor move accessibility by reliably\nannouncing
move completion and restoring focus to the moved processor.\n- Added a
new test file `yarn
test:jest\nx-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`\n**Before**\n-
**Move targets were ambiguous**: while moving, NVDA announced
only\n“Move here” / “Cannot move here” without indicating *where*
the\nprocessor would be inserted (from/to context).\n- **Confirmation +
focus after drop were broken/inconsistent**:\n- After placing with
**Space**: focus was missing and a different\nprocessor could be
announced.\n- After placing with **Enter**: sometimes **no
announcement** at all\n(unclear whether the move succeeded).\n- **Move
button lacked processor context**: navigating rows announced\n“Move this
processor” without the processor name.\n\n**After**:\n- **Move button
name includes processor context** (processor name is\nincluded with the
Move/Cancel control label).\n- **Drop zones announce specific targets**
(before/after + section\ncontext), not just generic “move here”.\n-
**After dropping, the move completion is announced and focus
is\nrestored to the moved processor** (works in NVDA/Chrome and VO per
our\nmanual verification).\n### Test plan\n- Manual:\n- VoiceOver
(macOS): enter move mode, move within/across sections;\nverify
confirmation announcement + focus.\n - If the reviewer has NVDA
(Windows) set up, same flow.\n\n###
Demo\n\n**Windows+NVDA**\n\n\n\nhttps://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb\n\n\n\n**Safari
+ Voice
Over**\n\n\n\nhttps://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d","sha":"7dcb39475e94a3481d4b3266219868402928f181"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.4.0","branchLabelMappingKey":"^v9.4.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/259096","number":259096,"mergeCommit":{"message":"[Ingest
pipelines] Fix processors accessibility announcements
(#259096)\n\nCloses
https://github.com/elastic/kibana/issues/218245\nCloses
https://github.com/elastic/kibana/issues/218210\n## Summary\n- Improve
ingest pipeline processor move accessibility by reliably\nannouncing
move completion and restoring focus to the moved processor.\n- Added a
new test file `yarn
test:jest\nx-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`\n**Before**\n-
**Move targets were ambiguous**: while moving, NVDA announced
only\n“Move here” / “Cannot move here” without indicating *where*
the\nprocessor would be inserted (from/to context).\n- **Confirmation +
focus after drop were broken/inconsistent**:\n- After placing with
**Space**: focus was missing and a different\nprocessor could be
announced.\n- After placing with **Enter**: sometimes **no
announcement** at all\n(unclear whether the move succeeded).\n- **Move
button lacked processor context**: navigating rows announced\n“Move this
processor” without the processor name.\n\n**After**:\n- **Move button
name includes processor context** (processor name is\nincluded with the
Move/Cancel control label).\n- **Drop zones announce specific targets**
(before/after + section\ncontext), not just generic “move here”.\n-
**After dropping, the move completion is announced and focus
is\nrestored to the moved processor** (works in NVDA/Chrome and VO per
our\nmanual verification).\n### Test plan\n- Manual:\n- VoiceOver
(macOS): enter move mode, move within/across sections;\nverify
confirmation announcement + focus.\n - If the reviewer has NVDA
(Windows) set up, same flow.\n\n###
Demo\n\n**Windows+NVDA**\n\n\n\nhttps://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb\n\n\n\n**Safari
+ Voice
Over**\n\n\n\nhttps://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d","sha":"7dcb39475e94a3481d4b3266219868402928f181"}}]}]
BACKPORT-->

Co-authored-by: Sonia Sanz Vivas <sonia.sanzvivas@elastic.co>
jeramysoucy pushed a commit to jeramysoucy/kibana that referenced this pull request Mar 26, 2026
…c#259096)

Closes elastic#218245
Closes elastic#218210
## Summary
- Improve ingest pipeline processor move accessibility by reliably
announcing move completion and restoring focus to the moved processor.
- Added a new test file `yarn test:jest
x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`
**Before**
- **Move targets were ambiguous**: while moving, NVDA announced only
“Move here” / “Cannot move here” without indicating *where* the
processor would be inserted (from/to context).
- **Confirmation + focus after drop were broken/inconsistent**:
- After placing with **Space**: focus was missing and a different
processor could be announced.
- After placing with **Enter**: sometimes **no announcement** at all
(unclear whether the move succeeded).
- **Move button lacked processor context**: navigating rows announced
“Move this processor” without the processor name.

**After**:
- **Move button name includes processor context** (processor name is
included with the Move/Cancel control label).
- **Drop zones announce specific targets** (before/after + section
context), not just generic “move here”.
- **After dropping, the move completion is announced and focus is
restored to the moved processor** (works in NVDA/Chrome and VO per our
manual verification).
### Test plan
- Manual:
- VoiceOver (macOS): enter move mode, move within/across sections;
verify confirmation announcement + focus.
  - If the reviewer has  NVDA (Windows) set up, same flow.

### Demo

**Windows+NVDA**



https://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb



**Safari + Voice Over**



https://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d
jeramysoucy pushed a commit to jeramysoucy/kibana that referenced this pull request Apr 1, 2026
…c#259096)

Closes elastic#218245
Closes elastic#218210
## Summary
- Improve ingest pipeline processor move accessibility by reliably
announcing move completion and restoring focus to the moved processor.
- Added a new test file `yarn test:jest
x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/context/move_a11y.test.ts`
**Before**
- **Move targets were ambiguous**: while moving, NVDA announced only
“Move here” / “Cannot move here” without indicating *where* the
processor would be inserted (from/to context).
- **Confirmation + focus after drop were broken/inconsistent**:
- After placing with **Space**: focus was missing and a different
processor could be announced.
- After placing with **Enter**: sometimes **no announcement** at all
(unclear whether the move succeeded).
- **Move button lacked processor context**: navigating rows announced
“Move this processor” without the processor name.

**After**:
- **Move button name includes processor context** (processor name is
included with the Move/Cancel control label).
- **Drop zones announce specific targets** (before/after + section
context), not just generic “move here”.
- **After dropping, the move completion is announced and focus is
restored to the moved processor** (works in NVDA/Chrome and VO per our
manual verification).
### Test plan
- Manual:
- VoiceOver (macOS): enter move mode, move within/across sections;
verify confirmation announcement + focus.
  - If the reviewer has  NVDA (Windows) set up, same flow.

### Demo

**Windows+NVDA**



https://github.com/user-attachments/assets/d513e371-b578-4f8c-91f6-9c459dacb0bb



**Safari + Voice Over**



https://github.com/user-attachments/assets/bf61f013-f7f4-461a-aaab-a6709d50b84d
@SoniaSanzV SoniaSanzV deleted the a11y/ingest_pipelines-processors-announcements#218245 branch April 10, 2026 12:33
@SoniaSanzV SoniaSanzV added backport:version Backport to applied version labels and removed backport:all-open Backport to all branches that could still receive a release labels Apr 10, 2026
@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 9.2, 9.3

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

@kibanamachine
Copy link
Copy Markdown
Contributor

💔 All backports failed

Status Branch Result
9.2 Cherrypick failed because the selected commit (7dcb394) is empty. It looks like the commit was already backported in #259531
9.3 Cherrypick failed because the selected commit (7dcb394) is empty. It looks like the commit was already backported in #259532

Manual backport

To create the backport manually run:

node scripts/backport --pr 259096

Questions ?

Please refer to the Backport tool documentation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:version Backport to applied version labels Feature:Ingest Node Pipelines Ingest node pipelines management release_note:fix Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more t// v9.2.8 v9.3.3 v9.4.0

4 participants