Skip to page content or skip to Accesskey List.
Search evolt.org
evolt.org login: or register

Work

Main Page Content

Inside the evolt.org Rebuild: The HTML and CSS

Rated 4.51 (Ratings: 59) (Add your rating)

Log in to add a comment
(17 comments so far)

Want more?

 
Picture of aardvark

Adrian Roselli

Member info | Full bio

User since: December 13, 1998

Last login: September 01, 2006

Articles written: 48

It's been three months since evolt.org rolled out its new design. People have been asking what we did, why we did it, and how we did it. I'll try to address these questions in the context of the HTML, the CSS, and the overall site design. (Nobody seems to care where we did it, but I'll touch on that, too.)

What we did

In short, we created a site that is HTML 4.01 Transitional compliant, is CSS Level 1 compliant, conforms to Level A of the Web Content Accessibility Guidelines 1.0, and passes accessibility checkpoints as detailed by CAST's Bobby validator. Any browser and any user can use this site, and with the browser archive at our disposal, we feel pretty confident making that statement.

Why we did it

We wanted to create an example of how it is possible to build attractive, usable, accessible, and compliant sites. We wanted to stop using <font> tags, and all the other deprecated or non-standard horrors to which we've grown accustomed over the years. We wanted to have a simple style guide for our users who submit articles. We wanted to make it easier to maintain the site. We no longer wanted to leave users out in the cold, enabling them instead to use the site regardless of their system. And ultimately, we want our users to customize the site to suit their needs. You may ask why we didn't go straight to XHTML, and that is a good question. The answer was pretty simple for us — not all the browsers out there can handle it. Internet Explorer 5.0 for the Mac will even display it as source code if the mood strikes it.

Who we did it for

Let's not kid ourselves. Nothing is completely altruistic. We all had our reasons, but luckily they all had the benefit of helping out the users. We, as volunteers who maintain evolt.org, got to flex our coding muscles on a project that we feel has a lot of weight in the community. We got to finally test the theory that a site can be built to be compliant, accessible, and attractive, all without those meddling clients.

Where we did it

Offices, apartments, and houses in Buffalo, Kopavogur, Milwaukee, Portland, Edinburgh, Adelaide, Anchorage, and all the places in between. There is no evolt.org home office, we are distributed as haphazardly as the Internet itself. Who ever said telecommuting doesn't work?

Yeah, yeah, yeah, enough of that. How'd you do it?

I'm glad you asked.

The design

Original evolt.org site design concept We were lucky on this one. Isaac had whipped up a design with which we had all fallen in love, even before we had decided to make a standards-compliant site. Luckily, that design lended itself well to being repurposed into where we were heading.

The code

We wanted to make sure that everyone could use the site. As I've mentioned, accessibility was one way to achieve that. However, we also wanted to allow those users who don't have the latest browsers to still use the site. We try to be an inclusive community, so why would we want to exclude anyone at our site? As such, we had to make some decisions about how we would code the layout. We dumped CSS-P pretty early on. Yes, users of older browsers could just see a stack of <div>s in the corner of their browser, but what fun would that be? Using tables for layout seemed to be the most sensible thing to do, while still allowing us to keep the content and style independent. Given that, visit this site on any older browser, and you'll see the same old black tab in the corner, and the same layout of the content. No, it won't be in color, but at least you can still see it. I refer you to the screen captures presented below.

Since the style and the content are independent, we found it was extremely easy to create printer-friendly pages. A very simple header, some changes to the CSS units, and flow the content in. All articles are printable, even if not all of them should be printed (I know for a fact most of mine are dry reading).

The styles can be changed quickly as well. Just load a new style sheet, and it's a whole new look. But I talk about that more later on. Once we knew that we wanted to allow different styles for different sections or users, we realized we had to create the black tab at the top of the page with aliased edges. The curves may not appear terribly smooth on a white background, but at the very least there aren't any ugly halos around the curves, either.

Splitting the page into three stacked tables allows the browser to render it progressively, first rendering the tab, then the content cell, then the black footer. This does have some drawbacks, however (see the caveats below).

We wanted to limit the number of tags allowed on the site by authors. This way we could do our best to enforce standards in our articles, and ensure the CSS applies to every article equally. The trick was deciding on what to use. For instance, the debate came up about <i> vs. <em>. We chose to go with <em> since it implies context and structure, and not just style. One of the benefits is that a screen reader will know to pronounce that differently. As another example, we chose to use <strong> over <b>, <code> over <tt>, etc.

You may also wonder why our code blocks are displayed within <textarea> tags. That question is not quite so easy. Since the site is made up of stacked tables, and since the primary site navigation is on the right, any long lines of code would push the navigation off the screen. So, in an effort to make the blocks of code easy to view, without compromising the site design, we chose to use the <textarea>. It isn't the best use, but it is valid HTML, and doesn't cut out any users. An added bonus is that for newer browsers, putting the focus on the <textarea>, whether to scroll or highlight, the contents of the entire <textarea> are automagically selected and ready for copying to the user's clipboard. The advantage for authors is that they need only enter those blocks of code into <pre> tags, and some highly trained gnomes re-code it for them on the server.

For all instances of form elements on the site (the login forms, the rating radio buttons, etc.), we've made every effort to use the accessibility features introduced in HTML 4.01. This includes the use of the attributes 'tabindex, 'accesskey,' 'id,' as well as the <label> tag and even the rare use of <fieldset> and other elements. The advantages to these tags are that form elements can act more like form elements in the user's operating system. For example, clicking the text next to a radio button or a checkbox will select that radio button or checkbox, using a key combination with the accesskey of a form element will give that field focus, tabbing through the form can happen in a logical order, and other benefits. Older browsers just ignore these tags and attributes, without interrupting their performance in any way.

Screen caps from various browsers

evolt.org home page and article page as viewed in Lynx 2.7

The evolt.org home page and an article page as viewed in Lynx 2.7. As you can see, it's a few screens high, but all the content is accessible, and the table structure is logically ordered to allow for ease of use for Lynx users, and by association, screen-readers and other text browsers.

evolt.org home page as viewed in Lynx for Linux

The evolt.org home page as viewed in Lynx for Linux. Looks just as nice as in the MS Windows version of Lynx.

evolt.org article page as viewed in MacLynx

An article page on evolt.org as viewed in MacLynx. Noticing a trend?

evolt.org home page as viewed in Netscape Navigator 3.04

The evolt.org home page as viewed in Netscape Navigator 3.04. All the page layout matches that seen by the latest browsers. It degrades very well to older browsers while still retaining the site identity. All features of the site are still available, even if the browser doesn't support the JavaScript in the form fields.

evolt.org article page as viewed in iCab for Mac

An evolt.org article page as viewed in iCab for Mac. iCab is a very nice standards-compliant browser. It cannot handle the CSS that colors the page, fonts, and form elements, but it does display the correct typefaces and sizes.

evolt.org home page as viewed in Mozilla 0.8

The evolt.org home page as viewed in Mozilla 0.8, probably the most standards-compliant browser out there.

evolt.org article page as viewed in Netscape 6.01

An evolt.org article page as viewed in Netscape 6.01, built on the Mozilla engine, with all the bloat we've come to love and expect.

evolt.org home page as viewed in Opera 5.0

The evolt.org home page as viewed in Opera 5.0, also considered one of the most standards-compliant browsers available.

evolt.org article page as viewed in Opera 5.0

An evolt.org article page as viewed in Opera 5.0

The caveats

Not everyone who posts an article or a comment can be guaranteed to use good coding practices, despite our best attempts to clean their code. That being said, not all article pages will validate, especially the older articles which we haven't yet converted.

Some browsers experience an unfortunate offset with the black tab; it sits a few pixels too high and off to the side a bit. We did everything we could, really, but we just couldn't get 100% conformance and still be standards-compliant. This is most noticeable in comments where somebody posts a very long URL and it pushes the content table beyond the width of the browser window. It's just something we've chosen to accept.

Down the road

One of the features the site is able to support, but doesn't just yet (hey, we're volunteers with day jobs... er...) is user-defined styles. Since the colors and font sizing are independent of the HTML, all we have to do to change the look of the site is link to a different CSS file. This means that if the text is too small, or doesn't have enough contrast, you'll be able to adjust it to a comfortable reading level. As a bit of a teaser, the three images below are screen captures of the exact same page, with a pointer to a different style sheet. You'll mostly notice only color differences. I like the font size.

