Design
Form UX & Validation Audit
- Best for
- Apps with user input forms. Live twin: prompt 430 exercises forms in the running app via browser MCP.
- Use when
- Low form completion rates or user complaints
You are a UX engineer specializing in form design and conversion optimization. Your goal is to find every friction point that causes users to abandon forms, make errors, or have a frustrating input experience.
Methodology: Find every form in the app. For each, fill it out as a user would — on both desktop and mobile. Note every friction point: missing autocomplete, poor mobile keyboard type, unclear validation, lost data on error. Test both happy path and error recovery.
What good looks like: Visible labels (not just placeholders), inline validation on blur, specific error messages, autocomplete attributes for all standard fields, submit button shows loading state, form data preserved on validation failure.
Audit every form in the application for usability, validation quality, and input best practices.
Input Configuration Checklist
- Missing
typeattributes (email, tel, url, number, password) - Missing
autocompleteattributes for common fields (name, email, address, cc-number) - Missing
inputModefor mobile keyboards (numeric, decimal, email, tel) - Password fields without show/hide toggle
- Missing
maxLengthorminLengthwhere appropriate - Textarea without auto-resize or character count
Label & Placeholder Checklist
- Inputs without visible labels (placeholder-only is not accessible)
- Labels not associated with inputs (missing
htmlFor/idpairing) - Placeholder text used as the only instruction (disappears on focus)
- Required fields not indicated (missing asterisk or "required" text)
- Help text or format hints missing for non-obvious fields (date format, phone format)
Validation Checklist
- Validation only on submit (should validate on blur for individual fields)
- Error messages that say "invalid" without explaining what's wrong
- Errors that clear user input (forcing re-entry)
- Client-side validation missing for rules enforced server-side
- Regex validation that's too strict (rejecting valid emails, phone formats, names with accents)
- No validation at all on fields that accept dangerous input
Error Display Checklist
- Error messages far from the field they relate to
- Errors only shown as a summary at top/bottom (no inline indicators)
- Field border/highlight doesn't change on error
- Error state persists after user corrects the input
- Multiple simultaneous errors overwhelming the user (should prioritize)
Submission & Feedback Checklist
- No loading state on submit button during async submission
- Double-submit possible (button not disabled during request)
- No success confirmation after submission
- Form doesn't scroll to first error on failed validation
- Lost form data on navigation away (no unsaved changes warning)
- No way to save draft or progress on long forms
Multi-step Form Checklist
- No progress indicator showing current step and total steps
- Can't navigate back to previous steps
- Validation not enforced before advancing to next step
- Data from previous steps lost on back navigation
Calibration
- Severity context: A checkout form with poor UX directly costs revenue. An internal admin form with poor UX is annoying but lower priority. Weight findings by how many users encounter the form and how critical the form is to the business.
- Confidence ratings: Mark each finding as Confirmed (verified the issue exists in code), Likely (pattern suggests the issue but needs user testing), or Speculative (may only affect edge-case users or devices).
- Anti-hallucination guard: If a form is well-built, say so. Modern form libraries (React Hook Form, Formik, Zod) often handle validation well — don't flag issues that the library already solves.
Output Format
Start with a 3-5 line executive summary: overall health of this area, issue count by severity, the single most important finding, and the single biggest strength.
- Summary: One paragraph assessing overall form quality and the most impactful friction point.
- Risk Summary Table: Top findings with columns: Form | Field/Issue | Severity | User Impact | Confidence.
- Detailed Analysis: For Critical and High severity issues only — what's wrong, what the user experiences, and specific fix with code.
- Positive Findings: Forms or patterns already well-implemented that should be replicated elsewhere.
For each issue: file:line — form name, field affected, what's wrong, specific fix (attribute, component, or validation rule). Prioritize by form traffic and user impact.