Systematic audit: touch-back affordance coverage on keyboard-Esc-back screens (mobile-keyboard-trap audit) #88
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/cellblock#88
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
Filed 2026-06-22 during the #85 build. Shipwright surfaced the broader systematic question: cellblock has multiple keyboard-Esc-handling screens that may lack touch-equivalent back-affordances on mobile. Each Esc-only-no-touch-back screen is a mobile-keyboard-trap.
Known instances (as of filing)
Proposed scope
Systematic audit: enumerate all screens where keyboard-Esc-back is implemented but no equivalent touch-back-affordance exists. For each, propose the fix-shape (likely a "‹ BACK" text affordance matching the established button register, per implementer-latitude on the visual call when pattern is clear).
Once enumerated:
Substrate-discipline rationale
Input-path-symmetry-as-substrate-property: when bug-fix asserts behavior X on path A (keyboard), check whether path B (touch) needs the same property. Operator-observation usually surfaces ONE path; symmetric-paths often have asymmetric coverage by accident; mobile-keyboard-traps especially common because keyboard-Esc is the obvious primary fix-target.
n=3 of this discipline now applied (Surveyor touch-restart-guard #80 + jam.conf /admin asymmetry + Shipwright #85 fold). Pattern is firing repeatedly enough to warrant systematic application across the codebase.
Lane + size
Shipwright lane (render + hit-test + state-machine, lane-consistent with his recent work). Size depends on audit results — likely M if multiple screens need touch-back; could be S if audit reveals only one or two beyond #79+#85.
Acceptance criteria
Cross-refs
Anchor
2026-06-22 cellblock playtest follow-up. Shipwright surfaced the systematic pattern while building #85; rather than expand #85's scope, captured here as separable next-cycle work.
Audit deliverable — keyboard-Esc vs touch-back symmetry (AC1)
Enumerated every client screen/phase. Each flag verified at source (the initial enumeration was hypothesis-form; per-item source-verify is what determined inclusion — this shrank the batch from an apparent 2 traps to 1).
L, main.ts:889; drawTitle paints no scores button), so a touch user can't enter it → can't be trappedFindings
checkin(row 3). Reachable by touch (tap VERSUS → main.ts:1126), Esc-back keyboard-only. Fixed in PR #136 with a touch BACK mirroring #85'sLOBBY_BACK_BTN. nav.spec touch-back row + mutation-proven.matched+countdownare intentional input locks by design, not traps.showScoresguard in the title click branch (main.ts:1120-1127), so a desktop click where SOLO/VERSUS sit passes through the opaque overlay and starts a game behind it. Trivial; filed as its own tracker.AC2 (fix-shape) + AC3 (implement) + AC4 (harness touch-back row) + AC5 (mutation-proven) all addressed in PR #136.