basquetWi + New ticket
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.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 5w ago
  • wi-cli-venus completed · 5w ago
    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