Last week, Spanish Computer Science student Jago wrote in asking for my opinion to include in an assignment about best practices in web design. I thought he asked some truly excellent questions, so with his permission, I'm publishing his questions, along with my answers, here. Thanks, Jago!
1. If we believe that the thing that can keep people for longer in a website is its design, do you think it would be justifiable to lose in usability and accessibility if it is the only way to get a design that is attractive enough?
Excellent question. Often, when people talk about "web design", they are referring solely to the graphic design of the page, including colors, typefaces, and images. What is often forgotten is that usability and accessibility are inherently part of design. If you put up a gorgeous building where no one can find the entrance without some effort, you could call it art, but not good design. The same thing goes for websites. If it is difficult for many of your users to take action, like finding the information they want, purchasing goods they are looking for, or leaving feedback, your design has failed. The core of design is planning for utility. The aesthetics of a web site should be complimentary to it's ease of use, not something that takes away from usability.
My main point when talking about aesthetics vs. usability in web is this: no one notices good design, but everyone notices bad design. Good design *just works*, but bad design is obvious because a user has to fight with it. I borrowed this idea from here, which I would highly recommend as further reading for your project.
2. Do you believe there are current trends in web design? Which ones do you think could be highlighted?
Well, one thing I can say with confidence about graphics is that users and designers love gradients. :) Overall though, graphically, I think designers are all over the place. Web 2.0 is here, and it bought a very specific style with it for awhile, that I believe is now on the decline.
I think that designers and developers are just starting to take confidence in pushing the limits of web design, because Internet Explorer 6 is (slowly) on its way out. The easier it is to code cross-browser compliant code, the more interesting design is going to get, in terms of interactivity and responding to user preferences.
3. Do you think "good practices" are necessary in web design? Which one do you think is the most important and should be transmitted to beginners and enthusiasts?
I absolutely think that "good practices", or "best practices", are necessary in web design if you want to reach the widest possible audience, because people are surfing the web using a wide variety of browsers, platforms, and in some cases, devices other than a traditional desktop computer. My main principles include:
1. Coding to standards
This means including a doctype, doing your best to be sure that your HTML, CSS, and Javascript are all valid when run though a W3C validator, and attempting to always write semantically correct code.
2. Using a strong text based design
Whenever you can, use text instead of a graphic: for your site navigation, your page titles, and other elements where you might create a graphic just to represent some text. When you must use graphics, make sure to include an alt attribute, especially if your graphic is representing text.
3. Degrade gracefully.
The information on your site should be accessible without CSS, Javascript, or Flash. If you turn all those things off and the site is no longer usable, your site is not degrading gracefully. In a perfect world, all your users have up-to-date standards-compliant browsers, are surfing with javascript turned on, and have the flash plugin. Unfortunately, many users are surfing with older browsers, or with js turned off, or on a device that doesn't allow the flash plugin. To support as many users as possible, you must always make sure you are
degrading gracefully. Which brings me right into my next point:
4. Accept that the site isn't going to look the same everywhere.
Because the Internet is available to people with all kinds of devices, and different setups on those devices, one site is going to give you many different-looking results. The best you can do is code to standards and cross your fingers. And of course, test test test your site as many places as you can.
