May 21, 2001

Push and pop on the web

Summary: push and pop is a mechanism that can make websites smarter, and give users more practical control of navigation.

Push and pop is a system of navigation that I first discovered in Apple's breakthrough HyperCard software.

HyperCard was an early authoring program for Macintosh computers that enabled users to create software prototypes, presentations, games, and hyperlinked documents. Hyperlinking could be used in a number of unique ways to create both experimental and concretely useful applications.

One of the needs that HyperCard's designers envisioned was one of remembering where a user had been in a document, and returning the user to that location after he had navigated and spent some time in another (likely unrelated) "section" of the document. The mechanism to fulfill this need was called "push and pop". The document designer could easily implement push and pop, so that if a user left a certain location in the document to do some other task, he could be returned to that location when the other task was finished. Thus, a user could interrupt his browsing to fill out a form, or do something else, but could easily get back to browsing.

How push and pop works

Push and pop is very simple. The user can "push" a certain location in the document, which tells the browsing software to remember that specific location. Later on, the user can tell the browser to "pop" back to the location (the "pushed" location). However, rather than having the user actually do the push and pop themselves (which is akin to creating a temporary bookmark, doing something on another page, returning to the bookmarked site, then deleting the bookmark), designers can build push and pop right into links.

The back button: simple push and pop

All web browsing software has a back button, which lets users go to the page viewed just before the current one being viewed. That can be called the simplest implementation of push and pop on the web. Every time a user leaves any page, the browser pushes the page. Then, when the user clicks on the back button, the browser pops back one page, returning the user to the previous location.

Why the web needs push and pop

Push and pop has some very practical applications that would make web browsing easier for everyone. As websites get more complicated, a lot of them make the browser's back button useless (either by using popups, frames, or elaborate scripting). Designers should be able to indicate what should be pushed (remembered by the browser) when users click on a link or otherwise leave a page, and the back button should pop to whatever the designer indicated should have been pushed.

Aside from being a remedy for disabled back buttons, push and pop can reduce wasted time and page loads. When users interrupt a task to use an inquiry form, or to learn more about something relevant (which frequently involves viewing several pages), rather than having to carefully maneuver back to their task-at-hand (by repeatedly clicking the back button, or other means), they should be able to simply pop back to the task.

Examples of push and pop use

Describing push and pop in general doesn't give people a good idea of what it means in terms of real usability. And so, here are a few examples of push and pop that would make web users' lives easier.

Bypassing "detector" pages and redirect pages

Many sites have detector pages, which check users' computers and web browsers for certain software, and send users to a compatible home page. However, when the user clicks the back button, the browser just goes back to that detector page, and again sends the user to the same compatible home page. Basically, the user is stuck in an endless loop, leading them back agian and again to the home page, unless the user can very quickly click the back button enough times to get out of the website before the detector page has a chance to send him back in.

Similarly, many sites have automatic redirect pages, which immediately move the user to another page for one reason or another. For instance, if a certain page has moved to another location, then the old page might be replaced by a redirect that sends users to the new location. Then, if the user clicks the back button, they will get stuck in the same endless loop that will continually force them to the new location. Only violent clicking of the back button will let them out.

The solution: each time the user leaves a web page, it should be pushed, unless the page is tagged by its designers as a "do not push" page. Detector pages and redirect pages would be such "do not push" pages. Rather than the back button returning users to the previously loaded page (as it does now), it should pop the user back to the pushed page. In that way, any useless pages, which would force the user into a confusing loop, can be skipped.

Returning users to where they came from

Frequently, users are viewing a page, and choose to register or log in to something, or fill out some kind of contact form. Once that's finished, they're usually shown a welcome page or something similar, and must navigate back to where they came from. In that way, their flow is interrupted, and they have to do a lot of extra work to get back to their task-at-hand.

The solution: when the user leaves any ordinary page, it should be pushed. Then, when the registration process, the log in process, or the form filling-out, is complete, the user should be popped back to where he came from.

An extension of this includes users who click on any kind of "more information" link, an "about" link, or a help link. Usually, when users venture out onto such a tangent, they are going to load several pages in pursuit of certain information (such as assistance on a particular topic). Rather than forcing them to navigate back to where they came from, there should be an obvious "done" button that pops users back to where they came from before they clicked on the tangential link.

User-controlled push and pop

Making websites smarter by implementing a push and pop-enabled back button, and letting designers tag useless pages as non-pushables, is the first step of using push and pop smoothly on the web. Second is user-controlled push and pop, or temporary bookmarking.

Web browser software should have a push button that users can click, which would make the browser remember the current specific location (instead of adding another bookmark to an already long and disorganized list). Then, users should be able to go off and do some browsing, and easily pop back to the page of interest. All of this should be done independently of the push and pop used by the back button.

User-controlled push and pop would be great for doing research of any kind: a specific list of relevant links, or search results, could be pushed, and any links followed extensively. No matter how far away from the list of links or search results the user got, he could easily pop back to that list and try another source of information.

Push and pop is coming

Push and pop may not be on the web in force, yet, but it will be. This essential mechanism will have a significant trickle-down effect; that is, first it will solve usability problems, and then it will reduce costs and save time not only for users, but for ISPs, companies, and developers.

Adam Baker is a user experience designer who's worked at Google, Apple, BlackBerry, and Marketcircle, and mentored startups in Vancouver.