Run the two checks the audit had and never used #103
Closed
jheaps
wants to merge 1 commits from
fix/casino-holdem-audit-runs-everything into feat/casino-holdem-straddle
pull from: fix/casino-holdem-audit-runs-everything
merge into: :feat/casino-holdem-straddle
:master
:feature/socialism
:polish/holdem-seats-one-size
:fix/holdem-dealer-chip-eats-its-seat
:polish/holdem-game-night-ready
:polish/holdem-round-next
:polish/holdem-seat-collisions
:polish/holdem-offline-and-render
:fix/naming-a-blind-deals-the-hand
:release/casino-holdem-polish
:fix/casino-holdem-phone-look
:fix/casino-holdem-sidebar-crowding
:fix/casino-holdem-contribution-rule
:fix/casino-holdem-one-stack-rule
:fix/casino-holdem-default-stack-buyin
:feat/casino-holdem-waiting-list
:feat/casino-holdem-misdeal
:feat/casino-holdem-cash-out
:feat/casino-holdem-clock
:feat/casino-holdem-rake
:fix/casino-holdem-stadium-ring
:fix/casino-holdem-phone-felt-shape
:fix/casino-holdem-audit-runs-everything
:feat/casino-holdem-straddle
:fix/casino-holdem-landscape-ring
:feat/casino-holdem-table-file
:fix/casino-holdem-touch-targets
:fix/casino-holdem-audit-modal-blindspot
:fix/casino-holdem-quicksplit-chop
:fix/casino-holdem-buildable-bet-sizes
:fix/casino-holdem-pot-sized-raise
:fix/casino-holdem-chips-to-count-out
:fix/casino-holdem-first-buy-in
:fix/casino-holdem-seating-a-table
:fix/casino-holdem-showdown-order
:fix/casino-holdem-hand-log-filter
:fix/casino-holdem-posting-in
:fix/casino-holdem-dead-button
:fix/casino-holdem-discarded-pot
:fix/casino-holdem-honest-tank-clock
:fix/casino-holdem-export-the-notes
:fix/casino-holdem-stacks-in-chips
:fix/casino-holdem-close-audit-blind-spots
:fix/casino-holdem-readable-dim-states
:fix/casino-holdem-drop-broken-watermark
:fix/casino-holdem-two-tabs
:fix/casino-holdem-unreadable-save
:fix/casino-holdem-say-when-not-saving
:fix/casino-holdem-shortcut-discovery
:fix/casino-holdem-rulings-index-compact
:fix/casino-holdem-rulings-index
:fix/casino-holdem-payout-in-chips
:fix/casino-holdem-move-seat-on-touch
:fix/casino-holdem-amount-fields-select
:fix/casino-holdem-touch-targets-by-pointer
:fix/casino-holdem-button-box-model
:fix/casino-holdem-blind-badge-placement
:fix/casino-holdem-buyin-deals-in
:fix/casino-holdem-bet-vs-raise
:fix/casino-holdem-deal-around-broke
:fix/casino-holdem-settle-up
:fix/casino-holdem-allin-and-bar
:fix/casino-holdem-one-dealer-button
:fix/casino-holdem-manual-deal
:fix/casino-holdem-less-guessing
:feature/casino-holdem-seat-editor
:fix/casino-holdem-landscape-table
:feature/casino-holdem-acting-seat
:feature/casino-holdem-raise-guard
:feature/casino-holdem-first-run
:feature/casino-holdem-contrast-audit
:feature/casino-holdem-layout-audit
:feature/casino-holdem-blind-fairness
:feature/casino-holdem-rulings-depth
:feature/casino-holdem-bank-audit
:feature/casino-holdem-fewer-taps
:feature/casino-holdem-render-perf
:feature/casino-holdem-keyboard-focus
:feature/casino-holdem-resilience
:feature/casino-holdem-messy-tables
:feature/casino-holdem-touch-mobile
:chore/casino-holdem-tech-debt
:feature/casino-holdem-dealer-batch
:feature/casino-holdem-seat-count-safety
:feature/casino-holdem-odd-chip
:feature/casino-holdem-button-moves
:feature/casino-holdem-allin-runout
:feature/casino-holdem-heads-up
:feature/casino-holdem-contrast
:feature/casino-holdem-touch-audit
:feature/casino-holdem-wizard-polish
:feature/casino-quicksplit-side-pots
:feature/casino-holdem-rebuys
:feature/casino-holdem-rulings
:feature/casino-holdem-sidebar-polish
:feature/casino-holdem-keyboard
:feature/casino-holdem-action-undo
:feature/casino-holdem-pace
:feature/casino-holdem-side-pot-breakdown
:feature/casino-holdem-gestures
:feature/casino-holdem-card-picker
:feature/casino-holdem-live-betting
:feature/casino-holdem-bet-chips
:feature/casino-holdem-seat-legibility
:feature/casino-holdem-undo-toasts
:feature/casino-holdem-quick-split
:feature/casino-holdem-mobile-table
:feature/casino-holdem-hand-history
:feature/casino-texas-holdem
:feature/casino-holdem-dealer-mode-polish
:feature/fractional-learned-weights
:fix/stockfish-dispose-hang
:fix/blog-cache-staleness
:fix/workflows
:gitea/workflows
:echo-acoustic-ranging
:chess-ui-overhaul
:feature/customChessEngine
:feature/blog
:AddProject
:feature/generalUpdate
:tech-debt/chess-cleanup
:tests/CreatePlaywrightTests
:UpdateParticleSimulatorButton
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
runAll()did not include the contrast check — it simply wasn't in the list — and touch targets sat behind an opt-in flag nothing passed. "The audit is clean" has meant nine checks rather than eleven for a long run of rounds, and the two left out are the two whose faults a dealer meets in a dim room with their thumb. Both were written, tested, and then never called; the contrast checker was built across two rounds and every sweep since has been silent about colour.The standalone runner had a second version of the same hole: the 44px rule stands itself down where
hover: hoversays there's a pointer, and a headless desktop browser is a pointer — so a single pass had never measured a touch target at any viewport. It now runs every viewport twice, once with a mouse and once with a thumb. And a check that decides it doesn't apply now says so, instead of reporting an empty offenders list, which reads exactly like a pass.Faded text is measured now rather than filed as unchecked.
opacityon a box fades the box and its text together onto whatever is behind it, so a dimmed seat is not grey text on a dark puck: it is a faded puck and faded text both landing on the page. Both halves are composited that way. Two exemptions remain and both say so out loud — a disabled control, which WCAG itself excuses, and a link inside a sentence, whose size is set by the line it sits in.What running them found, and this round fixes
That last one brings back a cap this project measured and rejected once: capping the felt to the room left fixed the six-seat ring and broke the nine-seat one, two covered seats traded for two stolen centres. That trade was real then and isn't now — since PR #100 seats are spaced by distance around the rim rather than by angle, so a shorter felt no longer piles them up. Where the rim still can't give each seat a puck's width, the pucks come down a size, measured from the rim itself rather than from a media query.
Validated
One honest note
The phone table is visibly smaller now — a 240px felt at 360x640 where it used to be 336px, with the pucks crowding it. That is the trade: a seat you can see and reach beats a bigger table with two seats behind the Fold button. Tightening how the ring uses the space it has is worth a round of its own.
runAll() did not include the contrast check — it simply wasn't in the list — and touch targets sat behind an opt-in flag nothing passed. So "the audit is clean" has meant nine checks rather than eleven for a long run of rounds, and the two left out are the two whose faults a dealer meets in a dim room with their thumb. Both were written, tested, and then never called; the contrast checker was built across two rounds and every sweep since has been silent about colour. The standalone runner had a second version of the same hole: the 44px rule stands itself down where `hover: hover` says there's a pointer, and a headless desktop browser is a pointer, so a single pass had never measured a touch target at any viewport. It now runs every viewport twice, once with a mouse and once with a thumb. A check that decides it doesn't apply now says so, rather than reporting an empty offenders list — which reads exactly like a pass. Faded text is measured instead of filed as unchecked. `opacity` on a box fades the box and its text together onto whatever is behind it, so a dimmed seat is not grey text on a dark puck: it is a faded puck and faded text both landing on the page. Both halves are composited that way now. Two exemptions remain and both say so out loud: a disabled control, which WCAG itself excuses, and a link inside a sentence, whose size is set by the line it sits in. What running them found, and this round fixes: - the chair number on every seat: #8a8a8a at 9px, 3.39:1 once the empty seat's fade is composited, on the label that answers "which seat is that?"; - Quick Split's amount field at 37px tall and its delete button at 30px across, on a page whose targets had never been measured; - and on a 360x640 phone with the bar grown by a side pot, the bottom seat sitting 38px inside it. That last one brings back a cap this project measured and rejected once: capping the felt to the room left fixed the six-seat ring and broke the nine-seat one. That trade was real then and isn't now — seats are spaced by distance around the rim rather than by angle, so a shorter felt no longer piles them up. Re-measured across 30 combinations of five phone sizes and 2 to 12 seats: every one clean except twelve seats at 360x640, where a 240px felt and a 64px puck cannot both be true. Where the rim can't give each seat a puck's width, the pucks come down a size, measured from the rim itself rather than from a media query. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_015bnp7xKUPFFSpwkYNFaPgbjheaps referenced this pull request2026-09-02 04:03:44 -06:00
Pull request closed