-
Notifications
You must be signed in to change notification settings - Fork 0
π¨ Palette: μ 보 λ·°μ΄μ μμ΄μ½ μ μ© λ²νΌμ ν΄ν μΆκ° #851
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
seonghobae
wants to merge
1
commit into
develop
from
feat/a11y-icon-buttons-tooltips-5047929354052485043
Closed
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,6 @@ | ||
| ## 2024-05-19 - Replace HTML disabled with aria-disabled="true" for Accessible Tooltips | ||
| **Learning:** Native HTML `disabled` attributes completely hide elements from screen readers and block all pointer/hover events, preventing tooltips from functioning for disabled elements. | ||
| **Action:** Replace `disabled` with `aria-disabled="true"`, enforce block click handlers via `e.preventDefault()`, and add a title tooltip directly to the element to maintain full tooltip accessibility and keyboard focus support for visually impaired and mouse users. | ||
| ## 2024-08-14 - Accessible Tooltips for Icon-only Buttons | ||
| **Learning:** Icon-only buttons using only `aria-label` are accessible to screen readers, but sighted mouse users miss out on crucial context because no native tooltip is shown. | ||
| **Action:** Always add a `title` attribute matching the `aria-label` to icon-only buttons (like Zoom In/Out, Pagination, or Remove actions) to provide a native browser tooltip for mouse users. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
π― Functional Correctness | π‘ Minor | β‘ Quick win
π§© Analysis chain
π Script executed:
Repository: ContextualWisdomLab/bandscope
Length of output: 19964
π Script executed:
Repository: ContextualWisdomLab/bandscope
Length of output: 40524
π Script executed:
Repository: ContextualWisdomLab/bandscope
Length of output: 10429
π Web query:
Base UI React Button disabled native button tooltip disabled element documentationπ‘ Result:
In Base UI, the interaction between a
Tooltipand a disabled element is governed by native browser behavior, where disabled elements do not fire mouse events (such asmouseenterormouseover) [1]. Consequently, aTooltipwill often fail to trigger on hover when it is wrapped around a natively disabled button [1][2]. Key considerations and workarounds include: Native Limitation: When you use thedisabledprop on a native button, the browser prevents the element from receiving pointer events [1]. Since Base UI'sTooltiprelies on these events to trigger the popup, the tooltip will not appear [1]. Workaround: Pseudo-disabled state: To show a tooltip on a button that appears disabled, a common practice is to avoid the nativedisabledattribute on the trigger element [1]. Instead, you can usearia-disabled="true"to signal the disabled state to screen readers while keeping the element interactive (so it can still fire events like hover and focus) [1]. You must then manually handle the disabled logic in youronClickor other event handlers to prevent action when the button is "pseudo-disabled" [1]. TooltipdisabledProp: Note that thedisabledprop available on theTooltipcomponent itself (e.g.,<Tooltip.Root disabled>) is intended to disable the tooltip functionality entirely, not to manage the disabled state of the trigger element [3]. Focus Behavior: Base UI has made updates to ensure thatTooltip.Triggercomponents that are explicitly marked as disabled (using thedata-trigger-disabledattribute internally) do not open tooltips when focused, maintaining consistent behavior across different interaction types [4][5]. For robust, accessible design, if you need to provide information about why a button is disabled, the Base UI documentation suggests that an "infotip" patternβusing aPopoveror a separate icon adjacent to the buttonβis often superior to relying on tooltips for disabled elements, as it ensures all users (including touch users) can access the information [1].Citations:
disabledprop on TriggersΒ mui/base-ui#4049λΉνμ± μμ΄μ½ λ²νΌμ tooltip λμμ 보μ₯νμΈμ.
Buttonμ nativedisabledλ²νΌμ λ λλ§ν©λλ€. λ°λΌμ λΉνμ± μνμμλtitletooltipμ΄ νμλμ§ μμ μ μμ΅λλ€. λ€μ μΈ λ²νΌμ wrapper tooltipμ μ¬μ©νκ±°λ,aria-disabled="true"μ click guardλ₯Ό μ μ©νμΈμ.ScoreView.tsx:201ScoreViewer.tsx:297ScoreViewer.tsx:311π Affects 2 files
apps/desktop/src/features/score/ScoreView.tsx#L201-L201(this comment)apps/desktop/src/features/score/ScoreViewer.tsx#L297-L297apps/desktop/src/features/score/ScoreViewer.tsx#L311-L311π€ Prompt for AI Agents