You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The character-data audit on draft #245 produced a product-neutral textarea candidate that fails before its mutation assertions: :invalid reads the authored value attribute instead of the live control value, and :placeholder-shown is not implemented. That draft deliberately added no competing fix. Existing #237/#238 acceptance names state mutations generally but has no focused form-state source-of-truth and invalidation matrix.
This issue does not own #245's structural child-list routes/checkpoints. Start implementation only after #245 is rebased or its relevant test is relocated without conflict.
Ordered work
Inventory form-state pseudos used by current contracts and reachable desktop/webview inputs: :valid/:invalid, :required/:optional, :placeholder-shown, :read-only/:read-write, range states, checked/indeterminate, disabled/enabled, and supported user-valid/user-invalid behavior.
Define the live IDL/content-attribute source for input, textarea, select, option, and form state.
Add dependency metadata and one bounded invalidation checkpoint for value, selection, placeholder, required, pattern, range, checked, disabled, reset, and form-owner changes.
Qualify search, Settings, quick-input, issue-reporter, and extension/webview form surfaces that reach the supported slice.
Acceptance and performance gates
Chromium/native WPT-derived match and computed-style matrices agree before and after programmatic value writes, native input, attribute mutation, reset, reparenting, and detach/reattach.
Selector APIs and stylesheet matching use the same state while preserving the specified distinction between live properties and content attributes.
Initial and mutation scene/pixel checks prove focus, placeholder, validation, and disabled styling without stale retained nodes.
A 4,096-control matrix records state probes, matched rules, recascade roots/nodes, layout/scene/publication counts, time, allocations, and peak RSS. Unrelated controls/rules do not force full-document work.
Parent epic: #235. Owning workstreams: selector/invalidation #237, cascade/value resolution #238, and dynamic state/frame scheduling #242.
Proven gap
The character-data audit on draft #245 produced a product-neutral textarea candidate that fails before its mutation assertions:
:invalidreads the authoredvalueattribute instead of the live control value, and:placeholder-shownis not implemented. That draft deliberately added no competing fix. Existing #237/#238 acceptance names state mutations generally but has no focused form-state source-of-truth and invalidation matrix.This issue does not own #245's structural child-list routes/checkpoints. Start implementation only after #245 is rebased or its relevant test is relocated without conflict.
Ordered work
:valid/:invalid,:required/:optional,:placeholder-shown,:read-only/:read-write, range states, checked/indeterminate, disabled/enabled, and supported user-valid/user-invalid behavior.Acceptance and performance gates
Proposed PR stack