« A Quick Comment on Comments | Main | Enhancing eBay's reputation system »

February 18, 2006

A Lesson in Website User Interface Design

As websites become more loaded with content, and website technologies such as Flash and AJAX emulate traditional desktop application functionality (such as drag-and-drop), designing interfaces that are usable by most people is increasingly challenging.

One reason for this is the age-old mantra "if it can be done..." (and you know the rest). For some situations (like migrating popular desktop applications directly to the Web, which I believe we will see in 2006), this makes sense. If people are familar with Word on the desktop, Word on the Web may not be that different.

Secondly, websites are often designed by people who are familiar with programs which have complicated interfaces (e.g. Photoshop, Dreamweaver, Flash). These designers are, understandably, advanced computer users, and they are at risk of becoming unaware of the much more elementary level of many common web users.

Thirdly, interactivity and new technology give a sense of sophistication and perceived maturity to websites, especially corporate ones. No one wants basic HTML anymore -- even Javascript and DHTML is getting old-school. Designers want slick transitions, dynamic loading without refreshing the entire page, buttons, sliders, contextual menus, rotating 3D objects, and new interface elements still left up to the imagination.

Finally, the simple argument is "why not?" Software developers can use such advanced interface elements, so if the only bottleneck is bandwidth and technology (a problem which is increasingly disappearing), why can't web designers do it too? The goal of this post is to show not only why they shouldn't do it, but why they can't do it.

Web designers should not design sophisticated (worse yet, complicated) web interfaces because of one important aspect: interface proliferation. How many people use more than 10 desktop programs on a daily basis? How many actually use even five? At work, i use Lotus Notes, Firefox, Visio, Word, Powerpoint, Excel, and AIM. This is seven, and i'm in an IT-related field. My mother, from talks i've had with her, uses about three at work, including software customized to her area of business. My dad uses five or less. And this goes on day after day, the three of us (and millions of other people just like us) using those 10 or less programs. We become familar with them, and we learn them over time.

Now, what does it really mean to "use" a website? We talk about browsing, surfing, going to a website. In any case, know it or not, people are getting information from those sites. And they need to understand the site, at some basic level, to find that information. How many website interfaces do users use in a given day? 10, 20, 30? While we use those sites for what we want, we encounter a new interface for each site. As websites have developed over the years, layouts such as the 'inverted L' and horizontal top navigation have become popular. They have allowed users to educatedly guess that important navigation is along the top and/or the side, and that body content is usually in the middle.

But what about when sites' interfaces become even more complicated (such as those that can be made using Flash and AJAX)? I'm not saying Flash and AJAX websites are inevitably bad, but when content is hidden behind rotating menus, when a user can stretch, spin, rotate, slide, grab, drag, and otherwise click anywhere on a number of non-standard elements, prior knowledge cannot be directly applied to these sites. Instead, users must figure out how to use each one. The result? Usability crashes, and users either cannot find important content or turn away from the site entirely. For sites selling or advertising items on their site for purchase, having users easily find information on their site is critical for their bottom line.

This is why successful designers not only shouldn't do this, but they can't. Users not only will become annoyed and frustrated, they won't even be able to use parts of the site at all. Only if users spend significant amounts of time on a site (like they do with a desktop application) will they learn where content is 'hidden' and how interface objects work. But users do not spend hours every day with websites -- most spend a few precious minutes at each one. Even if there is a group of experienced users, websites inevitably have the large group of people that have rarely or never before visited the site. This group cannot be expected to learn a complicated interface, and in fact, they won't. Designers must know this, or else they will be left wondering why so few people are visiting parts of their sites.

======

P.S. Comment are open now (for 30 days after each post). Let me know what you think about the above opinion.

Posted by MaTT at February 18, 2006 10:45 PM