Features

Features > Design Features > Web Apps

A newspaper can’t cram every story in on A1. You can’t cram in every detail on the homepage. That’s where a method called “progressive disclosure” comes in and our guest advisor Robert Hoekman Jr. goes into all the details — inside, of course.

Progressive disclosure is a method of revealing the details of a feature on an on-demand basis, so that the basic elements of the feature appear by default while the less used or more advanced elements are hidden. These elements are usually just a click or two away, so they remain readily available, but they’re hidden by default to avoid interface clutter for the majority of users who do not need them.

This method is extremely effective for surfacing the right features in an application and hiding the wrong ones. Simply put, progressive disclosure is one of the most effective ways to clean up your application and improve user experiences without sacrificing functionality.

In other words, it’s the solution to one of the software’ industry’s biggest problems. The continuous addition of new features to applications invariably results in a more complicated interface, which in turn makes the user experience less desirable. Progressive disclosure gives us a way to keep building new features without complicating the interface.

In this article, we’ll explore progressive disclosure by looking at long-established conventions from the world of newspaper design, and then look at how to apply the principle to the web.

The Fine Art of Newspaper Design

Newspapers, as you know, have been around for hundreds of years. In this time, newspaper publishers have learned to do quite a few things that seem to make, well, perfect sense. Newspaper designs are obvious, but only because the people who put them together made them obvious.

The actual design of a newspaper varies wildly from one to the next, but newspapers far and wide adhere to a basic conventions.

First, they offer clear, concise headlines that enable readers to quickly scan a page to find whatever is most interesting.

Headlines serve as the first step in accessing more information. Once you choose a headline that looks interesting, you move on to the article itself.

CNN.com

And the article is written using the inverted pyramid method.

The Inverted Pyramid

The inverted pyramid is a style of presentation in which the most important and all-encompassing details are presented first and the rest of the story is told through progressively less significant, but more detailed pieces of the story. Like an inverted pyramid, it starts broad and gets progressively narrower. It’s the way news stories are written.

Journalists everywhere subscribe to this methodology by beginning each story with facts that explain the who, what, when, where, and why of the story. This creates a broad, big picture view of the story so readers can decide whether or not to keep going.

Each subsequent paragraph then offers increasingly specific about the story. Although the additional information helps the reader round out his sense of what happened in the story, each new piece of information decreases in importance.

This is done for a couple of key reasons. First, it enables readers to get the most important information right up front so she can quickly decide whether or not to keep reading. Second, it gives layout designers a way out of sticky design situations. If an article is too long to fit on a single page, but not long enough to warrant a second page, the least important pieces of information - located at the end of the article - can be trimmed to adjust its length. Using the inverted pyramid structure means the article can be made shorter or longer as needed.

This isn’t so much a problem on the web, but take a look at that first reason again. It enables readers to get the most important information up front.

Most newspaper articles start on one page and end on another. Because it’s a printed media, space is limited, so long articles are broken up into multiple parts. The first part can have a “Continued on A14” statement added to the end of it, for example, and the second part can resume with a “Continued from A1”, very much like a “Read more …” link on a web page.

Simple, right? Let’s recap.

First, the opening sentences of a news story are the most important, which is why they’re at the beginning. Second, anything beyond the critical elements can be relegated to another page.

Instead of cramming everything possible into a single space, newspaper designers split things up into logical chunks. And journalists continue the idea by presenting the most important things from each story first.

You can scan a page to find a headline, read the first few paragraphs of an article, and move on without getting bogged down in details you don’t need and that aren’t essential to the story.

This is the essence of progressive disclosure.

Progressive Disclosure on the Web

So how does all this apply to the web?

It applies to the design of individual features, and the architecture of the site or application as a whole. It gives us a way to surface the essential and most-used features and tuck the less-used features away behind a click.

In Google Calendar, for example, you can click an item listed in the calendar view to see the high-level details of an event.

Google Calendar, calendar view

To see more details, you simply click “edit event details”. This takes you to another page that contains all the information available about the event.

Google Calendar, event details

Here, you can see the guest list, comments that have been made, and reminder options. You started with just a few details and progressively accessed more information by clicking a link.

On this details page is another progressive disclosure style design. To add guests to an event, you need to click “Add guests”.

Google Calendar, Guest invitation

Once clicked, a text area is displayed so you can enter the email addresses of people who need to attend the event.

Google Calendar, expanded guest invitation

Why wait? Why not show the text area when the page loads instead of waiting for the user to click a link?

This is done so that only the most critical features are shown by default. Not everyone uses the calendar to organize multi-person events, and not every event requires a guest list. Since this feature is used less often than most of the others, it is hidden by default so that the interface can remain clean and simple while still offering a ton of useful functionality.

GrandCentral (a call and messaging management system) also makes use of progressive disclosure, and does so in a very simple way that you’ve probably seen a number of times on the web already. It applies progressive disclosure through a design pattern known as inline expand to reveal more information about a phone message.

By default, messages in the Inbox are shown in a list, and each item contains a small Play button.

Grand Central Inbox

When you click the Play button, the area is expanded and a new interface is revealed that enables you to play the message and learn more about the caller.

Grand Central, playing message

Functionality is again hidden to keep the interface simple by default. You can quickly glance at the list of messages to see what’s there without the full set of details for each call getting in the way. If you decide to listen to a particular message, you see those details in an on-demand fashion.

Seeing all of the details for all the messages would be overwhelming. Seeing a quick list and expanding select messages to see more is much friendlier.

Thanks - you’ve changed my life

As you can see, applying the concept of progressive disclosure is usually a simple matter of … OK, it’s not that simple.

