From 5915e0ff748c2ab6c046a08ac693e605dfec47bf Mon Sep 17 00:00:00 2001 From: mrleemurray Date: Mon, 30 Mar 2026 10:48:40 +0100 Subject: [PATCH] feat: enhance sidebar toggle accessibility with aria attributes for unread session count Co-authored-by: Copilot --- .../sessions/browser/sessionsTitleBarWidget.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts b/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts index 5b157cf3a40..5e0de629eea 100644 --- a/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts +++ b/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts @@ -304,6 +304,7 @@ class SidebarToggleActionViewItem extends ActionViewItem { // Add badge element for unread session count this._countBadge = append(container, $('span.sidebar-toggle-badge')); + this._countBadge.setAttribute('aria-hidden', 'true'); this._updateBadge(); // Single autorun that tracks all badge-relevant state: @@ -342,6 +343,16 @@ class SidebarToggleActionViewItem extends ActionViewItem { } else { this._countBadge.style.display = 'none'; } + + // Update accessible label to include unread count for screen readers + if (this.label) { + const baseLabel = this.action.label || localize('toggleSidebarA11y', "Toggle Primary Side Bar"); + if (unreadCount > 0 && !sidebarVisible) { + this.label.setAttribute('aria-label', localize('toggleSidebarUnread', "{0}, {1} unread session(s)", baseLabel, unreadCount)); + } else { + this.label.setAttribute('aria-label', baseLabel); + } + } } private _countUnreadSessions(): number {