Motivation & Complexity
Postel's Law
Be liberal in what you accept from users, and conservative in what you send back to them: the robustness principle.
Mechanism
Why it happens
Rigid input parsing pushes the cost of formatting onto the user; unclear output pushes the cost of interpretation onto them too. Flexibility on input and clarity on output both reduce user effort.
Impact
Why it matters
- Rejecting input a script could clean up is friction the system created, not the user
- Ambiguous confirmations and errors shift interpretation work onto the person least equipped to do it
- Being liberal on input and precise on output are two sides of the same principle, not separate rules
Example
Without vs. with
Invalid format. Use 5550102000.
A phone field rejects "(555) 010-2000" and demands exactly "5550102000" with no punctuation.
Saved as +1 555-010-2000
The same field accepts any reasonable format and normalises it after the user moves on.
Checklist
How to apply it
Accept flexible input formats (phone numbers, dates, card numbers) and normalise them yourself
Don't reject input for formatting reasons a script could fix, like extra spaces, dashes, or casing
Keep error messages and confirmations precise and unambiguous. Don't be liberal on output
Validate meaning, not formatting, whenever the meaning is unambiguous
Where it shows up