The R-1.2/R-1.3/R-1.4 sweep, same method as C2a (evidence first): each
offender is either a REAL missing state or a shared-layer/composed case
that must not duplicate rules.
Real fixes, all verified in a live browser (computed-style probes, with
the transition-mid-flight trap from the demo guide s13 accounted for):
switch/toggle/rating-group get the family invalid tint
(--color-threat-element, the shipped checkbox/pin-input precedent);
toggle gets its readonly cursor; pin-input cells get the readonly
muted-surface treatment mirroring date-field segments; the SHARED
spin-field layer gains the readonly treatment it lacked (one fix covers
css-field + number-field); natural-time-picker gets the disabled
opacity/pointer rule mirroring date-field.
Exception valve wired into R-1.3/R-1.4 (was only R-1.1/1.2/1.5/E-2.2)
and cited exceptions added: css-field/number-field (states live in the
shared spin-field layer), dialog (data-disabled sits on the VIRTUAL
provider — defaultElement none — and the pressable surfaces are
composed Buttons), color-picker (color-field owns the invalid rules),
date-range-field (the runtime overlays data-date-field-input on the
same elements, per its own recipe header), time-picker (composed
time-field chrome). natural-time-picker keeps its two warns for its C8
pass rather than guessing paint targets.
All 10 audited components now PASS with 0 R-1.x pending; npm run check
at the 61-error baseline. css-field/number-field READMEs fixed on disk
but unstaged (unrelated local modifications).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>