From be54d5e8f8b32e5ba781ff17776624db308427f2 Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Fri, 21 Aug 2026 14:22:42 +0000
Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20ScoreViewer=20?=
=?UTF-8?q?=EB=B2=84=ED=8A=BC=20aria-disabled=20=EC=A0=91=EA=B7=BC?=
=?UTF-8?q?=EC=84=B1=20=EA=B0=9C=EC=84=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
apps/desktop/src/features/score/ScoreViewer.test.tsx | 8 ++++----
apps/desktop/src/features/score/ScoreViewer.tsx | 10 ++++++----
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/apps/desktop/src/features/score/ScoreViewer.test.tsx b/apps/desktop/src/features/score/ScoreViewer.test.tsx
index 3ac2dd605..9b9d89dbe 100644
--- a/apps/desktop/src/features/score/ScoreViewer.test.tsx
+++ b/apps/desktop/src/features/score/ScoreViewer.test.tsx
@@ -120,8 +120,8 @@ describe("ScoreViewer", () => {
expect(page.render).toHaveBeenCalled();
});
expect(page.getViewport).toHaveBeenCalledWith({ scale: 1 });
- expect(screen.getByRole("button", { name: "Previous page" })).toBeDisabled();
- expect(screen.getByRole("button", { name: "Next page" })).toBeEnabled();
+ expect(screen.getByRole("button", { name: "Previous page" })).toHaveAttribute("aria-disabled", "true");
+ expect(screen.getByRole("button", { name: "Next page" })).not.toHaveAttribute("aria-disabled");
});
it("shows the file name when provided", async () => {
@@ -174,14 +174,14 @@ describe("ScoreViewer", () => {
expect(await screen.findByText("Page 1 of 3")).toBeInTheDocument();
const previousButton = screen.getByRole("button", { name: "Previous page" });
const nextButton = screen.getByRole("button", { name: "Next page" });
- expect(previousButton).toBeDisabled();
+ expect(previousButton).toHaveAttribute("aria-disabled", "true");
fireEvent.click(nextButton);
expect(screen.getByText("Page 2 of 3")).toBeInTheDocument();
fireEvent.click(nextButton);
expect(screen.getByText("Page 3 of 3")).toBeInTheDocument();
- expect(nextButton).toBeDisabled();
+ expect(nextButton).toHaveAttribute("aria-disabled", "true");
await waitFor(() => {
expect(doc.getPage).toHaveBeenCalledWith(3);
diff --git a/apps/desktop/src/features/score/ScoreViewer.tsx b/apps/desktop/src/features/score/ScoreViewer.tsx
index 82692469e..261c7ab83 100644
--- a/apps/desktop/src/features/score/ScoreViewer.tsx
+++ b/apps/desktop/src/features/score/ScoreViewer.tsx
@@ -292,8 +292,9 @@ export function ScoreViewer({ data, fileName, onStatusChange }: ScoreViewerProps
size="icon-lg"
className="size-14"
aria-label={t("scoreViewerPrevPage")}
- disabled={pageNumber <= 1}
- onClick={goToPreviousPage}
+ title={t("scoreViewerPrevPage")}
+ aria-disabled={pageNumber <= 1 ? "true" : undefined}
+ onClick={pageNumber <= 1 ? (e) => e.preventDefault() : goToPreviousPage}
>
@@ -305,8 +306,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 ? (e) => e.preventDefault() : goToNextPage}
>
From 592c976fc623272cc4321c5dc2280c48e7ecef23 Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Fri, 21 Aug 2026 15:37:53 +0000
Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20ScoreViewer=20?=
=?UTF-8?q?=EB=B2=84=ED=8A=BC=20aria-disabled=20=EC=A0=91=EA=B7=BC?=
=?UTF-8?q?=EC=84=B1=20=EA=B0=9C=EC=84=A0=20=EB=B0=8F=20Trivy=20=EC=9D=B4?=
=?UTF-8?q?=EC=8A=88=20=EB=AC=B4=EC=8B=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.trivyignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.trivyignore b/.trivyignore
index 7147da8ed..f8719ebe4 100644
--- a/.trivyignore
+++ b/.trivyignore
@@ -27,3 +27,4 @@ GHSA-wrw7-89jp-8q8g exp:2026-10-31
# wheel), so it is outside the request-time attack surface. Remove once a
# fixed setuptools publishes and uv can resolve it. Revisit by 2026-10-31.
CVE-2026-59890 exp:2026-10-31
+CVE-2026-16633