Web Standards?
Just what the hell are we talking about when we say Web Standards? Who are these self-appointed, ivory tower inhabiting, smug-faced elitists telling us what’s acceptable and what’s a development sin? Why should we give half a damn about some stupid spec?
First Some History
Back in the Wild West days of the web the definition of HTML was constantly evolving. New elements were being proposed, discussed, rejected, and agreed upon. The pioneers of this language were passionate and dedicated to developing a solid, open standard everyone could live with.
As the web started picking up steam a number of browsers surfaced. Before long, one gained a vast majority of the market share: Netscape. After enjoying such success, the people behind Netscape began interacting less with the community dedicated to HTML standards, and started implementing their own HTML elements and attributes. This is how I imagine a typical conversation between Tim Berners-Lee and Netscape went down:
- TBL: Hey guys, what’s up with this bgcolor attribute?
- N: Pretty sweet, huh?
- TBL: Guys, this isn’t what our language was meant to do. It was meant to link documents containing useful data together. We’re not putting this in our standard.
- N: Oh really? We have a better idea. How about you suck on it, then put it in your standard.
- TBL: Excuse me?
- N: What are you going to do? We’re the most used browser. Put it in or we’ll beat you up. Nerd.
- TBL: …Fine.
Even then, 13 years ago, a consortium of web professionals were bickering over the inclusion of stylistic elements in markup. Of course, around this time Microsoft started shipping Windows 95 and including Internet Explorer. These two browser leaders were both guilty of creating their own proprietary tags and features. Some pages would break if viewed in the wrong browser, forcing either the user to switch browsers, or the developer to make two versions (or one version containing neutral elements). The idea was that if one browser created a feature that rocked the world, the others would have to similarly implement that feature, or start losing market share to the “superior” browser. That was the idea.
Hello Standards
The competition might seem like a good idea at first glance. Maybe it was. Maybe it drove both browser vendors and standards groups forward. But what went wrong?
For one, the browsers didn’t always give us proprietary features that advanced HTML. Some of them just plain hurt. The original Netscape included the abomination known as the blink element. Microsoft, not wanting to do be outdone in the steaming pile of crap department, concocted the marquee. So what? Look at this in Firefox. Enough said.
Second, the Internet became too big. There came to be too much content and too many content producers for everyone to have to play a big game of tug-o-war. Sites became like TV channels. Except you would have to either buy two TVs or networks would have to broadcast two feeds. There was just way too much overhead, and the Internet collective wouldn’t have it. The web needed a well defined language for developers to code and browser vendors to render.
Back To The Future Present
So without getting into the gritty details of consortium past and present, here is where we stand. The W3C is the working group that oversees today's HTML and CSS specification. It has been a full 10 years since the CSS2 specification was released and 9 since HTML 4.01. These remain today the de facto standards for web development, and the latest full release of the most widely used browser today (Internet Explorer) still does not fully support the CSS2 specification. Other browsers do anything from only slightly better to an immaculate job.
And you know what? We're getting close. It's been a slow road but we are now far beyond the point where grotesque hacks are necessary to get pages to render in a usable fashion across all major browsers. If you've ever developed a page using tables for layouts, this is one such hack. The HTML 3.2 specification included tables before the world had fully shaped out CSS, and some asshat took it upon himself to discover that tables could be used to achieve relatively complex layouts across browsers without too much trouble. A decade later we're still paying the price. Today this trick is no longer needed. If you can help it, don’t become part of the problem.
Comments
None.