Skip to main content
← Back to Design

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 type attributes (email, tel, url, number, password)
  • Missing autocomplete attributes for common fields (name, email, address, cc-number)
  • Missing inputMode for mobile keyboards (numeric, decimal, email, tel)
  • Password fields without show/hide toggle
  • Missing maxLength or minLength where 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 / id pairing)
  • 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.

  1. Summary: One paragraph assessing overall form quality and the most impactful friction point.
  2. Risk Summary Table: Top findings with columns: Form | Field/Issue | Severity | User Impact | Confidence.
  3. Detailed Analysis: For Critical and High severity issues only — what's wrong, what the user experiences, and specific fix with code.
  4. 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.

Need help applying this to a real product?

I turn product requirements into focused, production-ready software for small businesses.