From 693935588ef5b43022ff346eddf622cc4d66a68f Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Thu, 16 Jul 2026 13:59:58 +0000 Subject: [PATCH 1/2] =?UTF-8?q?feat(ui):=20=EC=8A=A4=EC=BD=94=EC=96=B4=20?= =?UTF-8?q?=EB=B7=B0=EC=96=B4=20=EC=95=84=EC=9D=B4=EC=BD=98=20=EB=B2=84?= =?UTF-8?q?=ED=8A=BC=20=ED=88=B4=ED=8C=81=20=EC=B6=94=EA=B0=80=20=EB=B0=8F?= =?UTF-8?q?=20=EC=A0=91=EA=B7=BC=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/ScoreView.tsx | 1 + .../src/features/score/ScoreViewer.test.tsx | 8 ++++---- apps/desktop/src/features/score/ScoreViewer.tsx | 14 ++++++++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/apps/desktop/src/features/score/ScoreView.tsx b/apps/desktop/src/features/score/ScoreView.tsx index 72732450..729f6056 100644 --- a/apps/desktop/src/features/score/ScoreView.tsx +++ b/apps/desktop/src/features/score/ScoreView.tsx @@ -197,6 +197,7 @@ export function ScoreView({ song, projectId, onSongUpdate }: ScoreViewProps) { size="icon" onClick={projectId ? () => void handleRemove(projectId, attachment) : undefined} disabled={!projectId} + title={`${t("scoreRemove")}: ${attachment.fileName}`} aria-label={`${t("scoreRemove")}: ${attachment.fileName}`} className="size-10 border-rose-300/25 text-rose-200 hover:bg-rose-400/10" > diff --git a/apps/desktop/src/features/score/ScoreViewer.test.tsx b/apps/desktop/src/features/score/ScoreViewer.test.tsx index 3ac2dd60..acd19f65 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" })).toHaveAttribute("aria-disabled", "false"); }); 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 82692469..abd518f2 100644 --- a/apps/desktop/src/features/score/ScoreViewer.tsx +++ b/apps/desktop/src/features/score/ScoreViewer.tsx @@ -257,6 +257,7 @@ export function ScoreViewer({ data, fileName, onStatusChange }: ScoreViewerProps variant="outline" size="icon-lg" className="size-12" + title={t("scoreViewerZoomOut")} aria-label={t("scoreViewerZoomOut")} onClick={zoomOut} > @@ -266,6 +267,7 @@ export function ScoreViewer({ data, fileName, onStatusChange }: ScoreViewerProps variant="outline" size="icon-lg" className="size-12" + title={t("scoreViewerZoomIn")} aria-label={t("scoreViewerZoomIn")} onClick={zoomIn} > @@ -291,9 +293,11 @@ export function ScoreViewer({ data, fileName, onStatusChange }: ScoreViewerProps variant="outline" size="icon-lg" className="size-14" + title={t("scoreViewerPrevPage")} aria-label={t("scoreViewerPrevPage")} - disabled={pageNumber <= 1} - onClick={goToPreviousPage} + aria-disabled={pageNumber <= 1} + tabIndex={0} + onClick={pageNumber <= 1 ? undefined : goToPreviousPage} >