Interface review HIGH fixes: keyboard rows, dock focus, chord/accent contrast, sticky error toasts (v2026.09.18.001) - #38
Merged
Conversation
…contrast, sticky error toasts (v2026.09.18.001)
Five HIGH findings from the cross-discipline interface review:
- Setlist and song rows (home, set view, library) and chord pills are now
real <button>s, so a keyboard can open a set, a song and a chord diagram.
The row body keeps its look (font/colour/alignment inherited, min-width:0
so titles still ellipsise); the long-press guard now skips only non-row
buttons; the drag handle drops its role=button (it was never focusable).
- The auto-hidden performance dock reveals on keyboard focus
(.dock.away:has(:focus-visible)) and dismissDock() defers while focus is
inside it. Before, Tab landed on controls translated off-screen.
- keyColor(): lightness 30% for hues 30-180 (C# D D# E F F#). White 12.5px
pill text measured 2.68-4.46:1 on those fills; now 4.92-7.42:1.
- New --accent-text token (#e04a34 dark, #c8342a light) for accent-coloured
text: section labels, .ctl on-state, banter, capo badge, hint code, file
label, danger button. The button coral #cf3c28 measures 4.33:1 on black.
- toast(): messages starting with ⚠, or passed {sticky:true}, stay until
tapped instead of clearing in 1.9s. Applied to the storage-blocked,
unreadable-file, invalid-backup, parse-failure and link-failure toasts.
CLAUDE.md: keyColor rule, --accent-text bullet and changelog entry.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Fixes the five HIGH findings from a cross-discipline interface review of the performance flow (home → set → song view + dock).
<div>/<span>s, so a keyboard could never open a set, a song or a chord diagram. They are now<button>s..card .metainherits font/colour/alignment and keepsmin-width:0+overflow:hiddenso titles still ellipsise. The long-press guard now skips only non-row buttons (button:not(.meta)) so the context menu still works on a row. The drag handle dropsrole="button"(it was never focusable) and isaria-hidden..dock.away:has(:focus-visible){transform:none}brings it back, anddismissDock()defers while keyboard focus is inside it.keyColor()uses lightness 30% for hues 30–180 (C♯ D D♯ E F F♯). White 12.5 px pill text measured 2.68–4.46:1 on those fills; now 4.92–7.42:1. The other six roots were already 5.57–9.80 and are unchanged.--accent-texttoken (#e04a34dark =--accent2,#c8342alight) for accent-coloured text: section labels,.ctlon-state, banter bar, capo badge, hint code, file label, danger button. The button coral#cf3c28measures 4.33:1 on black / 3.98 on panel, under the 4.5 body-text bar. Filled buttons keep--accent(white on it is 4.85).toast()now keeps messages that start with ⚠, or are passed{sticky:true}, until tapped instead of clearing in 1.9 s. Applied to storage-blocked, unreadable-file, invalid-backup, parse-failure and link-failure toasts. "Saved"/"Deleted" still auto-clear.Version bumped to
v2026.09.18.001in the HTML changelog, brand tag andsw.jsCACHE. CLAUDE.md gets the keyColor rule, the--accent-textbullet and the changelog entry.Why
Reliability at the gig includes a player who can't use a pointer, and chord names are the most-read text on stage. Contrast numbers are WCAG 2.x ratios computed from the token values and confirmed against computed styles in Chromium.
Verified
sw.jspassnode --check, 179 unique ids, brand version matches CACHE.BUTTONat 16 px, in tab order, 2 px focus ring; Tab from the last pill lands on "Previous song" on-screen with the dock revealed, and it hides ~4 s after focus leaves; pills are buttons witharia-labeland open the diagram; D pill rendersrgb(116,116,37);.commentand banter render#e04a34dark /#c8342alight; a ⚠ toast is still shown after 2.3 s and hides on tap, "Saved" clears in 1.9 s; at 320 px titles ellipsise inside the row button with no horizontal overflow.Reviewer notes
code/keypress, and the pre-existing New Song button didn't activate either). Worth one real keyboard tap on a desktop browser.🤖 Generated with Claude Code