From a08b64eaed45e9a22e6d1d271d17f44b56c259ef Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Sat, 7 Feb 2026 13:38:16 -0600 Subject: [PATCH 1/2] Remove tabindex on media library tabpanels Reduces verbosity for screen readers which attempt to read the full content of the panel; reduces keypress distance to controls by one. --- src/js/media/views/media-frame.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/js/media/views/media-frame.js b/src/js/media/views/media-frame.js index aca0bf5ef8333..d1a0e449330d5 100644 --- a/src/js/media/views/media-frame.js +++ b/src/js/media/views/media-frame.js @@ -101,7 +101,7 @@ MediaFrame = Frame.extend(/** @lends wp.media.view.MediaFrame.prototype */{ tabPanelEl = this.$el.find( '.media-frame-tab-panel' ), ariaLabelledby; - tabPanelEl.removeAttr( 'role aria-labelledby tabindex' ); + tabPanelEl.removeAttr( 'role aria-labelledby' ); if ( this.state().get( 'menu' ) && this.menuView && this.menuView.isVisible ) { ariaLabelledby = 'menu-item-' + stateId; @@ -110,8 +110,7 @@ MediaFrame = Frame.extend(/** @lends wp.media.view.MediaFrame.prototype */{ tabPanelEl .attr( { role: 'tabpanel', - 'aria-labelledby': ariaLabelledby, - tabIndex: '0' + 'aria-labelledby': ariaLabelledby } ); } }, @@ -127,7 +126,7 @@ MediaFrame = Frame.extend(/** @lends wp.media.view.MediaFrame.prototype */{ var tabPanelEl = this.$el.find( '.media-frame-content' ), ariaLabelledby; - tabPanelEl.removeAttr( 'role aria-labelledby tabindex' ); + tabPanelEl.removeAttr( 'role aria-labelledby' ); // Set the tab panel attributes only if the tabs are visible. if ( this.state().get( 'router' ) && this.routerView && this.routerView.isVisible && this.content._mode ) { @@ -137,7 +136,6 @@ MediaFrame = Frame.extend(/** @lends wp.media.view.MediaFrame.prototype */{ .attr( { role: 'tabpanel', 'aria-labelledby': ariaLabelledby, - tabIndex: '0' } ); } }, From 8b83524fe0016d5a89bb553e33660b0da5ca01bf Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Sun, 8 Feb 2026 12:07:00 -0600 Subject: [PATCH 2/2] Update src/js/media/views/media-frame.js Co-authored-by: Weston Ruter --- src/js/media/views/media-frame.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/media/views/media-frame.js b/src/js/media/views/media-frame.js index d1a0e449330d5..1140bf2795ff4 100644 --- a/src/js/media/views/media-frame.js +++ b/src/js/media/views/media-frame.js @@ -110,7 +110,7 @@ MediaFrame = Frame.extend(/** @lends wp.media.view.MediaFrame.prototype */{ tabPanelEl .attr( { role: 'tabpanel', - 'aria-labelledby': ariaLabelledby + 'aria-labelledby': ariaLabelledby, } ); } },