From 31f0bcd7f12dd119d636052d6968f07d48cabf45 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Mon, 20 Jul 2026 14:30:28 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=95=85=EB=B3=B4=20=EB=B7=B0=EC=96=B4?= =?UTF-8?q?=EC=9D=98=20=EC=95=84=EC=9D=B4=EC=BD=98=20=EB=B2=84=ED=8A=BC?= =?UTF-8?q?=EC=97=90=20=ED=88=B4=ED=8C=81=20=EC=B6=94=EA=B0=80=20=EB=B0=8F?= =?UTF-8?q?=20=EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94=20=EC=83=81=ED=83=9C=20?= =?UTF-8?q?=EC=86=8D=EC=84=B1=EC=9D=84=20=EC=A0=91=EA=B7=BC=EC=84=B1?= =?UTF-8?q?=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .Jules/palette.md | 4 ++++ apps/desktop/src/features/score/ScoreView.test.tsx | 6 +++--- apps/desktop/src/features/score/ScoreView.tsx | 13 ++++++++----- .../desktop/src/features/score/ScoreViewer.test.tsx | 8 ++++---- apps/desktop/src/features/score/ScoreViewer.tsx | 13 +++++++++---- 5 files changed, 28 insertions(+), 16 deletions(-) diff --git a/.Jules/palette.md b/.Jules/palette.md index 5c1c1698..033000b7 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -37,3 +37,7 @@ ## 2026-07-02 - Inline clear buttons preserve focus **Learning:** Inline clear buttons often unmount immediately after clearing state, which can drop keyboard focus to the document body. **Action:** Move focus back to the owning input before clearing state, and cover the behavior with a DOM focus test. + +## 2026-07-20 - Adding aria-disabled styles to UI primitive buttons +**Learning:** While replacing the native `disabled` attribute with `aria-disabled="true"` correctly enables pointer events for tooltips and preserves keyboard tab order, custom primitive components (like ` @@ -305,8 +309,9 @@ 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={pageNumber >= pageCount ? undefined : goToNextPage} >