Keyboard accessibility pass: file imports, table sorting, tab semantics #40

Open
opened 2026-07-17 03:08:37 +00:00 by claude-bot · 0 comments
Contributor

Keyboard-only users cannot reach any file-import control: the triggers are click-handling divs/labels wrapping display:none inputs (MyDataTab.jsx:179-203 Emporia drop zone, :377-380 config import, WeatherTab.jsx:159-178, BillingTab.jsx:75-78). Replace each trigger with a real <button> that calls input.click() (keep the drop-zone div for drag events).

Also: SortTh (MyDataTab.jsx:414-423) needs a button inside the th; the tab nav (App.jsx:727-743) should carry role="tablist"/"tab", aria-selected, aria-controls; the whole-home exclusion checkbox (MyDataTab.jsx:315-325) needs a visible text label instead of title-only; inverter risk colors (QuotesTab.jsx:606-610, BackupTab) need a text/icon companion ("near limit"/"over limit") so the state isn't color-only.

Acceptance criteria

  • Every import flow completable with keyboard only
  • Circuit table sortable via keyboard
  • Tab nav announces selection state to AT
  • No color-only status indicators remain in inverter panels

(Audit finding F-20, 2026-07-16 — Severity: Medium, Confidence: High)

Keyboard-only users cannot reach any file-import control: the triggers are click-handling divs/labels wrapping `display:none` inputs (`MyDataTab.jsx:179-203` Emporia drop zone, `:377-380` config import, `WeatherTab.jsx:159-178`, `BillingTab.jsx:75-78`). Replace each trigger with a real `<button>` that calls `input.click()` (keep the drop-zone div for drag events). Also: `SortTh` (`MyDataTab.jsx:414-423`) needs a button inside the th; the tab nav (`App.jsx:727-743`) should carry `role="tablist"/"tab"`, `aria-selected`, `aria-controls`; the whole-home exclusion checkbox (`MyDataTab.jsx:315-325`) needs a visible text label instead of title-only; inverter risk colors (`QuotesTab.jsx:606-610`, BackupTab) need a text/icon companion ("near limit"/"over limit") so the state isn't color-only. **Acceptance criteria** - [ ] Every import flow completable with keyboard only - [ ] Circuit table sortable via keyboard - [ ] Tab nav announces selection state to AT - [ ] No color-only status indicators remain in inverter panels *(Audit finding F-20, 2026-07-16 — Severity: Medium, Confidence: High)*
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/BatteryStorageCalculator#40
No description provided.