Close two blind spots in the contrast check #82
Closed
jheaps
wants to merge 1 commits from
fix/casino-holdem-close-audit-blind-spots into fix/casino-holdem-readable-dim-states
pull from: fix/casino-holdem-close-audit-blind-spots
merge into: :fix/casino-holdem-readable-dim-states
: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.
#81 found a folded player's stack sitting at 2.22:1, hidden for twenty rounds behind an exemption. So I went looking for the other exemptions rather than waiting for the next one to surface.
There were two, and neither is hiding a live fault today — worth saying plainly, because it means this is a fix to the instrument and not to the tool.
Leaf elements only
An element's own text stopped being measured the moment a child was added to it. The undo control went that way two changes ago, the day a
<kbd>was appended to it: its label became invisible to this check with no sign that anything had changed. It now measures an element's own text nodes and leaves descendants to their own turn, against their own colours.aria-hidden as a contrast exemption
The bets layer is
aria-hiddenbecause the amounts on the chips are already announced by the seat and the action bar, and repeating them would be noise. That's a good reason to hide them from a screen reader and no reason at all to stop checking whether a sighted dealer can read them — and the chips are exactly what the felt is read for. Two different questions were being answered by one attribute.Nothing is exempt now. If something genuinely decorative turns up it should say so in its own words rather than borrowing an attribute that means something else. The watermark the exemption was written for went in #80.
What the widened check finds
Nothing. Zero offenders at six viewports across touch and pointer contexts, and with the sidebar panels and the rulings sheet open. Measured from rendered pixels, the two things that had been invisible are comfortable: bet chip amounts read 12.65–13.74:1 and the undo label 8.06:1.
So the fix is proved by injection instead. Colouring the bet chip amounts
#3a3a3anow reports three offenders at 1.80:1; colouring the undo control#2f2f2freports it at 1.13:1. Neither was reported before.269 tests still passing, no console errors.
Last change found a folded player's stack sitting at 2.22:1, hidden for twenty rounds behind an exemption. So I went looking for the other exemptions rather than waiting for the next one to surface. There were two, and neither is hiding a live fault today -- which is worth saying plainly, because it means this is a fix to the instrument and not to the tool. Leaf elements only if (el.children.length > 0) return; // leaf text only An element's own text stopped being measured the moment a child was added to it. The undo control went that way two changes ago, the day a <kbd> was appended to it: its label became invisible to this check with no sign that anything had changed. Now it measures an element's own text nodes and leaves the descendants to their own turn, against their own colours. aria-hidden as a contrast exemption The bets layer is aria-hidden because the amounts on the chips are already announced by the seat and the action bar, and repeating them would be noise. That is a good reason to hide them from a screen reader and no reason at all to stop checking whether a sighted dealer can read them -- and the chips are exactly what the felt is read for. Two different questions were being answered by one attribute. Nothing is exempt now. If something genuinely decorative turns up, it should say so in its own words rather than borrowing an attribute that means something else. The watermark that the exemption was written for is gone as of the change before last. What the widened check finds Nothing. Zero offenders at six viewports across touch and pointer contexts, and with the sidebar panels and the rulings sheet open. Measured from rendered pixels, the two things that had been invisible are comfortable: the bet chip amounts read 12.65 to 13.74:1 and the undo label 8.06:1. So the fix is proved by injection instead. Colouring the bet chip amounts #3a3a3a now reports three offenders at 1.80:1, and colouring the undo control #2f2f2f reports it at 1.13:1. Neither was reported before. 269 tests still passing, no console errors. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_015bnp7xKUPFFSpwkYNFaPgbPull request closed