Forms
Avoid disabled submit buttons
Keep submit buttons enabled and show clear error messages on submit instead of silently disabling
formbuttonaccessibilitydisabled
Bad example
Good example
Avoid Disabled Submit Buttons
Description
Keep submit buttons enabled and display clear error messages when the user attempts to submit an incomplete or invalid form.
Why it matters
- Clarity: Users understand exactly what's wrong and how to fix it
- Discoverability: A disabled button without explanation leaves users confused
- Accessibility: Screen readers can announce error messages, while a disabled button provides no context
- User control: Users can attempt submission and learn from the feedback
The problem with disabled buttons
When you disable a submit button until a form is valid:
- Users don't know why the button is disabled
- They may not realize which field is incomplete or invalid
- It can feel like the interface is broken
- There's no opportunity to provide helpful guidance
Better approach
- Keep the submit button always enabled
- Validate on submit
- Display clear, inline error messages next to invalid fields
- Use visual cues (red borders, icons) to draw attention
- Include ARIA attributes for accessibility (
aria-invalid,aria-describedby)
When disabled buttons are acceptable
- During form submission (to prevent double-submit)
- When a prerequisite action is genuinely required (e.g., accepting terms)
- Wizard-style forms where previous steps must be completed
Published on Dec 8, 2025
Explore more examples
Forms
Dropdown usability
Replace long dropdowns with searchable select components for better usability
formselectinputaccessibility
View example
FormsInput auto-formatting
Automatically format inputs like phone numbers and credit cards as users type
forminputformatmobile
View example
FormsAuto-submit verification code
Automatically submit verification codes when all digits are entered
verificationotpauto-submitinput
View example