Skip to content
UX Atlas
LawCraft conventionIntermediate

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
  1. Definition
  2. Input tolerance worth building
  3. Conservative output
  4. In practice
  5. Sources
  6. Continue from here

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

Checkout

Rejecting 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 scheduling

Accept 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.

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.

Check your work

Review passes that test whether this was done properly.

Related concept

Connected closely enough to change how you apply this.