Postel's Law
Be liberal in what you accept and conservative in what you send, which for interfaces means accepting messy input and returning clean output.
Definition
Jon Postel's robustness principle, written for TCP implementations in the early internet standards, states that a system should be tolerant of variation in what it receives and strict about what it produces. Applied to interfaces, it argues for forgiving input handling and unambiguous output.
Craft convention. True because the industry converged on it. Breaking it costs familiarity, not correctness.
On this page
Input tolerance worth building
Each of these removes an error the user should never have been shown.
- Phone numbers: accept spaces, dashes, brackets and country prefixes, then normalise.
- Card numbers: strip spaces on submit rather than rejecting them.
- Dates: accept several formats and echo the interpreted date back in an unambiguous form.
- Email: trim whitespace, lowercase the domain, and never reject on an over-strict regular expression.
- Names: allow apostrophes, hyphens, accented characters, single-word names and names longer than most fields allow.
- Postcodes and addresses: accept the local format, whatever it is, and validate on the server against a real service.
Conservative output
Do
- Echo back a normalised, unambiguous version of what you understood.
- Show dates with a written month when the format could be misread across regions.
- State units and currency explicitly.
- Use one canonical representation of a value throughout the product.
Do not
- Silently alter data in a way the user cannot see.
- Accept ambiguous input and then guess without showing the guess.
- Present the same value in two different formats on the same screen.
In practice
Card number formatting
CheckoutRejecting a card number because the user typed the spaces printed on the card is a self-inflicted error. Strip the spaces, or better, auto-format as they type so the field matches the physical card.
Date echo-back
Booking and schedulingAccept 03/04 in either interpretation, then display 'Wednesday 3 April 2026' beneath the field. The tolerance is invisible and the confirmation is unambiguous.
Sources
Where a source establishes something narrower than the popular reading of it, the note says so.
RFC 761: Transmission Control Protocol
J. Postel, DARPA, 1980
Original statement of the robustness principle.
The Harmful Consequences of the Robustness Principle
M. Thomson, IETF draft
Argues that excessive tolerance harms protocol maintenance over time. The critique applies to protocols, not to user input handling.
Continue from here
Each link says what the connection is, so you can tell a principle from an alternative from a thing people mix this up with.
Applies when you are designing
Applied through
Where this shows up as a concrete interface decision.
- Date PickerComponent
- Text InputComponent
- Autocomplete and TypeaheadPattern
- Input ValidationPattern
- Payments and CheckoutPattern
- Error MessagesUX writing
- InternationalizationUX writing
Related concept
Connected closely enough to change how you apply this.
- Error PreventionHeuristic
- Tesler's LawLaw
- ConstraintsPrinciple
- ForgivenessPrinciple