🔗 fix: Shared Links Accessibility Improvements (#10850)

* fix: reintroduce TooltipAnchor for shared link buttons and improve translation key accessibility

* chore: remove unused translation key
This commit is contained in:
Dustin Healy 2025-12-10 15:28:35 -08:00 committed by Danny Avila
parent 27edfc8710
commit 70e854eb59
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
2 changed files with 39 additions and 25 deletions

View file

@ -21,6 +21,7 @@ import {
useMediaQuery,
OGDialogHeader,
OGDialogTitle,
TooltipAnchor,
DataTable,
Spinner,
Button,
@ -259,30 +260,42 @@ export default function SharedLinks() {
},
cell: ({ row }) => (
<div className="flex items-center gap-2">
<a
href={`/c/${row.original.conversationId}`}
target="_blank"
rel="noopener noreferrer"
className="flex h-8 w-8 items-center justify-center rounded-md p-0 transition-colors hover:bg-surface-hover focus:outline-none focus:ring-2 focus:ring-ring"
aria-label={`${localize('com_ui_view_source')} - ${row.original.title || localize('com_ui_untitled')}`}
>
<MessageSquare className="size-4" aria-hidden="true" />
</a>
<Button
variant="ghost"
className="h-8 w-8 p-0 hover:bg-surface-hover"
onClick={() => {
setDeleteRow(row.original);
setIsDeleteOpen(true);
}}
aria-label={localize('com_ui_delete_shared_link', {
title: row.original.title || localize('com_ui_untitled'),
})}
aria-haspopup="dialog"
aria-controls="delete-shared-link-dialog"
>
<TrashIcon className="size-4" aria-hidden="true" />
</Button>
<TooltipAnchor
description={localize('com_ui_open_source_chat_new_tab')}
render={
<a
href={`/c/${row.original.conversationId}`}
target="_blank"
rel="noopener noreferrer"
className="flex h-8 w-8 items-center justify-center rounded-md p-0 transition-colors hover:bg-surface-hover focus:outline-none focus:ring-2 focus:ring-ring"
aria-label={localize('com_ui_open_source_chat_new_tab_title', {
title: row.original.title || localize('com_ui_untitled'),
})}
>
<MessageSquare className="size-4" aria-hidden="true" />
</a>
}
/>
<TooltipAnchor
description={localize('com_ui_delete_shared_link_heading')}
render={
<Button
variant="ghost"
className="h-8 w-8 p-0 hover:bg-surface-hover"
onClick={() => {
setDeleteRow(row.original);
setIsDeleteOpen(true);
}}
aria-label={localize('com_ui_delete_shared_link', {
title: row.original.title || localize('com_ui_untitled'),
})}
aria-haspopup="dialog"
aria-controls="delete-shared-link-dialog"
>
<TrashIcon className="size-4" aria-hidden="true" />
</Button>
}
/>
</div>
),
},

View file

@ -1359,7 +1359,8 @@
"com_ui_version_var": "Version {{0}}",
"com_ui_versions": "Versions",
"com_ui_view_memory": "View Memory",
"com_ui_view_source": "View source chat - {{title}}",
"com_ui_open_source_chat_new_tab_title": "Open Source Chat in New Tab - {{title}}",
"com_ui_open_source_chat_new_tab": "Open Source Chat in New Tab",
"com_ui_web_search": "Web Search",
"com_ui_web_search_cohere_key": "Enter Cohere API Key",
"com_ui_web_search_firecrawl_url": "Firecrawl API URL (optional)",