<ralphdahlgren.com>
<ralphdahlgren.com>
Most everyone who has ever worked in a web development environment has heard references to "web standards". What are they? Why use standards? Who uses standards or, more importantly, who doesn't use them? I'll present a brief and somewhat sarcastic explanation of these questions here.
What are web standards?
Good question. It seems that in most industries, sooner or later, a group of members of the same profession get together in an effort to agree on a group of ideals to which they should all conform - hence the term "standards". This group of members is sometimes defined as a "consortium". This list of standards is basically just a gentleman's, or gentlewoman's, agreement to abide by a given set of rules. They are not legally bound to do so, however.
Web standards is a very broad range of ideals which span the realm of how web browsers should work, how code should be written and handled by browsers, how graphics are handled, how the entire email process is handled, and on and on. These ideals are based on RFC's, the abbreviation for "Request For Comments", which are submitted and refined by members of the consortium. At some point the consortium agrees on a given draft of a particular RFC, at which point they are all supposed to make attempts to follow this particular set if ideals, or standards, until such time that they are further revised into a new standard.
Why use standards?
Have you ever played a game with a one group of friends, based on a set of rules, and then played the same game with another group who played by a different set of rules? If so, it was because their "standards" differed. In some games there are consequences for breaking the rules, like the loss of a turn, monetary fine, ejection from the game, etc. But with standards there are no real penalties, just ridicule from peers or the public for not conforming to standards which are not enforcible. In the software world one would be led to assume that if you don't follow the standards people would tend to not use your product. In reality this is an entirely unrealistic belief.
To put another spin on this let's look at the automotive industry. Every automobile you have ever seen has had the accelerator pedal to the right and the brake pedal to the left, and if there is a clutch pedal it is to the left of the brake. That's the standard configuration. However, to the best of my knowledge, there is no law that dictates that this configuration must be adhered to by all manufacturers. It would probably be very difficult to gain any market share if your new production vehicle switched things around, however, because the lack of standardization causes operation to be awkward at best and, more importantly, dangerous to the general public. But you could shrug off the possible consequences and defy the standards if you wanted to and sell your goofy-footed vehicle because, after all, it's only a standard and not an enforcible law.
Who uses standards or, more importantly, who doesn't use them?
As far as compliance with standards, and how soon the compliance should take place, is more or less an honor system. A consortium is just a bunch of people who, through their becoming a participating member, agrees to comply with the most recent set of standards, or RFC Draft, during future software development.
Now, as far as web developers are concerned, this doesn't mean that we all have to adhere to the most recent set of standards, but we should all be in compliance with "some" standard. With regard to (X)HTML that means HTML 4.01 Transitional, XHTML 1.0 Transitional or Strict, XHTML 1.1, or one of the other DOCTYPE standards. Most developers pick the one that works best for their individual programming style. Picking and sticking with a DOCTYPE standard is the key here. As an example, this site is written to be XHTML 1.1 compliant because that's how I like to write my code. If a newer DOCTYPE standard comes along, I'll conform to that one for any new development.
So, who doesn't comply with standards? You'd be surprised! Visit any Yahoo page and then check to see if it validates. Sure, it renders well in virtually all all browsers, but the code isn't standards compliant. Start checking the popular sites you visit and you'll be surprised at how few actually validate to any standards. The number of errors and warnings is quite shocking for some pages I've visited and I'm sure you will be, too.
So why do I even bother trying to make my sites standards compliant when many of the consortium members don't even adhere to their own standards? Because it's the right thing to do! Sure, I could be just as slather-assed as the over-paid programmers who wretch out the crappy code we all view every day, but I have more pride in my work than that. To me it's more than just getting the work done so I can get a paycheck. When you lose the ideal of having pride in your work it becomes "just a job" and one bad habit leads to another until you slather-ass your way into the unemployment line. Unfortunately, or perhaps fortunately, those of us who are self-employed aren't entitled to unemployment benefits when we can no longer attract new business and put food on our tables so we make sure we don't fall into that rut. Well, those of us who have managed to stay in the industry for more than a few years has. All I can say is that I won't feel the least bit sorry for any unemployed programmer who's having a hard time affording steak and potatoes on their unemployment benefit card in the grocery line when I'm buying hot dogs and Mac-n-Cheese with my hard-earned cash. When the bubble bursts it hurts all the way down, not just at the bottom - if there is a bottom!
Microsoft is probably the biggest culprit when it comes to inadequate browser standards, not to mention others. Unfortunately, due to the fact that they think the sun rises and falls on Redmond Washington, and they would have to correct more applications than just Internet Explorer, they are reluctant to put forth the proper amount of effort to institute change. In their minds they have become the de facto standard based on shear numbers. While some may agree with this stance, I'm sure that if more end users were aware of the fact that Microsoft disregards more standards than anyone else, even though they are members of many software consortium's, and they expect everyone else to make adjustments into account for their short-falls, that they would voice their opinions in favor of having them conform to the standards. Unfortunately, even some of those people will be of the short-sighted opinion that he who makes the most money must be right and will therefore be hesitant to speak out.
So, what does all of this mean, if anything? Is there a point I'm trying to make or is this just a rant for the sake of ranting? Of course there is a point! Standards and compliance don't just happen, it takes effort to come up with the original ideas, or standards, or RFC's, or whatever, and it takes effort to integrate them into our everyday lives. The longer anyone waits, the more stuck in their ways they will be and the harder it will be to make the change to doing things right. Start today rather than waiting too long, as, apparently, Microsoft has! And start griping to the other big players in the internet realm that they need to start complying with the very standards they have agreed to by becoming members of the consortium. And it's not always just coding standards either. Browser standards, or the lack thereof, is part of the reason why some sites are purposely coded to throw browsers into quirks mode. I'll leave it up to you to do the research on who belongs to what consortium and what RFC's are out there - I have my own research to do.
NUFF SAID