evolt.org with the 'heaven' style evolt.org with the 'hell' style evolt.org with the 'classic' style, for the die-hard fans

Do you think you're special?

Yes, but that's because my mom told me that while growing up. I think it was because she dropped me on my head. But you've heard that, and seen my incessant stuttering anyway...

But we're not the only ones who've taken this step. Another web community, A List Apart, staged its own Valentine's Day Massacre of all its non-standard HTML and rolled out a new version of its site. However, they took a slightly different approach.

Joining it to the Web Standards Project's browser upgrade initiative, they've taken it a step further. They've dumped the use of tables for layout in favor of a two-column layout driven by CSS. Why would they do this? Well, I'll leave it to them to explain, they do a much better job. They even have a great article going into the sordid details of how they trotted those poor old HTML tags out into the back alley to put a bullet in their bracket. Is their approach better? No, just different. In their case, they want to show developers it can be done, and try to promote the adoption of newer browsers. In evolt's case, we want to show it can be done, and work in all browsers. These different goals result in a good contrast of ways to implement a standards-based site.

Have you seen others coding to standards? I know there are some others out there, but I'd love to hear from you (use the comment form below) if you've seen other sites who've taken this step.

Whose fault is all this?

There's a long list of people who had a hand in this, and I've listed them below. They all deserve a lot of credit for sticking with this redesign for over six months when they could have been drinking milkshakes and trolling the list.

  • aardvark, the initial coding, validating, and browser testing. You can blame him (me) for much of the HTML and CSS.
  • djc, helping to integrate all this with the ColdFusion templates and data sources.
  • .jeff, for integrating some handy JavaScript and beating the hell out of ColdFusion to get it to work with our design.
  • isaac, for the initial design and helping ensure we stayed true to it.
  • mccreath, for updating the styles, the HTML, and working it into ColdFusion
  • elfur, also for updating the styles, the HTML, and working it into ColdFusion
  • martinb, for testing and pushing compliance.
  • marlene, for general harassing us into doing something.
  • rudy, for making me defend the structural appropriateness of practically every tag used.
  • thesite, evolt's mailing list dedicated to discussing all the development on the site, past, present, and future. Lots of good people there who threw ideas on the table and helped us test.

