This is one of several posts I originally made in 2005. Some of the specifics have changed, including the focus of my work from "some design and a some programming" to "full time web development". In general their message remains valid, so they're worth keeping around.

Obligatory Standards

Everyone who develops web sites and does any kind of electronic design should be talking about standards. Better yet, they should be conversant in them. After all, there are plenty of web sites evangelizing them, but not so many using them. This is my obligatory post about the subject, and is intended for both customers and other web professionals.

So what exactly are web standards anyway?

The dry, academic answer: Web standards are methods developed by the World Wide Web Consortium (W3C) for marking up pages using HTML and CSS. JavaScript can also be used to add additional functionality to a page.

The answer you’re probably looking for: web standards the professional way to ensure a web site is available to the most users in a format they find most convenient to use.

What this means for a site

A web site that is standards compliant will work in the usual browsers like Internet Explorer, Opera, and Mozilla Firefox. Furthermore, sites that adhere to standards tend to also work well in “non traditional” browsing devices such as PDA’s and cell phones. Standards-compliant sites also render in devices such as screen readers that visually impaired individuals use.

In other words, you want a standards-compliant site. If you’re a designer, you need to know the standards inside and out and make sure that everything you produce is compliant.

A Little History

In the beginning there was HTML. HTML is a markup language used to tell a browser how to display text in an orderly fashion. Then along came a few graphics to make things look a bit better. Early browsers did not have the ability to display complex layouts. Eventually, though, as browsers added more features, designers figured out new and complex ways to lay out web pages, usually using tables.

Sophisticated table-based layouts were all the rage in the late 1990’s and into the new century. They displayed well in most browsers, but usually ended up in web pages that had lots of graphics associated with them and large file sizes. Additionally, the code was a mish-mash of content (the information) and layout (the decorative stuff). This made maintenance a real nightmare, especially when changing designs.

Along came Cascading Style Sheets (CSS), which would allow the content (HTML) to be separated form the layout, making site maintenance much easier. Unfortunately, CSS and web standards in general got off to a rocky start, mostly thanks to poor and buggy support in many browsers. In the last few years, browser support has caught up quite a bit with the standards, and their use is increasing every day. In fact, designing a web site “the old way” is now inconceivable to me.

The Good News

Your browser probably knows this, but non-compliant web page code will usually display in a browser anyway, albeit unpredictably. It probably always will display since standards, while not a new concept, are only recently becoming the preferred method of web site development. non-compliant web pages also tend to vary wildly in appearance and will likely limit the browsers and computers your site will work on.

Well formed and properly marked up code is pretty much guaranteed to render in any popular browser, and many of the less popular ones as well. Granted, there are differences between browsers and devices, but there will be a much greater degree of predictability and stability for properly written code. And the good news is that writing good (X)HTML, and CSS takes no more time than writing sloppy code.

A dirty little secret is that most browsers are not fully standards compliant. In other words, properly-written code can have slightly unpredictable results on some browsers. Most professional web designers know these limitations and can easily work around them. And more good news: as newer version of browsers are released, they come more into full standards compliance, enhancing compatibility and expanding what your pages can do.

One Huge Advantage

In the bad old days of designing with tables

If you entirely separate content and styling by using CSS, you have the ability to re-style the site completely for different media, such as the screen (default for browsers), printing and even smaller screens like cell phones and PDAs. One advantage to your client is that you don’t need different code bases for different media. One code base, many style sheets. Maintainability is also enhanced, since the style sheet can be changed having to touch the HTML and vice-versa.

Proper code also enhances accessibility. Granted, disabled users are probably a very small percentage of your site’s visitors, but why exclude them when inclusion is so easy? In fact, inclusion should be an integral part of any site, not an accidental side-effect.

Personally…

To me, it’s about having pride in my work and doing it the right way to begin with. It doesn’t take any more effort to write correct code than it does to write sloppy code. This means that I can provide far more value to my customers for the same investment.

If you are hiring a designer, at the very least, make sure they will provide you with standards-compliant code and will stand behind it by proving validation.