Chapter 5. Postel’s Law

Be conservative in what you do, be liberal in what you accept from others.

Overview

Designing good user experiences means designing good human experiences. People don’t behave like machines: we are sometimes inconsistent, frequently distracted, occasionally error-prone, and usually driven by emotion. We expect the products and services we interact with to intuitively understand us and be forgiving. We expect to feel in control at all times, and we’re generally annoyed when asked to provide more information than is necessary. At the same time, the devices and software we use vary greatly in terms of feature support, capabilities, and form factors. To be capable of meeting users’ expectations, the products and services designers build must be robust and adaptable. Postel’s law, also known as the robustness principle, gives us a guiding principle for designing human-centric experiences that account for both scale and complexity.

The first half of Postel’s law states that you should “be conservative in what you do.” In the context of design this can be interpreted as stipulating that the output of our efforts, whether that’s an interface or a comprehensive system, should be reliable and accessible. These are important characteristics of a digital product or service, because not only must the interface be easy to use, but it must be easy to use for the largest spectrum of users possible. This means that anyone, regardless of device size, feature support, input mechanism, assistive technology, or even connection speed, should be served something that works.

The second half of the principle states that you should “be liberal in what you accept from others.” In the context of design, this can be taken to mean the acceptance of input from users via any input mechanism and in a variety of possible formats. It applies to data entered into a form via mouse and keyboard (or perhaps keyboard only), assistive technology, touch and gesture input from mobile users, and even voice input in all its variations of language, dialect, and nomenclature. It applies to screens of any size and resolution, from a watch interface all the way up to a TV. It encompasses differences in network bandwidth, connection strength, and any other possible variation.

In this chapter, we’ll take a close look at some examples of Postel’s law in action and how designers can leverage this principle to design products and services that adapt to how people actually are.

Origins

Jon Postel was an American computer scientist who made significant contributions to the underlying protocols that would come to form the internet. One of these contributions was an early implementation of the Transmission Control Protocol (TCP), the foundation on which data is sent and received over a network. In this specification Postel introduced what he called the robustness principle, which stated that “TCP implementations will follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others.”1 The idea was that programs that send data (either to other machines or to different programs on the same machine) should conform to specifications, while programs that receive data should be robust enough to accept and parse nonconformant input, as long as the meaning is clear.

Postel’s principle was originally intended to be a guideline for network engineering, specifically in regard to the transfer of data across computer networks. The fault tolerance introduced by the robustness principle helped to ensure nodes on the early internet could communicate reliably, but its influence extends beyond just computer network engineering—software architecture has also been influenced by this principle. Take, for example, declarative languages such as HTML and CSS. Their loose error handling means that problems like authoring mistakes or lack of browser support for specific features are handled gracefully by the browser. If the browser doesn’t understand something, it simply ignores it and moves on. This has lent an amazing amount of flexibility to these languages—flexibility that led to their dominance on the internet stage.

The philosophy outlined in Postel’s law can also be applied to user experience design and how we deal with user input and system output. As I mentioned earlier, designing good user experiences means designing good human experiences. Since humans and computers communicate and process information in fundamentally different ways, it’s the responsibility of design to bridge the communication gap. Let’s take a look at some examples to see how this can be done.

Examples

Postel’s law describes an approach to design that’s more akin to the philosophy of human–computer interaction: we should anticipate virtually anything in terms of input, access, and capability while providing a reliable and accessible interface. There are countless examples that demonstrate this philosophical approach, but we’ll begin with one that is ubiquitous in the digital world: input forms. Forms have long been a primary means for people to provide information to systems in the digital space. In essence, they are the medium through which humans and systems interact: a product or service requires information, and the user provides that information by way of form elements that are submitted for processing.

Using Postel’s law as a guide in regard to forms, the first consideration is to be conservative in how much information you ask people to provide. The more fields you require users to fill out, the more cognitive energy and effort you’re asking of them, which can lead to a deterioration in the quality of the decisions made (commonly referred to as decision fatigue) and reduce the likelihood that they’ll complete the form. By asking only for what’s absolutely necessary and not requesting information you already have, such as an email address or a password, you can minimize the effort required to fill out a form.

There’s also the consideration of how flexible the system is with respect to user input. Since humans and computers communicate in different ways, there’s sometimes a disconnect between the information that humans provide and the information that the computer expects. Postel’s law dictates that computers should be robust enough to accept varying types of human input and not only make sense of it but also process it into a computer-readable format. This can be done in a variety of ways, but perhaps most exciting are the ones that require the least amount of effort. Take, for example, Apple’s Face ID (Figure 5-1), a facial recognition system that enables Apple users to authenticate on their mobile devices without the need to provide a username or a password each time they attempt to unlock their devices.

