Everybody’s always talking about standards and validation, but I think a lot of people don’t really understand what they are for. Many talk of standards and validation as if they are the same thing–and they’re really not.

Standards and validation were made for a reason, and that reason wasn’t bragging rights. A lot of people think just because their site validates and they have a cool little W3 button on their site they followed standards, and are hence better developers than those who’s sites don’t validate. They may have followed the rules of validation, but they may not have followed the idea of standards.

Here’s what the W3C says one of it’s main goals is:

The social value of the Web is that it enables human communication, commerce, and opportunities to share knowledge. One of W3C’s primary goals is to make these benefits available to all people, whatever their hardware, software, network infrastructure, native language, culture, geographical location, or physical or mental ability.

Standards were created in order to ensure accessible, cross-browser sites. Standards were well thought out; but, of course, Microsoft didn’t want to follow them and along came IE. And because Microsoft hasn’t given IE a good update in years, things like opacity can’t be done on IE6 and below using standard CSS (as it can on newer browsers). But it does recognize non-”standard” code that does the same thing. Just put it in your CSS file, and wallah! Will it validate? No. But does it follow the idea behind standards?

Validation does one thing and only one thing: It checks your code to see if you followed the letter of the W3C’s rules. It’s a program. It’s not human, it’s not a designer or a developer, and it doesn’t know what you are trying to achieve. What do you think really follows standards: A site that looks ugly in IE because opacity isn’t supported (even though it validates), or a site that won’t pass validation but works great in every browser? Remember that the same effect is allowed in standards, but not all browsers except the same way of achieving it.

Validators are great for debugging and checking generally to make sure you followed the standards. If you’ve got weird bugs, run your site through a validator and chances are that’s your problem right there. But there are times when in order to truly follow standards you must intentionally break from the hold of validation. This is not an excuse for laziness with your code, it’s a call to follow the meaning behind the standards rather than the rules of validation. Because until the world is perfect and all browsers follow standards, you’re going to have to code around bad browsers.

Follow the rules of validation, and you can have a pretty good site. Follow the ideas of validation, and you’ll have an even better one.