Making URLs accessible

This article first appeared on IBM developerWorks.

Keep your novice and expert users happy with sensible naming schemes

Peter Seebach (crankyuser@seebs.plethora.net)

June 2001

Many Web pages, especially those created in authoring tools, have a tendency to treat URLs as impenetrable magic cookies. Users benefit when URLs are kept readable and understandable, and when the structure of a URL reflects the structure of the site. Even naive users may be helped by such a design. Here, Peter takes a look at why it's important to make URLs accessible, and offers some strategies for doing this effectively.

User-friendly vs. expert-friendly

One of the reasons people generally ignore URLs is that they are not the preferred interface. Most of the time, users are quite happy to simply click on relevant links and navigate using the pointers you provide. However, experienced users may want to bypass some of this; anything you can do to make this easier for them makes your site friendly to both novices and experts. Experienced users are often the first to get frustrated and go do something else...

Users are smarter than you think

A friend of mine was typing a URL into a browser, and her daughter corrected her: "No, no -- you have to put 'http' in front of it." The daughter was four years old. Users really do understand how URLs work, very quickly. They're not hard to grasp -- a lot of work went into making them easily understandable. So, take advantage of this. If a four-year-old can recognize a valid URL, you can probably safely assume that most of your user base can figure out a well-constructed URL.

Good URLs protect against bit rot

As a site ages and evolves, sometimes an old URL becomes invalid. This can be a problem for users who come into the site looking for data that has been moved or renamed; they will have a URL, but no navigational aids. At this point, many users will try, once or twice, to manually "correct" the URL. The better your site design, the easier this will be.

URLs should be readable

People should be able to look at a URL and have some idea of what it is intended to be. For instance, IBM's developerWorks pages have URLs that start out with "http://www-106.ibm.com/developerworks/." That's a good design. Articles have names that vaguely suggest the content of the article; directories have names that suggest the kinds of content they have. (For instance, this article is in a directory called "library" because it's part of a library of content the site serves out.)

Well-chosen directory names don't just help your Web designers coordinate; they help your users navigate. File names should inform the user of what's in the file.

URLs should be predictable

Let's say I'm looking through your investor relations pages, and I want to read some quarterly reports. If I find a file called "1999_Q1.html," I am likely to guess that a more recent report might be called "2000_Q2.html." I should be right. The use of patterns for names makes it easier for users to find the content they want. Why didn't I just look for the 2000 quarterly report to begin with? Maybe I did, and the search engine gave me a different report first. I should be able to navigate in more ways, not fewer.

If you provide readable, meaningful names, users will have an easier time navigating your site. If I am looking for information about your company, and the contact page is "/corp/contact.html," I can probably guess that other information about your company will be in "/corp"; I might even just strip the file name from the URL to look for the general index of corporate information. If you provide arbitrary and unreadable names, I can't navigate except using whatever features and buttons you thought I'd want. If you guessed wrong, I can't use your site very well at all.

URLs should be consistent

If most of the information about your company is in "/corp/*.html," you shouldn't have some of it in "/aboutus/*.html." Similar files should go in similar places. Don't switch between ".htm" and ".html." (If possible, favor ".html" -- there's no reason to make your site reflect a software limitation that was fixed six years ago.)

If you use "index.html" as the default index page for one directory, it should be the index page for every other directory, too. Don't use "home.html" in one directory and "index.html" in another.

If you use frames, try to give them meaningful names. "main.html" is uninformative -- what document is it the main page for? Users may want to see just one frame of your carefully constructed frame set; don't make it hard on them.

Making good URLs

The structure of a URL is a powerful and informative tool. It provides a way out of your navigational structure. If you're trying to force users into a certain view of your site, this won't help you -- but why would you try to do such a silly thing? URLs allow users to get around inconveniences or flaws in your design, without requiring you to redesign your site.

Here are four simple rules for naming files that will let users navigate your site more comfortably:

This week's action item: Explore your favorite Web site. Try manually editing URLs to see how often you can get somewhere. Look at directories (strip filenames from URLs) and see how useful the resulting pages are. For extra credit, try this with multiple sites.

Resources

About the author

author Peter Seebach has been having trouble navigating through badly designed pages since before frames and JavaScript existed. He continues to believe that, some day, pages will be designed to be usable, rather than being designed to look impressive. You can reach him at crankyuser@seebs.plethora.net <mailto:crankyuser@seebs.plethora.net>.