Face ID lets you securely unlock your iPhone or iPad, authenticate purchases, sign in to apps, and more (source: Apple, 2020)
Figure 5-1. Face ID lets you securely unlock your iPhone or iPad, authenticate purchases, sign in to apps, and more (source: Apple, 2020)

Next, let’s look at an example that has become ubiquitous in the post-desktop era of computing: responsive design. Over the past few decades, as more and more devices gained the ability to connect to the web, the need to serve content that could adapt to any screen size increased. Ethan Marcotte introduced an approach in 2010 that he called “responsive web design,” which relies on “fluid grids, flexible images, and media queries”2 to create websites that allow content to respond in a fluid manner to different viewing contexts. It was a completely new approach to designing and building websites, at a time when the predominant strategy was to create separate websites for desktops and internet-capable mobile devices. Responsive web design pushed designers beyond creating device-specific experiences and toward an approach that embraced the fluid nature of the web. The growing capability of Cascading Style Sheets (CSS) enabled designers to define how content could flexibly adapt to any viewing context, be it an internet-capable smartwatch, smartphone, gaming console, laptop, desktop computer, or TV (Figure 5-2). Today responsive web design is the de facto standard when creating web experiences, and it embodies the philosophy of accepting a broad spectrum of input while providing output that is reliably adaptable and not quarantined to specific dimensions or devices.

Responsive web design embraces the fluid nature of the web
Figure 5-2. Responsive web design embraces the fluid nature of the web

Progressive enhancement, which describes a strategy for web design focusing on content and gradual layering of styling and interaction, can also be considered an example of Postel’s law. First introduced by Steve Champeon and Nick Finck at SXSW in 2003 in a presentation titled “Inclusive Web Design For the Future”, this strategy emphasizes access to the basic content and functionality for all users, regardless of browser feature support, device features and capabilities, or internet connection speed. Additional style and interaction layers are progressively added as feature support and capabilities are detected, ensuring that people with newer browsers, more advanced devices, or faster connections receive a more enhanced experience without obscuring the core content. It’s an approach that stands in contrast to a previous strategy known as “graceful degradation,” which places emphasis on fault tolerance and focuses first on the more advanced software and hardware while providing a fallback for others.

Progressive enhancement’s strength centers around its ability to liberally accept any range of browser feature support, any level of device capability support, and any connection speed and to conservatively layer enhancements while preserving the core content, thus enabling universal access for everyone. Take, for example, a simple search box, which provides the ability for anyone to select it and enter a search query but is enhanced to support voice input for devices that support voice recognition (Figure 5-3). Everyone will get a default search box initially, and it will be usable by everyone, including those using assistive technology such as screen readers. If voice recognition support is detected, a layer of functional enhancement is added by allowing the user to select the microphone icon to invoke a voice assistant that will transcribe speech to text, thereby extending the input methods of the search box without taking away from its core functionality.

A progressively enhanced search component that provides a search box by default, and then voice support for devices that support voice recognition
Figure 5-3. A progressively enhanced search component that provides a search box by default, and then voice support for devices that support voice recognition

Examples of Postel’s law aren’t limited to interfaces—they can also be found in our processes. Take, for example, design systems, which are collections of reusable components and patterns guided by standards that define how they are used. The goal of a design system is to enable these components and patterns to be assembled to build any number of applications and to provide a framework for ensuring the extensibility of designs. These tools have proven incredibly valuable, enabling companies to scale design in a consistent manner across the organization (Figure 5-4). To create an effective design system, organizations must be liberal in terms of what is accepted: everything from design, content, and code to strategy, opinions, and criticism may be provided by a diverse team of contributors. In contrast, the output of the design system is conservative: guidelines, components, patterns, and principles must all be clear and purposeful.

Design systems have enabled design to scale in a manageable and consistent manner within a number of well-known companies—pictured here, from left to right, are Carbon Design System by IBM, Lightning Design System by Salesforce, and Polaris by Shopify (source: IBM, Salesforce, Shopify, 2020)
Figure 5-4. Design systems have enabled design to scale in a manageable and consistent manner within a number of well-known companies—pictured here, from left to right, are Carbon Design System by IBM, Lightning Design System by Salesforce, and Polaris by Shopify (source: IBM, Salesforce, Shopify, 2020)

Conclusion

Postel’s law can help us bridge the gap between human and machine. By designing systems that liberally accept variable human input and translate it into a structured, machine-friendly output, we transfer this burden away from users and therefore ensure a more human user experience. This allows us to build the products and services that are robust and adaptable to fit the needs of growing scale and complexity. While it also means there is an increased opportunity for things to go wrong, we can anticipate and plan for this in design and thus ensure our work is more resilient.

1 Jon Postel, “RFC 793: Transmission Control Protocol,” September 1981, https://www.rfc-editor.org/rfc/rfc793.

2 Ethan Marcotte, “Responsive Web Design,” A List Apart, May 25, 2010, https://alistapart.com/article/responsive-web-design.