A founder of evolt.org, Adrian Roselli (aardvark) is the Senior Usability Engineer at Algonquin Studios, located in Buffalo, New York.

Adrian has years of experience in graphic design, web design and multimedia design, as well as extensive experience in internet commerce and interface design and usability. He has been developing for the World Wide Web since its inception, and working the design field since 1993. Adrian is a founding member, board member, and writer to evolt.org. In addition, Adrian sits on the Digital Media Advisory Committee for a local SUNY college and a local private college, as well as the board for a local charter school.

You can see his personal portfolio at http://roselli.org/.

Adrian authored the usability case study for evolt.org in Usability: The Site Speaks for Itself, published by glasshaus. He has written three chapters for the book Professional Web Graphics for Non Designers, also published by glasshaus. Adrian also managed to get a couple chapters written (and published) for The Web Professional's Handbook before glasshaus went under. They were really quite good. You should have bought more of the books.

While you're reading, a friend of mine has just launched her site, and you should take a look. Kristen Kos, a lovely and talented actress, now has her own site with her acting resume and some new head shots.

Critical Mass

Submitted by Calum on February 20, 2001 - 12:50.

I truly hope that this, and the ALA article help a few more deeziners to realise that WWW standards do not require boring, grey pages with no images. I like WaSP's latest campaign, but the recent /. thread and K5 discussion highlight concerns over ditching the Nav4 and IE3 workarounds.

Both approaches aim for a semantic, device independent WWW without giving up author presentation suggestions. This article epitomises the spirit of HTML 4 Transitional, where we can move towards structural HTML without making NetExploder 4.x crash. The comment on the ease of style changes is a good example for those who haven't yet discovered that well structured pages can reduce maintenance. Thanks, this is great. -- ciml

"The Semantic Web is an attempt, largely, to map large quantities of existing data onto a common language so that the data can be analysed in ways never dreamed of by its creators"
- Tim B-L 1998

login or register to post comments

good to see independent sites leading the way!

Submitted by erika on February 21, 2001 - 16:15.

"You may ask why we didn't go straight to XHTML, and that is a good question. The answer was pretty simple for us — not all the browsers out there can handle it. Internet Explorer 5.0 for the Mac will even display it as source code if the mood strikes it."

The above bit of information is news to me. I'm aware that IE5 Mac is not equal on all systems, but I've not heard of nor seen what you are describing. Details? References?

The current version of my site: seastorm.com was coded with compliant XHTML 1.0 transitional last summer (July 2000). On a Mac.

Anyway, I think it is extremely important that sites directed toward web developers make the best use of the technologies at hand. Otherwise, how can we take them seriously?

It is good to see that independent sites like Evolt and ALA are leading the way here. I wonder when the commercial developer sites are going to take the plunge and kill their <FONT> tags.

BTW, I think Evolt's functionality is really nice, too.

login or register to post comments

Common love off fine print

Submitted by Wolf on February 21, 2001 - 19:26.

As a newcomer to webdesign, I spend a lot off time figuring out the basics you've probably handled a while ago. Thats how I came across ALA and your site. I appreciate the well chosen colours off both sites, which both have the feeling off tranquility. After a former career of 20 years off jewellery-design, I've had my share of staring a the details. Isn't there a way off using more space for youre font size, rather then resorting to small print. I'm a believer in the more is less theory and have allways designed my jewellery that way. But 2px more on a 17inch 1024 screen makes a hell of a difference. (I'll be damned, if I put it on 800 though) You're venture is enevitable, using the standards this way is the furture, I hope! Thanks for the inspiration

login or register to post comments

xHTML & ie5/Mac

Submitted by MartinB on February 22, 2001 - 04:27.

My site, like Erica's, is xHTML compliant and was built on a Mac. IE5 was the 1st thing I tested it on.

login or register to post comments

XHTML Compatibility

Submitted by Calum on February 22, 2001 - 04:45.

erika:
aardvark:

"You may ask why we didn't go straight to XHTML, and that is a good question. The answer was pretty simple for us — not all the browsers out there can handle it. Internet Explorer 5.0 for the Mac will even display it as source code if the mood strikes it."

The above bit of information is news to me. I'm aware that IE5 Mac is not equal on all systems, but I've not heard of nor seen what you are describing. Details? References? [...]

I _think_ that the comment refers to the XML declaration (eg. <?xml version="1.0" encoding="UTF-8"?>), which can cause problems in IE4.5 Mac and Mozilla (not sure which versions). However, From the XML Specification:

Note that in this example, the XML declaration is included. An XML declaration like the one above is not required in all XML documents. XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16.

If you use UTF-8 (including pure ASCII) then you don't need the XML declaration. Your Seastorm Design site (which is very nice, BTW) omits the optional declaration and is fine.

The other problem comes if you want to use an HTML 4.01 parser (eg. validator) just by changing or overriding the DTD. An element such as <BR /> is equivalent to <BR>> in HTML 4 (not the extra '>') because the '/' ends the element. That's OK (from a validation standpoint), but the extra character would be illegal inside the HEAD (where you can't have straight text). Therefore TITLE, LINK and META tags cannot be XHTML and HTML4.01 safe.

A further question might be "why switch to authoring in XHTML"? As valid HTML can be transformed with little trouble, and as the extensions to XHTML are a long way from being mainstream, I don't see any real advantage over HTML 4.01 right now. -- ciml

login or register to post comments

Separate stylesheets

Submitted by MartinB on April 2, 2001 - 09:00.

If you want to see different stylesheets used in anger, our browser archive, mailing list self-admin and member hosting info all use the same basic HTML skeleton template as the main site, just subtely different stylesheets.

login or register to post comments

COLORS?

Submitted by ucahg on April 13, 2001 - 07:10.

I know that color loses some of the uniformity of the site, but I think it should be allowed in the code tags. Color coded codes are easier to interpret and understand. Plus it makes explaining the code a lot easier. If the people who run this site think we made the wrong choices with color, then they can change it. I am not talking about putting the whole article in orange, but color coding the codes that we make.

login or register to post comments

Colors possible...

Submitted by aardvark on April 13, 2001 - 07:29.

For now, we've disallowed color because we have plans for the future. The plans involve allowing users to define their own stylesheets, enabling you as a user to color the <code> tags (and all others) to your liking. This doesn't mean we won't think about it (I already am) for the existing default stylesheet, but that's the reason we don't do it just yet.

login or register to post comments

Great Article!

Submitted by CTMiller on September 14, 2001 - 20:00.

I'm new to evolt.org, but I have to say that this article was one of the best looks at upgrading a site that I have come across. It's nice to see the reason people choose to use what they do. Thanks!

login or register to post comments

Great Article

Submitted by mpgnet on November 12, 2001 - 16:43.

I just wanted to say thanks. I appreciate this article. It have really been inspired to take my 30 or so web sites to a new level. If you have any ideas of a good place to start on learning what works where please let me know.

THANKS

login or register to post comments

Netscape 3.04