You have to figure out which screen elements (features or content) are critical and which ones aren’t, and then figure out how to hide the non-critical elements while still providing quick access to them. But once you have that down, you can stop worrying about how to work in all those fancy new features you’ve been wanting to build.

Well, you can worry less anyway.

Kidding aside, don’t view this as an excuse to start cramming everything you can imagine into your application. No matter how well you master progressive disclosure, you still want to show restraint when it comes to adding new features.

More complex software has a funny way of resulting in more complex interfaces. Remember to show some restraint.

The Future of Web Apps returns to Miami on 23 and 24 Feb 2009. The awesome speaker lineup includes Michael Arrington, Daniel Burka, Jason Fried, Joel Spolsky, and Gary Vaynerchuk. Book now as there are a limited number of conference passes for just $200 (normally $395) - be very quick as they won't last long!

17 Responses to “Read more … about progressive disclosure”

  1. Nate Klaiber says

    Great article on subject matter that is often abused on the web. I see so many places where people try to cram everything into the front page - only to create on overwhelming interface that doesn’t serve any purpose well. They sacrifice white space to fit in every piece of their important content, making it harder to really scan and find what you are looking for.

    I think progressive disclosure is important for many interfaces, but I also think many people use it without much thought. They simply truncate the first 50 words of a description then slap on a ‘read more’ link at the end. Sometimes these first 50 words simply aren’t enough to entice a reader to engace. What about writing good summaries for the initial chunk of text? This seems to be exactly what you are describing - the summary being engaging and broad, while the ‘read more’ contains all of the details.

    I also think it depends on the weight/location of the items on the page, a headline might have the majority of the article on the page, with a small continuation, while a small callout box could have a brief summary with the entire story on the destination page. I see this as a trend with some developer sites, as well.

  2. Kevin says

    Great article. UI is more difficult than most people realize. What to show, when to show it, and how, varies from site to site not only on the design but what also is being displayed. I’ve seen a lot of newer websites implement it well, and others not so well.

  3. Eli Ferrall says

    Couple some decent progressive disclosure with some well executed quite structure, and and you’ve got something dreamy… mmmmm.

  4. Stefan says

    Very good method to keep complex and confusing stuff out of the application. This way you can make application both easy to use and feature rich at the same time. I use this approach wherever it is possible.

  5. Ukas lenker - uke 38 hos IAllenkelhet - Fagblogg om brukervennlighet skrevet av NetLife Research says

    […] Bruk “progressive disclosure” og omvendt pyramid […]

  6. Colyn says

    On Flickr, they have a nifty search button that doubles as a drop down selection.
    http://www.flickr.com/photos/tags/vitamin/clusters/
    (in the top-right of the page)

    Would you consider that a form of progressive disclosure?

  7. Jason Pamental says

    Another use for the parallel is the structuring of the content itself! I think that ‘good writing for the web’ should generally follow similar guidelines. People will generally skim a page while browsing in much the same manner that they skim a newspaper page. While it may be difficult to get the site content manager to write a good concise 50-word summary to go with every page, if they structure the writing better in the first place, the first 50 words (or whatever shows up on the home or other top-level page with a ‘read more’ link) is much more likely to be meaningful.

    Always difficult to find that balance between what is best for the usability and what is most likely to be done by those who maintain the content!

    Thanks for the great article though - I like applying that principle to both interface AND content.

    Jason

  8. boris says

    Look this site

    http://www.ooyes.net

  9. am Design » Baabelin kirjasto » Artikkelikatsaus: Syyskuu 2007 says

    […] Robert Hoekman Jr tutustuttaa lukijansa Vitamin Featuresin artikkelissa vuorovaikutussuunnittelun käsitteeseen progressive disclosure, jonka johdannaisia ovat muun muassa oppimiskäyrä sekä eräs televisiovisailu. Metodin soveltamisesta webmaailmaan voit lukea artikkelista Read more … about progressive disclosure. […]

  10. Garçon aka Martin Kopta » Blog Archive » links for 2007-12-19 says

    […] Vitamin Features » Read more … about progressive disclosure Progressive disclosure is a method of revealing the details of a feature on an on-demand basis, so that the basic elements of the feature appear by default while the less used or more advanced elements are hidden. (tags: webdesign) […]

  11. Helmut says

    Its Great !
    Thanks from Austria
    Helmut

    http://www.14-karat.net/oldtimer-rallye-mille-miglia.php

  12. Chu Chiang says

    Hello,

    Thanks, for the nice writeup.
    I designed the GrandCentral inbox interface you’re using there in your example. Thanks for putting down on paper or screen exactly what I set to achieve in that design. By the way, I was reading your book while I was working on the interface at the time too!

    Chu

  13. picture of Robert Hoekman Jr Robert Hoekman, Jr. says

    Chu -

    Wow—that’s incredible! I wrote a book you were reading at the time you designed it, and now I’ve used it as an example in an article. Fantastic

    Nice work, by the way. I use GrandCentral all the time and love it. Thanks for writing, and keep up the great work!

  14. Helmut says

    fine site

    http://www.oldtimer-termine.net/oldtimer/modelle/mercedes-benz.php

  15. vero says

    Hy! Very beautiful Site!
    Kind regards from Austria
    vero

  16. Web Site Design and SEO says

    very nice post. Incredibly done. Keep it up. Your site provides many iseful info.I will surely come back to post some more.

  17. Sam says

    Great article. UI is more difficult than most people realize.

    http://www.weine-oesterreich.at

Leave a Reply

Basic HTML (<strong>, <em>, <a>, etc.) is allowed in your comments. Please be respectful and keep your comments on-topic. If we think you're being offensive for no reason, we'll delete your comment.

Comments RSS