Skip to content

🎨 Palette: [UX improvement] Add accessible radio group semantics & keyboard nav to Sampler Voice Panel Root Notes#413

Merged
ford442 merged 1 commit intomainfrom
palette-sampler-voice-panel-a11y-12264927643058519248
Mar 30, 2026
Merged

🎨 Palette: [UX improvement] Add accessible radio group semantics & keyboard nav to Sampler Voice Panel Root Notes#413
ford442 merged 1 commit intomainfrom
palette-sampler-voice-panel-a11y-12264927643058519248

Conversation

@ford442
Copy link
Copy Markdown
Owner

@ford442 ford442 commented Mar 30, 2026

💡 What: Refactored the Root Note selection in SamplerVoicePanel to act as a proper WAI-ARIA Radio Group instead of a list of separate, standalone custom buttons.
🎯 Why: Previously, custom LadderButton elements rendered simply as generic buttons. Keyboard users had to tab through every single root note option one by one, and screen readers lacked the context that these options form a mutually exclusive list (a radio group).
📸 Before/After:
Before: LadderButton was just a button wrapper. No focus states.
After: Full visual focus ring on selection, Up/Down arrow key mapping, valid radio group semantic DOM.
Accessibility:

  • Wrapped the container in role="radiogroup" with aria-labelledby referencing "Root Note Selection".
  • Added role="radio" and aria-checked={isSelected} to LadderButton.
  • Implemented a roving tabIndex (tabIndex={isSelected ? 0 : -1}) so users tab into the group once, then use arrow keys to navigate options (matching native radio inputs).

PR created automatically by Jules for task 12264927643058519248 started by @ford442

…notes

* Adds `role="radiogroup"` to the root note container in `SamplerVoicePanel`
* Implements `role="radio"`, `aria-checked`, and roving `tabIndex` for `LadderButton` options
* Adds ArrowUp/ArrowDown navigation explicitly to the root note radiogroup
* Ensures screen readers announce the custom Root Note selection correctly

Co-authored-by: ford442 <9397845+ford442@users.noreply.github.com>
@google-labs-jules
Copy link
Copy Markdown
Contributor

👋 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@ford442 ford442 merged commit db95748 into main Mar 30, 2026
1 check passed
@ford442 ford442 deleted the palette-sampler-voice-panel-a11y-12264927643058519248 branch March 30, 2026 09:01
ford442 added a commit that referenced this pull request Apr 16, 2026
…-12264927643058519248

🎨 Palette: [UX improvement] Add accessible radio group semantics & keyboard nav to Sampler Voice Panel Root Notes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant