From e6368dedf6550f52840c6b8fe15289825461f6e5 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Thu, 18 Jun 2026 11:33:28 +0000 Subject: [PATCH 1/3] feat: add keyboard navigation to section roadmap scroll area --- .Jules/palette.md | 3 +++ apps/desktop/src/features/workspace/SectionRoadmap.tsx | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.Jules/palette.md b/.Jules/palette.md index bb0f82a6..556b245c 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -9,3 +9,6 @@ ## 2026-06-13 - Added screen reader text for tooltip divs **Learning:** When using `title` attributes on non-interactive elements like icon-only `div`s for tooltips, screen readers might not announce them properly because they aren't focusable. The visual tooltip is not enough for accessibility. **Action:** Always add a visually hidden `[Tooltip Text]` inside non-interactive elements that rely on a `title` attribute so that screen readers have text content to announce. +## 2026-06-18 - Added keyboard accessibility to scrollable regions +**Learning:** Horizontally scrollable regions (like the `SectionRoadmap` component) are not accessible to keyboard-only users unless they can receive focus. Keyboard users must be able to focus the container to scroll its content using arrow keys. +**Action:** For proper keyboard accessibility in custom scrollable regions, always include `tabIndex={0}`, an appropriate `aria-label`, `role="region"`, and explicit focus visible styling (e.g., `focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cyan-300`). diff --git a/apps/desktop/src/features/workspace/SectionRoadmap.tsx b/apps/desktop/src/features/workspace/SectionRoadmap.tsx index 593311c6..0d7957e3 100644 --- a/apps/desktop/src/features/workspace/SectionRoadmap.tsx +++ b/apps/desktop/src/features/workspace/SectionRoadmap.tsx @@ -77,7 +77,12 @@ export function SectionRoadmap({ song, activeRole, onSongUpdate }: SectionRoadma {t("sectionRoadmapScrollHint")} -