From 43cc678522e4c05f78fd62e2c7554dc321d1ca3d Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Fri, 28 Aug 2026 04:25:26 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20Add=20visual=20toolti?= =?UTF-8?q?ps=20and=20accessible=20disabled=20states=20to=20ScoreViewer=20?= =?UTF-8?q?buttons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .Jules/palette.md | 46 ++++--------------- .jules/palette.md | 3 -- .../src/features/score/ScoreView.test.tsx | 25 +++++++--- apps/desktop/src/features/score/ScoreView.tsx | 35 +++++++++++--- .../src/features/score/ScoreViewer.test.tsx | 14 ++++-- .../src/features/score/ScoreViewer.tsx | 24 ++++++++-- 6 files changed, 86 insertions(+), 61 deletions(-) delete mode 100644 .jules/palette.md diff --git a/.Jules/palette.md b/.Jules/palette.md index 5c1c16989..324f35d11 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -1,39 +1,11 @@ -## 2024-05-18 - Added focus visible styles for keyboard navigation -**Learning:** Interactive inline buttons (like the chord editor) and scrollable regions with `tabIndex={0}` do not automatically get focus visible styles, meaning keyboard users tabbing through won't know they are focused on them. Unlike central ` @@ -305,8 +314,15 @@ export function ScoreViewer({ data, fileName, onStatusChange }: ScoreViewerProps size="icon-lg" className="size-14" aria-label={t("scoreViewerNextPage")} - disabled={pageNumber >= pageCount} - onClick={goToNextPage} + title={t("scoreViewerNextPage")} + aria-disabled={pageNumber >= pageCount ? "true" : undefined} + onClick={(e) => { + if (pageNumber >= pageCount) { + e.preventDefault(); + return; + } + goToNextPage(); + }} >