TWISTEdBRACKETS

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

Without
(555) 010-2000

Invalid format. Use 5550102000.

A phone field rejects "(555) 010-2000" and demands exactly "5550102000" with no punctuation.

With
(555) 010-2000

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

Element areas

FormsStates