-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Fix focus order in SOM table list view #229876
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix focus order in SOM table list view #229876
Conversation
Flaky Test Runner Stats🎉 All tests passed! - kibana-flaky-test-suite-runner#8908[✅] src/platform/test/functional/apps/saved_objects_management/config.ts: 25/25 tests passed. |
|
Pinging @elastic/kibana-core (Team:Core) |
Bamieh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we revert the comments removal on top of the functions? also left a few additional requests to address
| <div aria-live="polite" style={{ position: 'absolute', left: '-9999px' }}> | ||
| {selectedSavedObjects.length > 0 | ||
| ? `${selectedSavedObjects.length} item${ | ||
| selectedSavedObjects.length > 1 ? 's' : '' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to be internationalized with pluralization.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
great catch!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done: 22977ce.
I chose the message id after reviewing message types. LMK if it should rather be savedObjectsManagement.objectsTable.selectedSavedObjectsLabel.
...shared/saved_objects_management/public/management_section/objects_table/components/table.tsx
Outdated
Show resolved
Hide resolved
...shared/saved_objects_management/public/management_section/objects_table/components/table.tsx
Outdated
Show resolved
Hide resolved
...red/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx
Show resolved
Hide resolved
...red/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx
Show resolved
Hide resolved
...ects_management/public/management_section/objects_table/components/table_focus_order_fix.tsx
Outdated
Show resolved
Hide resolved
...shared/saved_objects_management/public/management_section/objects_table/components/table.tsx
Outdated
Show resolved
Hide resolved
TinaHeiligers
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
self-review
…nagement_section/objects_table/components/table.tsx
...red/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx
Outdated
Show resolved
Hide resolved
…nagement_section/objects_table/saved_objects_table.tsx
💛 Build succeeded, but was flaky
Failed CI StepsTest Failures
Metrics [docs]Async chunks
History
|
Bamieh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
Starting backport for target branches: 8.17, 8.18, 8.19, 9.0, 9.1 https://github.com/elastic/kibana/actions/runs/16647618327 |
fix elastic#154431 ## Summary This PR addresses the focus order issue in the Saved Objects table. There are several ways to address this issue: | Problem | Fix | |---------|-----| | Action buttons not immediately focusable after selection | Programmatically move focus to main action button (e.g., Delete) after selection | | Tab order does not match logical order | Ensure toolbar is before table in DOM, and focus moves as expected | | Actions are not easily accessible by keyboard | Add keyboard shortcuts for actions (optional) | | Screen reader users unaware of state change | Use ARIA live region to announce selection (optional) | I’ve taken the **pragmatic** approach and updated the focus management so that when a user selects an item, focus automatically moves to the Delete button, making keyboard navigation smoother. The changes in this PR include: - Updating the `onSelectionChanged` handler to focus the `Delete` button after selection, but only if it’s enabled. - Ensuring the `deleteButtonRef` is properly passed down and forwarded to the `EuiButton`. - Using the `setState` callback to guarantee the UI is updated before moving focus. With these changes, users can select items and immediately interact with the Delete or Export buttons without having to tab through the entire table. This should make the table more accessible and efficient to use. ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] [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 - [x] [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. ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [x] Changing the focus order from navigating through the saved objects table list directly to the delete button carries a risk that users might accidentally trigger deleting a saved object by mistake. The risk is low because the delete action has to be confirmed in a pop up modal before it triggers. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> (cherry picked from commit 731e97f)
fix elastic#154431 ## Summary This PR addresses the focus order issue in the Saved Objects table. There are several ways to address this issue: | Problem | Fix | |---------|-----| | Action buttons not immediately focusable after selection | Programmatically move focus to main action button (e.g., Delete) after selection | | Tab order does not match logical order | Ensure toolbar is before table in DOM, and focus moves as expected | | Actions are not easily accessible by keyboard | Add keyboard shortcuts for actions (optional) | | Screen reader users unaware of state change | Use ARIA live region to announce selection (optional) | I’ve taken the **pragmatic** approach and updated the focus management so that when a user selects an item, focus automatically moves to the Delete button, making keyboard navigation smoother. The changes in this PR include: - Updating the `onSelectionChanged` handler to focus the `Delete` button after selection, but only if it’s enabled. - Ensuring the `deleteButtonRef` is properly passed down and forwarded to the `EuiButton`. - Using the `setState` callback to guarantee the UI is updated before moving focus. With these changes, users can select items and immediately interact with the Delete or Export buttons without having to tab through the entire table. This should make the table more accessible and efficient to use. ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] [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 - [x] [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. ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [x] Changing the focus order from navigating through the saved objects table list directly to the delete button carries a risk that users might accidentally trigger deleting a saved object by mistake. The risk is low because the delete action has to be confirmed in a pop up modal before it triggers. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> (cherry picked from commit 731e97f)
fix elastic#154431 ## Summary This PR addresses the focus order issue in the Saved Objects table. There are several ways to address this issue: | Problem | Fix | |---------|-----| | Action buttons not immediately focusable after selection | Programmatically move focus to main action button (e.g., Delete) after selection | | Tab order does not match logical order | Ensure toolbar is before table in DOM, and focus moves as expected | | Actions are not easily accessible by keyboard | Add keyboard shortcuts for actions (optional) | | Screen reader users unaware of state change | Use ARIA live region to announce selection (optional) | I’ve taken the **pragmatic** approach and updated the focus management so that when a user selects an item, focus automatically moves to the Delete button, making keyboard navigation smoother. The changes in this PR include: - Updating the `onSelectionChanged` handler to focus the `Delete` button after selection, but only if it’s enabled. - Ensuring the `deleteButtonRef` is properly passed down and forwarded to the `EuiButton`. - Using the `setState` callback to guarantee the UI is updated before moving focus. With these changes, users can select items and immediately interact with the Delete or Export buttons without having to tab through the entire table. This should make the table more accessible and efficient to use. ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] [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 - [x] [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. ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [x] Changing the focus order from navigating through the saved objects table list directly to the delete button carries a risk that users might accidentally trigger deleting a saved object by mistake. The risk is low because the delete action has to be confirmed in a pop up modal before it triggers. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> (cherry picked from commit 731e97f)
fix elastic#154431 ## Summary This PR addresses the focus order issue in the Saved Objects table. There are several ways to address this issue: | Problem | Fix | |---------|-----| | Action buttons not immediately focusable after selection | Programmatically move focus to main action button (e.g., Delete) after selection | | Tab order does not match logical order | Ensure toolbar is before table in DOM, and focus moves as expected | | Actions are not easily accessible by keyboard | Add keyboard shortcuts for actions (optional) | | Screen reader users unaware of state change | Use ARIA live region to announce selection (optional) | I’ve taken the **pragmatic** approach and updated the focus management so that when a user selects an item, focus automatically moves to the Delete button, making keyboard navigation smoother. The changes in this PR include: - Updating the `onSelectionChanged` handler to focus the `Delete` button after selection, but only if it’s enabled. - Ensuring the `deleteButtonRef` is properly passed down and forwarded to the `EuiButton`. - Using the `setState` callback to guarantee the UI is updated before moving focus. With these changes, users can select items and immediately interact with the Delete or Export buttons without having to tab through the entire table. This should make the table more accessible and efficient to use. ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] [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 - [x] [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. ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [x] Changing the focus order from navigating through the saved objects table list directly to the delete button carries a risk that users might accidentally trigger deleting a saved object by mistake. The risk is low because the delete action has to be confirmed in a pop up modal before it triggers. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> (cherry picked from commit 731e97f)
fix elastic#154431 ## Summary This PR addresses the focus order issue in the Saved Objects table. There are several ways to address this issue: | Problem | Fix | |---------|-----| | Action buttons not immediately focusable after selection | Programmatically move focus to main action button (e.g., Delete) after selection | | Tab order does not match logical order | Ensure toolbar is before table in DOM, and focus moves as expected | | Actions are not easily accessible by keyboard | Add keyboard shortcuts for actions (optional) | | Screen reader users unaware of state change | Use ARIA live region to announce selection (optional) | I’ve taken the **pragmatic** approach and updated the focus management so that when a user selects an item, focus automatically moves to the Delete button, making keyboard navigation smoother. The changes in this PR include: - Updating the `onSelectionChanged` handler to focus the `Delete` button after selection, but only if it’s enabled. - Ensuring the `deleteButtonRef` is properly passed down and forwarded to the `EuiButton`. - Using the `setState` callback to guarantee the UI is updated before moving focus. With these changes, users can select items and immediately interact with the Delete or Export buttons without having to tab through the entire table. This should make the table more accessible and efficient to use. ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] [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 - [x] [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. ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [x] Changing the focus order from navigating through the saved objects table list directly to the delete button carries a risk that users might accidentally trigger deleting a saved object by mistake. The risk is low because the delete action has to be confirmed in a pop up modal before it triggers. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> (cherry picked from commit 731e97f)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
# Backport This will backport the following commits from `main` to `8.19`: - [Fix focus order in SOM table list view (#229876)](#229876) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Christiane (Tina) Heiligers","email":"christiane.heiligers@elastic.co"},"sourceCommit":{"committedDate":"2025-07-31T11:22:54Z","message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939","branchLabelMapping":{"^v9.2.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","release_note:skip","Feature:Saved Objects Management","backport:all-open","a11y","v9.2.0"],"title":"Fix focus order in SOM table list view","number":229876,"url":"https://github.com/elastic/kibana/pull/229876","mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.2.0","branchLabelMappingKey":"^v9.2.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/229876","number":229876,"mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}}]}] BACKPORT--> Co-authored-by: Christiane (Tina) Heiligers <christiane.heiligers@elastic.co>
# Backport This will backport the following commits from `main` to `9.0`: - [Fix focus order in SOM table list view (#229876)](#229876) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Christiane (Tina) Heiligers","email":"christiane.heiligers@elastic.co"},"sourceCommit":{"committedDate":"2025-07-31T11:22:54Z","message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939","branchLabelMapping":{"^v9.2.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","release_note:skip","Feature:Saved Objects Management","backport:all-open","a11y","v9.2.0"],"title":"Fix focus order in SOM table list view","number":229876,"url":"https://github.com/elastic/kibana/pull/229876","mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.2.0","branchLabelMappingKey":"^v9.2.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/229876","number":229876,"mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}}]}] BACKPORT--> Co-authored-by: Christiane (Tina) Heiligers <christiane.heiligers@elastic.co>
# Backport This will backport the following commits from `main` to `8.17`: - [Fix focus order in SOM table list view (#229876)](#229876) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Christiane (Tina) Heiligers","email":"christiane.heiligers@elastic.co"},"sourceCommit":{"committedDate":"2025-07-31T11:22:54Z","message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939","branchLabelMapping":{"^v9.2.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","release_note:skip","Feature:Saved Objects Management","backport:all-open","a11y","v9.2.0"],"title":"Fix focus order in SOM table list view","number":229876,"url":"https://github.com/elastic/kibana/pull/229876","mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.2.0","branchLabelMappingKey":"^v9.2.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/229876","number":229876,"mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}}]}] BACKPORT--> Co-authored-by: Christiane (Tina) Heiligers <christiane.heiligers@elastic.co>
# Backport This will backport the following commits from `main` to `9.1`: - [Fix focus order in SOM table list view (#229876)](#229876) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Christiane (Tina) Heiligers","email":"christiane.heiligers@elastic.co"},"sourceCommit":{"committedDate":"2025-07-31T11:22:54Z","message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939","branchLabelMapping":{"^v9.2.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","release_note:skip","Feature:Saved Objects Management","backport:all-open","a11y","v9.2.0"],"title":"Fix focus order in SOM table list view","number":229876,"url":"https://github.com/elastic/kibana/pull/229876","mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.2.0","branchLabelMappingKey":"^v9.2.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/229876","number":229876,"mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}}]}] BACKPORT--> Co-authored-by: Christiane (Tina) Heiligers <christiane.heiligers@elastic.co>
# Backport This will backport the following commits from `main` to `8.18`: - [Fix focus order in SOM table list view (#229876)](#229876) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Christiane (Tina) Heiligers","email":"christiane.heiligers@elastic.co"},"sourceCommit":{"committedDate":"2025-07-31T11:22:54Z","message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939","branchLabelMapping":{"^v9.2.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","release_note:skip","Feature:Saved Objects Management","backport:all-open","a11y","v9.2.0"],"title":"Fix focus order in SOM table list view","number":229876,"url":"https://github.com/elastic/kibana/pull/229876","mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.2.0","branchLabelMappingKey":"^v9.2.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/229876","number":229876,"mergeCommit":{"message":"Fix focus order in SOM table list view (#229876)\n\nfix https://github.com/elastic/kibana/issues/154431\n\n## Summary\n\nThis PR addresses the focus order issue in the Saved Objects table.\nThere are several ways to address this issue:\n\n\n| Problem | Fix |\n|---------|-----|\n| Action buttons not immediately focusable after selection |\nProgrammatically move focus to main action button (e.g., Delete) after\nselection |\n| Tab order does not match logical order | Ensure toolbar is before\ntable in DOM, and focus moves as expected |\n| Actions are not easily accessible by keyboard | Add keyboard shortcuts\nfor actions (optional) |\n| Screen reader users unaware of state change | Use ARIA live region to\nannounce selection (optional) |\n\nI’ve taken the **pragmatic** approach and updated the focus management\nso that when a user selects an item, focus automatically moves to the\nDelete button, making keyboard navigation smoother.\n\nThe changes in this PR include:\n- Updating the `onSelectionChanged` handler to focus the `Delete` button\nafter selection, but only if it’s enabled.\n- Ensuring the `deleteButtonRef` is properly passed down and forwarded\nto the `EuiButton`.\n- Using the `setState` callback to guarantee the UI is updated before\nmoving focus.\n\nWith these changes, users can select items and immediately interact with\nthe Delete or Export buttons without having to tab through the entire\ntable. This should make the table more accessible and efficient to use.\n\n### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] [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- [x] [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### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [x] Changing the focus order from navigating through the saved objects\ntable list directly to the delete button carries a risk that users might\naccidentally trigger deleting a saved object by mistake. The risk is low\nbecause the delete action has to be confirmed in a pop up modal before\nit triggers.\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"731e97f7b086e047852771e884856e681126a939"}}]}] BACKPORT--> Co-authored-by: Christiane (Tina) Heiligers <christiane.heiligers@elastic.co>
fix elastic#154431 ## Summary This PR addresses the focus order issue in the Saved Objects table. There are several ways to address this issue: | Problem | Fix | |---------|-----| | Action buttons not immediately focusable after selection | Programmatically move focus to main action button (e.g., Delete) after selection | | Tab order does not match logical order | Ensure toolbar is before table in DOM, and focus moves as expected | | Actions are not easily accessible by keyboard | Add keyboard shortcuts for actions (optional) | | Screen reader users unaware of state change | Use ARIA live region to announce selection (optional) | I’ve taken the **pragmatic** approach and updated the focus management so that when a user selects an item, focus automatically moves to the Delete button, making keyboard navigation smoother. The changes in this PR include: - Updating the `onSelectionChanged` handler to focus the `Delete` button after selection, but only if it’s enabled. - Ensuring the `deleteButtonRef` is properly passed down and forwarded to the `EuiButton`. - Using the `setState` callback to guarantee the UI is updated before moving focus. With these changes, users can select items and immediately interact with the Delete or Export buttons without having to tab through the entire table. This should make the table more accessible and efficient to use. ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] [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 - [x] [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. ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [x] Changing the focus order from navigating through the saved objects table list directly to the delete button carries a risk that users might accidentally trigger deleting a saved object by mistake. The risk is low because the delete action has to be confirmed in a pop up modal before it triggers. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
fix #154431
Summary
This PR addresses the focus order issue in the Saved Objects table.
There are several ways to address this issue:
I’ve taken the pragmatic approach and updated the focus management so that when a user selects an item, focus automatically moves to the Delete button, making keyboard navigation smoother.
The changes in this PR include:
onSelectionChangedhandler to focus theDeletebutton after selection, but only if it’s enabled.deleteButtonRefis properly passed down and forwarded to theEuiButton.setStatecallback to guarantee the UI is updated before moving focus.With these changes, users can select items and immediately interact with the Delete or Export buttons without having to tab through the entire table. This should make the table more accessible and efficient to use.
Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
release_note:*label is applied per the guidelinesbackport:*labels.Identify risks
Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss.
Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging.