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

   ### SUMMARY
   
   Continues turning on the `jsx-a11y` rules from oxlint's [rule 
list](https://oxc.rs/docs/guide/usage/linter/rules.html) one at a time, setting 
each to `error` and fixing the violations it surfaces. This batch enables **9 
more rules** (bringing the codebase up to date with oxlint 1.72, which now 
implements four interactive-role rules the config previously documented as 
unavailable).
   
   Rules enabled and how they were satisfied:
   
   - **`interactive-supports-focus`** — add `tabIndex` to role-bearing 
clickable elements (13 files: FaveStar, RefreshLabel, OptionControls, the 
native-filter title tabs, DnD option controls, reload buttons, tree-node menus, 
query-preview tabs, etc.)
   - **`mouse-events-have-key-events`** — mirror `onMouseOver`/`onMouseOut` 
with `onFocus`/`onBlur` (Modal drag handle and two popover titles)
   - **`control-has-associated-label`** — add `aria-label` to the 
collapsed-sidebar toggle and a test mock button
   - **`no-noninteractive-element-to-interactive-role`** — enabled. The pivot 
table intentionally exposes `role="grid"` on its `<table>` (asserted by 
`tableRenders.test.tsx`), so it gets a scoped override rather than dropping the 
role
   - **`anchor-ambiguous-text`, `autocomplete-valid`, 
`no-aria-hidden-on-focusable`, `no-interactive-element-to-noninteractive-role`, 
`no-noninteractive-element-interactions`** — already clean; enabled to guard 
against regressions
   
   Also removes the stale "not implemented" comment for the four interactive 
rules oxlint 1.72 now supports.
   
   `no-static-element-interactions` is deliberately **left off** with a TODO: 
its remaining violations are event-boundary wrappers (divs/spans whose handlers 
only `stopPropagation`) and test scaffolding, where adding a role is 
semantically wrong and would itself trip 
`no-noninteractive-element-interactions`. It needs a dedicated pass.
   
   All changes are additive a11y attributes (no logic changes) except the 
pivot-table override.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   N/A — no visual change.
   
   ### TESTING INSTRUCTIONS
   
   - `cd superset-frontend && npm run lint` — passes clean with the 
newly-enabled rules.
   - Ran the co-located Jest suites for every changed component (FaveStar, 
RefreshLabel, Modal, ExploreViewContainer, OptionControls, Option, 
AdhocMetricEditPopoverTitle, DrillDetailTableControls, ChartsScopingListPanel, 
TableExploreTree, pivot-table renderers, DeckGL container) — 113 tests pass.
   
   ### ADDITIONAL INFORMATION
   
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [x] Changes UI
   - [ ] Includes DB Migration (follow approval process in 
[SIP-59](https://github.com/apache/superset/issues/13351))
     - [ ] Migration is atomic, supports rollback & is backwards-compatible
     - [ ] Confirm DB migration upgrade and downgrade tested
     - [ ] Runtime estimates and downtime expectations provided
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   
   🤖 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