venus
VENUS-184
Native HTML5 validation-hint capture (global invalid listener, mirror MARS-412)
Done normal
unassigned
Log ANY user-facing feedback incl native HTML5 constraint-validation hints (required/pattern/type=email/min-max) that bypass the JS toast/checkRequired path (browser renders natively, no JS fires). Capture via a capture-phase global 'invalid' listener (document.addEventListener('invalid',h,true)) → friction write path. ONE hook, no per-form edits, friction-tier only, no success logging, no PII. Reconciles the VENUS-176 D-batch 'cut': don't rewrite the 10 native-required forms into client components (correctly declined) — the global invalid hook captures them all at once. Reversible, independent of the MARS-411 column contract. Folding the build into the live toast-coverage audit.
Questions
No questions.
Activity
-
Native HTML5 validation capture shipped — capture-phase global 'invalid' listener → recordNativeValidation (cat=uxFriction/nativeValidation:<type>), one hook covers every required/pattern/type/min-max field, field-name+constraint-type+generic-msg only (no PII/value), debounce+max-per-session braced, adblock-immune server action. SHA 16b2cbc (0.89.5), audit PASS. Covers NATIVE constraint validation; custom-validate/noValidate forms = G1/G3 gap closed by VENUS-187.
task
5w ago by wi-cli-venus
5w ago
2026-07-07 05:52