From ec11c9dc76516d265120e7016784364caca33da0 Mon Sep 17 00:00:00 2001 From: Anders Olsson Date: Wed, 10 Jun 2026 13:29:27 +0200 Subject: [PATCH] fix(web): focus-visible rings on remaining controls + live search count (#69) Keyboard focus was invisible on the objects-table sort headers and page-size select, breadcrumb links, the external-URI link, and the combobox input/clear/trigger. Apply the shared focusRing helper in app code and the kit's inline focus-visible classes (matching input.tsx) in ui/combobox. Make the search result count a role="status" live region so screen readers announce updated counts while typing; the existing search test now asserts the count through getByRole("status"). Closes #69 Co-Authored-By: Claude Opus 4.8 --- web/src/components/external-uri-link.tsx | 4 +++- web/src/components/ui/combobox.tsx | 12 +++++++++--- web/src/objects/objects-table.tsx | 4 ++-- web/src/search/search-panel.tsx | 2 +- web/src/search/search.test.tsx | 3 ++- web/src/shell/breadcrumb.tsx | 6 +++++- 6 files changed, 22 insertions(+), 9 deletions(-) diff --git a/web/src/components/external-uri-link.tsx b/web/src/components/external-uri-link.tsx index 3d9799a..276f0fd 100644 --- a/web/src/components/external-uri-link.tsx +++ b/web/src/components/external-uri-link.tsx @@ -1,10 +1,12 @@ +import { focusRing } from "../lib/focus-ring"; + export function ExternalUriLink({ uri }: { uri: string }) { return ( {uri} diff --git a/web/src/components/ui/combobox.tsx b/web/src/components/ui/combobox.tsx index 9a72ca5..1f677ec 100644 --- a/web/src/components/ui/combobox.tsx +++ b/web/src/components/ui/combobox.tsx @@ -20,7 +20,10 @@ function ComboboxInput({ className, ...props }: ComboboxPrimitive.Input.Props) { return ( ); @@ -31,7 +34,7 @@ function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) { ); diff --git a/web/src/objects/objects-table.tsx b/web/src/objects/objects-table.tsx index 756a8bf..2b90bcb 100644 --- a/web/src/objects/objects-table.tsx +++ b/web/src/objects/objects-table.tsx @@ -131,7 +131,7 @@ export function ObjectsTable() {