Parent: #257. Tracking epics: #235 and #227.
Expose the browser-shaped constraint-validation API over the merged live form-state model. The API must aggregate required, text, numeric, date/time, radio, and select validity without duplicating selector or structural invalidation.
Scope
- generated dedicated prototypes for input, textarea, select, and button plus illegal-constructor
ValidityState;
- live SameObject
validity wrapper with all eleven flags;
validationMessage, willValidate, and per-control custom error state;
setCustomValidity, checkValidity, and reportValidity;
- cancelable, non-bubbling
invalid dispatch;
- recascade
:valid/:invalid only when custom-error validity changes;
- focused WPT-derived/browser, native invalidation, profile, and deferred-validation contracts.
Deferred scope
Form/fieldset aggregation, submission-time validation, interactive validation UI, datetime-local/file-input behavior, and UI-only bad-input/user-length transitions remain separate slices.
Validation truth
git diff --cached --check passed. Authored contracts, builds, WPT, benchmarks, product acceptance and computer-use remain unexecuted.
Parent: #257. Tracking epics: #235 and #227.
Expose the browser-shaped constraint-validation API over the merged live form-state model. The API must aggregate required, text, numeric, date/time, radio, and select validity without duplicating selector or structural invalidation.
Scope
ValidityState;validitywrapper with all eleven flags;validationMessage,willValidate, and per-control custom error state;setCustomValidity,checkValidity, andreportValidity;invaliddispatch;:valid/:invalidonly when custom-error validity changes;Deferred scope
Form/fieldset aggregation, submission-time validation, interactive validation UI, datetime-local/file-input behavior, and UI-only bad-input/user-length transitions remain separate slices.
Validation truth
git diff --cached --checkpassed. Authored contracts, builds, WPT, benchmarks, product acceptance and computer-use remain unexecuted.