From 410182df90353587534a8bf7215ac7050ffa8205 Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Tue, 11 Feb 2025 16:39:28 +0100 Subject: [PATCH] Improve list view focus management first pass. --- .../list-view/block-select-button.js | 2 ++ .../src/components/list-view-sidebar/index.js | 21 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/block-editor/src/components/list-view/block-select-button.js b/packages/block-editor/src/components/list-view/block-select-button.js index 3afbf3f5b5bc1..1775798852d5e 100644 --- a/packages/block-editor/src/components/list-view/block-select-button.js +++ b/packages/block-editor/src/components/list-view/block-select-button.js @@ -44,6 +44,7 @@ function ListViewBlockSelectButton( draggable, isExpanded, ariaDescribedBy, + isSelected, }, ref ) { @@ -102,6 +103,7 @@ function ListViewBlockSelectButton( href={ `#block-${ clientId }` } aria-describedby={ ariaDescribedBy } aria-expanded={ isExpanded } + data-is-selected={ isSelected ? true : undefined } > + item.hasAttribute( 'data-is-selected' ) + )[ 0 ]; const listViewFocusArea = sidebarRef.current.contains( - listViewApplicationFocus + listViewSelectedItem ) - ? listViewApplicationFocus + ? listViewSelectedItem : tabPanelFocus; + listViewFocusArea.focus(); // Outline tab is selected. } else { @@ -147,7 +152,7 @@ export default function ListViewSidebar() { onClose={ closeListView } onSelect={ ( tabName ) => setTab( tabName ) } defaultTabId="list-view" - ref={ tabsRef } + ref={ tabsPanelRef } closeButtonLabel={ __( 'Close' ) } />