From bef097a70ed658813ca2b6dd3a1f95b7b4e94dc2 Mon Sep 17 00:00:00 2001 From: danielhanchen Date: Tue, 19 May 2026 14:36:22 +0000 Subject: [PATCH] studio/frontend: drop redundant aria-label on sidebar thread button Gemini review on #5618 noted that the inner span uses CSS truncate (overflow-hidden + text-overflow:ellipsis), which clips the text visually but keeps the full content in the DOM and the accessibility tree. The full title is already the button's accessible name via that span's text content; the explicit aria-label is redundant. Keep the title attribute -- it's still the only way sighted hover users see the full title past the visual clip. --- studio/frontend/src/components/app-sidebar.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/studio/frontend/src/components/app-sidebar.tsx b/studio/frontend/src/components/app-sidebar.tsx index ebb06f4fcb..93c5ea8eb0 100644 --- a/studio/frontend/src/components/app-sidebar.tsx +++ b/studio/frontend/src/components/app-sidebar.tsx @@ -533,11 +533,12 @@ export function AppSidebar() { data-thread-type={item.type} data-thread-id={item.id} isActive={activeThreadId === item.id} - // Expose full title via native tooltip + aria-label so - // long thread titles aren't lost to CSS truncation - // (the inner span uses `truncate` with no title attr). + // Expose full title via the native browser tooltip so + // sighted users can read titles that the inner span's + // `truncate` clips. The truncated span still carries + // the full text content, so screen readers already + // announce the full title without an explicit aria-label. title={item.title} - aria-label={item.title} className="sidebar-nav-btn h-[32px] rounded-[10px] pl-2.5 pr-2.5 group-hover/recent-item:pr-10 group-has-[.sidebar-row-action[data-state=open]]/recent-item:pr-10 text-[14.5px] leading-[19px] tracking-nav font-medium" onClick={() => { navigate({