diff --git a/.Jules/palette.md b/.Jules/palette.md index a413d87a..3ad7fbe2 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -5,3 +5,7 @@ ## 2025-05-15 - [Inclusive Controls for Screen Readers] **Learning:** Hidden range inputs used for rotary knobs and sliders require explicit `aria-label` attributes to be useful for assistive technologies, as the visual label might not be programmatically associated with the input. **Action:** Ensure all `input[type="range"]` elements, especially those styled to look like knobs, have descriptive `aria-label` or `aria-labelledby`. + +## 2025-05-15 - [ARIA Roles Require Focus Management] +**Learning:** Assigning ARIA roles like `switch`, `button`, or `slider` to non-native elements is insufficient for accessibility if not paired with `tabIndex` and keyboard event listeners (Space/Enter for buttons/switches, Arrow keys for sliders). Without these, the UI remains unusable for keyboard-only users despite being "labeled" for screen readers. +**Action:** Always pair interactive ARIA roles with `tabIndex={0}` and appropriate `onKeyDown` handlers to ensure full keyboard operability. diff --git a/src/components/HUD/BassScreen.tsx b/src/components/HUD/BassScreen.tsx index 679d2e28..8194c223 100644 --- a/src/components/HUD/BassScreen.tsx +++ b/src/components/HUD/BassScreen.tsx @@ -126,8 +126,9 @@ export const BassScreen: React.FC = () => { {/* Harmony Section */}