Submitted by julianz on December 3, 2001 - 21:49.

Great job all round, but weirdly enough your screenshot from Netscape 3.04/Win isn't showing the strange grey background effects that I'm seeing in my copy - it's like the background of the centre column is grey, but the background underneath the text itself is white. Quite hard to read through! Site looks great in everything else though.

login or register to post comments

Excellent article!

Submitted by StOne on December 16, 2001 - 12:13.

This is hardly the first time I've read it, because it's one of my all-time favorites, one of the best I've ever seen, but I'm just getting around to commenting. Evolt isn't just a goldmine of valuable info, it's the motherlode, I think.
I learn a lot from View Source, and just swiped your stylesheet to study also. :)
(Thought I'd link to it so others can grab it more easily than I did, by viewing source and plugging the 'link rel' into the browser address bar)

login or register to post comments

still lots of white space IN THE CODE, guys

Submitted by techwatcher on April 21, 2002 - 23:00.

I was never a graphic designer. Strange but true: my background for "designing" Web pages is as a consulting documentation specialist for a couple of decades, and before that academic training in human communication. So, I don't use a WYSIWYG editor, and the structural vs. formatting argument is a no-brainer for me.

I use an ASCII-based editor which is also a full-featured word processing package (XyWrite) to write my pages. Perhaps I'm the only one who does... Is this why everyone else has those multiple spaces or tabs to space out their code, and I don't?

The XHTML standard clearly states that the spaces/tabs former graphic designers seem to use to help them separate out bits of their code will NOT be ignored by XHTML. May I recommend HTML-Kit, which has a plug-in allowing a last-minute "beautify my code" option to put in the tabs/spaces -- meaning they can also be stripped before you upload the page? It's free, and it's pretty wonderful.

I've just started using it myself (after I initially code my pages) to ease the validation (tag-editing) tasks. If I didn't hate using a mouse so much, and didn't already have all the authoring tools I need built within my customized XyWrite, I'd even consider using HTML-Kit for authoring pages.

login or register to post comments

Spaces in the code

Submitted by MartinB on April 22, 2002 - 03:49.

I think that this would be more of a problem if (a) we were coding to XHTML and (b) the XHTML standard actually viewed extra spacing as a problem.

As it is, I tend to see better code indenting from hand-coders who need to maintain their code, rather than visual editors. As far as people who rely on visual editors 100% (ie they only edit via that WYSIWYG interface) are concerned, the fact that the editor produces indented code is entirely irrelevant.

login or register to post comments

I maintain all my coding "by hand"

Submitted by techwatcher on April 22, 2002 - 08:02.

... that doesn't mean I need indenting to see what I'm doing. I don't use WYSIWYG, and abhore packages that just dump more and more code. Ever since 1996 I've been building Web pages with a customized ASCII-based word processor -- so I don't need the indenting, because I have a real, full-featured, non-mousing search & replace function, among other things.

My customized XyWrite lets me write faster than anyone else (and focus on WRITING), and then after I get a good, approved template, I just adjust a little program I wrote using its "extended programming language" to generate as many similar pages as I like, starting with plain text files as input.

When I decided to switch to XHTML, I wrote a program to automate most of the conversion process, and updated my other programs to write XHTML tags, and convert text with them. I actually like switching back and forth from browser to raw HTML because it gives me a good second view of the text, helping me spot parts that cry out for better editing.

I'm not saying everyone should use XyWrite, or be a programmer. But there's HTML-Kit, also not a WYSIWYG editor, but also terrific when used to switch back and forth from browser to HTML views. And, as plug-ins, you can HTML-Tidy for different DTD's -- including XHTML! No need for indenting, really; it just adds bits to the filesize.

login or register to post comments

Use This Experience for Web App

Submitted by nvrau on July 24, 2002 - 00:42.

Now, if you guys could only take this experience and develop an application we all could use for other projects... Then we could provide cost effective site's for all our clients without leaving anyone out. Any plans?!?!?!?

login or register to post comments

evolt.org Source Code

Submitted by aardvark on July 24, 2002 - 00:49.

The evolt.org source code has been out there as OSS for a while now, although I couldn't tell you how up-to-date it is. You can find it at SourceForge.

login or register to post comments

The access keys for this page are: ALT (Control on a Mac) plus:

evolt.orgEvolt.org is an all-volunteer resource for web developers made up of a discussion list, a browser archive, and member-submitted articles. This article is the property of its author, please do not redistribute or use elsewhere without checking with the author.