My Philosophy

I take my work seriously. In all web work that I do, I write clean, reusable, valid code, and strive to be as accessibility- and usability-conscious as possible.

Standards

We are surrounded by standards. Most times, we take them for granted. Your keyboard is a standard. The placement of those letter keys will be the same no matter what keyboard you purchase. That USB mouse you might be using? That USB connector is standard too. When you’re driving, traffic lights and traffic signs are standards. Traffic lights themselves, in fact, are two standards: the colors, and the placement of those colors. The concept of society is formed by a long list of standards. Standards are the foundations which support modern life.

Web standards are just as integral to the success of the internet as a mature and reliable medium as the set of standards we use every day that make our lives easier. The internet is all about information and serving customers, and web standards are an important tool to serve our customers better.

Valid Code

Writing valid code is an important technical baseline. However, following the philosophy of web standards requires more than just valid code. One can easily write a page in valid markup that doesn’t follow any of the core principles of web standards. Web standards are built on the idea of separation, also known as the Web Standards Trinity. The Trinity consists of three different points of separation: structure, presentation, and behavior. Essentially, XHTML is used for structure, CSS is used for presentation, and JavaScript is used for behavior. There are other things to take into consideration such as unobtrusive JavaScript, WAI and Section 508, semantics, well-formed CSS, and browser compatibility. In order to meet all of these things and remain productive, one must have an intimate understanding of all these principles. I have worked hard to achieve this goal.

Accessibility

Buildings that have stairs also have ramps. Many sites are coded properly, but they don’t have ramps built in. The implications of this vary depending on the nature of a site, but the bottom line is that your information isn’t getting out to as many audiences as it should be. I always follow WAI and Section 508 guidelines to the best of any given project’s possibility.

There is also a myth that accessible sites are ugly. This is entirely false. In the hands of a skilled professional, the appearance of content shouldn’t change at all. Achieving accessibility and usability goals typically adds an insignificant amount of time onto a project, but the extra minds your message will be reaching more than justifies the cost.

JavaScript

JavaScript is an extremely useful technology. It is also extremely unreliable. JavaScript code will only work if the user’s browser will process it. Therefore, you cannot rely on the JavaScript to work. In most JavaScript that exists today, not being able to process JavaScript will render core functionality useless be it filling out a form, logging into a website, or viewing important information. In a worst-case scenario, the page will not load for the user at all.

Unobtrusive JavaScript is built around a central principle: JavaScript is the icing. Information is the cake. While that user may not experience all the bells and whistles of the JavaScript-enabled version of your content, they can at least experience a more basic format of your content. In this way, your content will be reaching more people.

Browser Compatibility

In a perfect world, every page would render the same way — pixel for pixel — in every browser. While in the last 5 years browsers have made large strides toward this goal, unfortunately it has not been achieved. Achieving browser compatibility is probably the most important and most frustrating aspect of web development. Thankfully, today most of the quirks have been worked out, and fixes exist to even the most troublesome problems. The challenges are knowing the fixes and being able to implement them.

Additionally, I understand why the fixes are required — and most of the time, circumvent the issue all-together by avoiding the bugs in the first place. I seldom need references to achieve compatibility, and that is an invaluable trait. Because circumvention is not always possible, there are bound to be a few "hacks" needed to get some sites up to professional quality. I know of many of these "hacks" and I also know the safest, most responsible ways of using them.

Learning

I watched as standards-based development became the underdog in a fight for tables versus CSS layout. Having walked the path that all others once did, I vowed to promote and teach others how to be successful with CSS and accessibility. Much of my professional life has been spent not only producing this material, but teaching it to others willing to learn — if not the techniques themselves, the ideas behind why they should be used. I do this because I not only code web standards; I believe in them. I believe they make the web a better place. I believe with enough time and effort, anyone can learn to use them and benefit from them.

Many others have been essential to my learning, including Dave Shea, Douglas Bowman, Eric Meyer, Dan Cederholm, Peter-Paul Koch, Molly E. Holzschlag, Anne van Kesteren, Tantek Çelik, Jeremy Keith, and D. Keith Robinson. Also A List Apart, Digital Web Magazine, and Position is Everything. A special thanks goes out to FrontPage for teaching me exactly what not to do.