eschutho opened a new pull request, #41470:
URL: https://github.com/apache/superset/pull/41470

   ### Summary
   
   - `IconButton` (a `<div role="button">`) had a `label` prop that only 
rendered as visible text in a `<span>` but was never wired to `aria-label`, so 
screen readers received no accessible name for the control
   - Three icon-only call sites (`DeleteComponentButton`, row settings, column 
settings) passed no `label` at all, leaving those buttons completely unnamed 
for assistive technology
   - Adds `aria-label={label}` to the `StyledDiv` in `IconButton` and supplies 
a translatable `label` at all three unlabeled call sites
   
   **WCAG 2.1 SC 4.1.2 (Name, Role, Value) — Level A.** Icon-only interactive 
elements must have an accessible name; without one, screen reader users 
(VoiceOver, NVDA, JAWS) cannot identify what the button does despite being 
keyboard-focusable via `tabIndex={0}`.
   
   ### Files changed
   
   | File | Change |
   |------|--------|
   | `dashboard/components/IconButton.tsx` | Add `aria-label={label}` to 
`<StyledDiv>` |
   | `dashboard/components/DeleteComponentButton.tsx` | Add `label={t('Delete 
component')}` |
   | `dashboard/components/gridComponents/Row/Row.tsx` | Add `label={t('Row 
settings')}` |
   | `dashboard/components/gridComponents/Column/Column.tsx` | Add 
`label={t('Column settings')}` |
   
   ### Test plan
   
   - [ ] Open a dashboard in edit mode
   - [ ] Tab to the Delete, Row settings, and Column settings buttons
   - [ ] Verify a screen reader announces their labels (VoiceOver: VO+Space on 
macOS; NVDA: browse mode on Windows)
   - [ ] Verify buttons still function correctly on click
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to