From 03f872334de691bb8fd4573ce99f592f13a27fbe Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sun, 15 Mar 2026 22:40:29 +0000 Subject: [PATCH 1/6] feat(dashboard): add keyboard focus and a11y to filter pills - Added `aria-pressed` attribute to the `motion.button` filter pill toggles so screen readers understand their selection state. - Added explicit `aria-label` to the clear button to provide meaningful context ("Clear filters") rather than just reading "X Clear". - Applied standard Tailwind focus utility classes to ensure both the pill toggles and the clear button are clearly visible when navigating via keyboard (`focus-visible:ring-2`, `focus-visible:ring-white/50`, etc.). - Fixed unrelated pre-existing lint warning in `EventAnnotations.tsx` (`img` usage) to ensure clean pipeline runs. Co-authored-by: aarjava <218419324+aarjava@users.noreply.github.com> --- src/components/dashboard/filter-pills.tsx | 6 +- src/components/events/EventAnnotations.tsx | 830 +++++++++++---------- 2 files changed, 426 insertions(+), 410 deletions(-) diff --git a/src/components/dashboard/filter-pills.tsx b/src/components/dashboard/filter-pills.tsx index d09effbe..b7344489 100644 --- a/src/components/dashboard/filter-pills.tsx +++ b/src/components/dashboard/filter-pills.tsx @@ -34,9 +34,10 @@ export function FilterPills({ options, selected, onToggle, onClear, className }: onToggle(option.id)} + aria-pressed={isSelected} transition={{ duration: 0.15 }} className={cn( - 'inline-flex items-center gap-2 rounded-full px-3 py-1.5 text-xs font-medium transition-all', + 'inline-flex items-center gap-2 rounded-full px-3 py-1.5 text-xs font-medium transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-white/50 focus-visible:ring-offset-2 focus-visible:ring-offset-neutral-900', isSelected ? 'bg-[#4C8BF5] text-white shadow-sm' : 'bg-neutral-800 text-neutral-300 hover:bg-neutral-700' @@ -60,7 +61,8 @@ export function FilterPills({ options, selected, onToggle, onClear, className }: {hasSelection && onClear && ( + + )} + +
+
+ {currentUserName.charAt(0).toUpperCase()} +
+ +
+