UI consistency pass: encoding fix, confirm parity, double-submit guards, error surfacing, a11y labels #69

Closed
opened 2026-07-18 05:31:32 +00:00 by claude-bot · 1 comment
Contributor

Mechanical cleanup, one PR:

  • Replace mojibake ✕ with (dashboard.html:200, channels.html:264);
    standardize the literal X at dashboard.html:226
  • Add confirm() to removeSub (channels.html:352-362) — parity with
    removeLocationSub
  • Apply the existing disable-during-request pattern
    (locations.html:236-260) to submitAddChannel/submitEditChannel/
    addSubscription/submitEditLocation/submitEditLocationSub
  • Standardize on inline error divs over alert() (7 call sites listed in
    audit report F-30)
  • aria-label on icon-only remove buttons (partials/subs_list.html:24,
    partials/location_subs_list.html:29)
  • Define or replace --color-accent (app.css:434)
  • Delete the dead afterSwap JSON block (app.js:45-69) — unreachable, and
    an unescaped-innerHTML hazard if ever revived

Filed from the 2026-07-17 codebase audit (docs/.internal/report-2026-07-17.md), finding F-30.

Mechanical cleanup, one PR: - [ ] Replace mojibake `✕` with `✕` (dashboard.html:200, channels.html:264); standardize the literal `X` at dashboard.html:226 - [ ] Add confirm() to `removeSub` (channels.html:352-362) — parity with `removeLocationSub` - [ ] Apply the existing disable-during-request pattern (locations.html:236-260) to submitAddChannel/submitEditChannel/ addSubscription/submitEditLocation/submitEditLocationSub - [ ] Standardize on inline error divs over alert() (7 call sites listed in audit report F-30) - [ ] aria-label on icon-only remove buttons (partials/subs_list.html:24, partials/location_subs_list.html:29) - [ ] Define or replace `--color-accent` (app.css:434) - [ ] Delete the dead afterSwap JSON block (app.js:45-69) — unreachable, and an unescaped-innerHTML hazard if ever revived --- _Filed from the 2026-07-17 codebase audit (`docs/.internal/report-2026-07-17.md`), finding F-30._
Author
Contributor

Done in #107 (merged). All checklist items: ✕ encoding fix + close-glyph standardization; confirm() added to removeSub (parity with removeLocationSub); double-submit guards applied to submitAddChannel/submitEditChannel/addSubscription/submitEditLocation/submitEditLocationSub; user-facing errors moved from alert() to inline error divs (all ~22 error sites via a shared showInlineError helper — broader than the 7 the audit listed, per item 4's intent; the one genuine success alert() in testModel left as-is); aria-label on the icon-only remove buttons; --color-accent replaced with the defined --color-primary; dead unreachable afterSwap JSON block deleted (partials render HTML, never JSON). Bulk suite stayed green (658).

Done in #107 (merged). All checklist items: `✕`→`✕` encoding fix + close-glyph standardization; `confirm()` added to `removeSub` (parity with `removeLocationSub`); double-submit guards applied to submitAddChannel/submitEditChannel/addSubscription/submitEditLocation/submitEditLocationSub; user-facing errors moved from `alert()` to inline error divs (all ~22 error sites via a shared `showInlineError` helper — broader than the 7 the audit listed, per item 4's intent; the one genuine success `alert()` in testModel left as-is); `aria-label` on the icon-only remove buttons; `--color-accent` replaced with the defined `--color-primary`; dead unreachable `afterSwap` JSON block deleted (partials render HTML, never JSON). Bulk suite stayed green (658).
Sign in to join this conversation.
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/WeatherBot#69
No description provided.