Nov 3rd, 2008
I’ve been working with Michelle and Ariane Gold for about two years helping them maintain their website, ButchAndHarold.com. Michelle and Ariane market a line of peel-and-stick artware on their Yahoo Store-based website. Pretty nifty stuff. They have recently expanded their product line to include peel-and-stick photo frames and mini-stickers and, so, the website needed updating. New pages had to be created for the new products and their URLs had to be linked into the navigation menu. We decided to change the top level “Collection” menu button to “Shop” and make it a drop-menu showing the three product lines.
The BUTCH & harold website is a traditional HTML website. It’s nicely designed but unlike the blogs I’ve been working on recently, there are no templates or includes for global page elements. There are just a lot of HTML files. I didn’t build this site, but the Web designer/programmer who originally constructed it did a good job writing clean, modern code, making It easy to add content and make minor layout changes within the existing architecture. However, s/he did use some tricks with the navigation menu that gave me headaches trying to implement the drop-menu without rewriting the entire thing—and make it work in all browsers.
Navigation menus have evolved since the early days of the Web. At first, websites were only able to feature a list of links; either vertically, as a list, or horizontally in a table. A link changed color when the mouse pointer hovered over it but all links on the page had the same color behavior. Designers wanting more choice than the common available fonts (e.g: Times, Helvetica and Courier) replaced the text with small images using designer fonts. However, unlike linked text, a linked image provides no visual feedback when you hover over it other than the mouse pointer changing from an arrow to a hand.
Plus, there was the additional cost of complexity—If you had ten navigation links, that meant having 20 images to manage. Changing image-based navigation links involved expensive software tools, such as: Photoshop, Illustrator, DreamWeaver and ImageReady, and took much more time. This limited the ability of the client to explore and develop their online concepts from the bottom up as they learned the technology of Web publishing. It robbed them of the freedom to play with ideas.
But, Wait! It’s even worse than that. There are two other problems related to the 21st Century Web (aka: Web 2.0.) First, robots can’t read images. That is, the specialized automated tools that Google, Yahoo, and others use to visit, catalog and rank sites can’t interpret the content inside an image. From the robots perspective, a lot of information about the structure and flow of a Web site is invisible when you use graphic images for navigation links. Now let’s face it, Google has become indispensable to the way we use the Internet to market our products and services and you’re at a competitive disadvantage if your site isn’t robot-friendly.
The second problem with graphical navigational elements has to do with complexity again. You’ve heard it said that “Content is king.” What this means is that a static site, where the content hardly changes over time loses out to sites where fresh content is dynamically generated tailored to the customer’s needs. Publishing content on a regular schedule requires good content management systems. It’s also a lot easier if the overall structure of the site and its component HTML elements are as simple as possible.
This brings us back to BUTCH & harold where the original designer tried to have it both ways with the navigation menu—using text lables for the robots to read and pretty images with mouseOver effects for humans. It’s all done in the CSS. The navigation menu is an unordered list displayed horizontally with a unique on and off background images assigned to each list item. The images have a nice font (Bliss) for the labels and the “on” or hover states have the B&H logo above them. To keep the actual text out of sight for humans but still readable by robots, the designer set the text indentation in the CSS to -5000 pixels. The robots don’t care; they don’t bother reading a website’s CSS, but for humans, this moves the text off the left side of the monitor to somewhere in the next room.
Michelle and Ariane didn’t want the clutter or expense of new graphics for the drop-menu items; they’d be satisfied with text in the same color as the labels and a close match to the font. Making the drop-menu items appear in the right place meant setting the text-indent for the nested list to +5000 pixels to counteract the original setting that made the top level invisible. This worked well for Firefox and IE7 but not for Safari and, try as I might, I could not get the positioning right for all three.
Wow, I make it sound simple but it was anything but. It took a lot of trial and error and I ended up rewriting almost all of the CSS to eliminate conflicts between the list styles used for the menus and the list styles used everywhere else.
In conclusion, I notice that about 1/5 of you are still using IE6 to browse the Web.* Please Stop! Make my life easier and your computing more secure and enjoyable. Upgrade to IE7 or download Firefox, Safari, Opera or one of the two new browsers: Flock or Chrome.