๐จ Palette: [UX improvement] ์ค์ฝ์ด ๋ทฐ์ด ๋ฒํผ ์ ๊ทผ์ฑ ๋ฐ ํดํ ๊ฐ์ #690
๐จ Palette: [UX improvement] ์ค์ฝ์ด ๋ทฐ์ด ๋ฒํผ ์ ๊ทผ์ฑ ๋ฐ ํดํ ๊ฐ์ #690seonghobae wants to merge 4 commits into
Conversation
|
๐ Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a ๐ emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
There was a problem hiding this comment.
Pull request overview
This PR improves ScoreView/ScoreViewer button accessibility and discoverability by adding native tooltips (title) to icon-only controls and using aria-disabled (instead of native disabled) in ScoreView to keep assistive-tech focus and allow hover tooltips for disabled states.
Changes:
- Added
titletooltips to ScoreViewer zoom/fit/page navigation icon buttons. - Switched the ScoreView โopen scoreโ native button from
disabledtoaria-disabledand added a disabled-reason tooltip. - Updated ScoreView tests to assert
aria-disabledinstead of native disabled for the โopen scoreโ button.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| apps/desktop/src/features/score/ScoreViewer.tsx | Adds title tooltips to icon-only controls (zoom/fit/page navigation). |
| apps/desktop/src/features/score/ScoreView.tsx | Uses aria-disabled + tooltip for โopen scoreโ when no project is active; adds tooltip to remove action. |
| apps/desktop/src/features/score/ScoreView.test.tsx | Updates assertions to match the new aria-disabled behavior. |
๐ก Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| aria-label={t("scoreViewerPrevPage")} | ||
| title={t("scoreViewerPrevPage")} | ||
| disabled={pageNumber <= 1} | ||
| onClick={goToPreviousPage} | ||
| > |
| aria-label={t("scoreViewerNextPage")} | ||
| title={t("scoreViewerNextPage")} | ||
| disabled={pageNumber >= pageCount} | ||
| onClick={goToNextPage} | ||
| > |
| onClick={projectId ? () => void handleRemove(projectId, attachment) : undefined} | ||
| disabled={!projectId} | ||
| aria-label={`${t("scoreRemove")}: ${attachment.fileName}`} | ||
| title={`${t("scoreRemove")}: ${attachment.fileName}`} | ||
| className="size-10 border-rose-300/25 text-rose-200 hover:bg-rose-400/10" |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 6 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (3)
apps/desktop/src/features/score/ScoreViewer.tsx:300
disabledon a native<button>prevents thetitletooltip from showing (and removes the control from focus), which undermines the tooltip improvement for the prev/next icon buttons when they are disabled. Consider switching toaria-disabledand removing the click handler when disabled (similar to ScoreViewโs pattern).
disabled={pageNumber <= 1}
onClick={goToPreviousPage}
apps/desktop/src/features/score/ScoreViewer.tsx:314
- Same issue as the previous-page control: when
disabledis set, browsers wonโt show thetitletooltip. Usingaria-disabledplus a conditionalonClickkeeps the tooltip behavior consistent.
disabled={pageNumber >= pageCount}
onClick={goToNextPage}
apps/desktop/src/features/score/ScoreView.tsx:203
- The remove (trash) icon button now has a
title, but itโs still rendered withdisabled={!projectId}. Disabled buttons generally donโt show nativetitletooltips because pointer events are blocked, so the tooltip wonโt appear in the exact state where the button is disabled. If you want a tooltip even while disabled, move thetitleto a non-disabled wrapper element.
onClick={projectId ? () => void handleRemove(projectId, attachment) : undefined}
disabled={!projectId}
aria-label={`${t("scoreRemove")}: ${attachment.fileName}`}
title={`${t("scoreRemove")}: ${attachment.fileName}`}
className="size-10 border-rose-300/25 text-rose-200 hover:bg-rose-400/10"
| "librosa>=0.11.0", | ||
| "numba<0.67.0", | ||
| "numpy>=1.26", | ||
| "setuptools>=83.0.0", |
๐ก What:
disabled์์ฑ์aria-disabled="true"๋ก ๋ณ๊ฒฝํ๊ณ ์ค๋ชtitleํดํ ์ถ๊ฐtitle์์ฑ์ ์ถ๊ฐํ์ฌ ๋ง์ฐ์ค ์ฌ์ฉ์์ฉ ํดํ ์ ๊ณต๐ฏ Why:
disabled์์ฑ์ ์คํฌ๋ฆฐ ๋ฆฌ๋ ํฌ์ปค์ค์ ๋ง์ฐ์ค ์ด๋ฒคํธ๋ฅผ ์ฐจ๋จํ์ฌ ํดํ(๋นํ์ฑํ ์ฌ์ )์ ์ฝ๊ฑฐ๋ ๋ณผ ์ ์๊ฒ ๋ง๋ฆ๐ธ Before/After:
(N/A - ํดํ ํ์ ๋ฐ ์คํฌ๋ฆฐ ๋ฆฌ๋ ํฌ์ปค์ค ๊ฐ์ )
โฟ Accessibility:
aria-disabled)title)์ ์ถ๊ฐํ์ฌ ์ ๊ทผ์ฑ ํฅ์PR created automatically by Jules for task 6711654907972493799 started by @seonghobae