What are web standards?

Working in web development, you hear the word “standards” a lot. And I mean, a lot. Internet Explorer is lambasted for not supporting standards, Opera holds itself up as the only browser that truly tries to fully implement standards, and web developers around the world chide each other for not following standards. The funny thing is, most people truly don’t understand what standards are or how they become so.

Let’s start with the #1 myth on the web: the W3C creates standards. This is completely false. The W3C’s stated goal is to create standards but it cannot *actually *create them. Why is that? Because standards are, quite simply, anything that the majority of people decide to do. Web standards, therefore, are anything that majority of browser vendors decide to follow. The W3C can make recommendations as to what should be done but it has no authority to force implementation. If the W3C could actually create standards, then we’d not still be waiting around for proper browser implementations of XHTML, which was finalized in 1999. The W3C has no power to force browser vendors to do anything; anyone can decide to do whatever they want. Even vendors who sit on the W3C often don’t adhere to the specifications (and all of the browser vendors do).

So if I and my buddies got together this weekend and came up with an idea for a cool JavaScript feature, we’d be in the same spot as the W3C. If we actually convinced Mozilla, Apple, Microsoft, and Opera to implement the feature, then we would have created a new standard…the same as the W3C. It doesn’t take an official stamp or seal to make something a standard, it just takes implementation by two or more browsers.

The W3C has been traditionally bad at creating standards. What they are incredibly good at is documenting and normalizing what has already been implemented in browsers. Such activity led to the creation of HTML 4 and DOM Level 1 based mostly on innovations included in Internet Explorer 4. Yes, folks, Microsoft was more influential over the creation of these standards than any other browser vendor because they went ahead and innovated without waiting for someone to tell them it was okay.

In fact, many of Microsoft’s innovations have become standards on their own. The innerHTML property. The XMLHttpRequest object. Rich text editing via designMode. No browser would dare implement anything without supporting these; that’s what makes them standards. The W3C is now going through the process of formalizing these in the HTML 5 specification and the XMLHttpRequest specification.

It’s become fashionable to blame Microsoft for not following standards, but one could argue that if the most dominant browser on the planet isn’t implementing something, it may not actually be a standard. Internet Explorer has, as a conservative estimate, 80% market share worldwide. That means only 20% of Internet users are using “standards-compliant” browsers. Is something really a standard when only 20% of the market’s users use it? Ponder that for a bit.

The truth is that Microsoft has merely followed the lead of the most rebellious company that ever touched the web: Netscape. Netscape was the one to first say, “we’re gonna do whatever we want,” and introduced the <blink> tag. History has shown that the web moves forward when browser vendors start innovating. And Microsoft isn’t the only one that does this. Mozilla implemented non-standard features such as XSLTProcessor; Safari implemented the <canvas> tag; Opera implemented the <event-source> tag and the window.opera object. Yet no one complains about them going out on their own and innovating…it’s only Microsoft that’s the bad guy. Why is that?

As Alex Russell has pointed out numerous times, innovation doesn’t belong in the hands of the W3C. True innovation, innovation that can move the web forward, needs to come from the browser vendors. Let the free market decide what features are most desirable in web browsers and then ask the W3C to document that; these are true standards. Waiting for the epic HTML 5 specification to get done in 2022 won’t push the web forward. Getting smart guys like Alex working on browsers does.

Comments

  1. Paul Bakaus

    That's a post I could have written as well - I 100% agree. Thanks for shouting it out.

    I always found it strange why Microsoft was always the target - Webkit stepped up recently, and did all the cool stuff in CSS, if Microsoft would have done that, people would go mad.

  2. Sérgio Diniz

    Hi..

    So basically we ( Web-Developers ) will always be screwed over and over..

    I agree with you, that browser vendor's are actually who implements standards..no doubt about that..

    I think the biggest problem is IE6, this is the one where i run into more troubles...all other browser's are kind of "safe" to work with...

    I think that as soon IE6 disappears from our browser list, we will all be a lot happier...no doubt about that...

    Greetings from Portugal,
    Sérgio Diniz

    PS: I don't know if "screwed" is a lot to say here or not, but me my guest to change it to something else less aggressive...

  3. daveL

    An interesting rant but you missed the biggest issue. IE has consistently incorrectly implemented the standards set by the W3C (even when they helped dictate them) and worse yet failed to properly implement half the stuff they brought to the table!

    The following properties or methods all have at least one bug in them or are not even supported in IE, if not several.

    .getElementById()
    .getElementsByTagName()
    .getElementsByName()
    .innerHTML
    .setAttribute()
    .getAttribute()
    .addEventListener()
    window.onresize()
    .onchange()
    ...
    plus you can't set events on options or style them, or disable them... in IE6 you can't even put a tooltip on a select or any of the sub options...

    If IE actually had a stable API to work with that remotely matched the specs we wouldn't be complaining but as someone that has personally found and tracked well over 300 bugs in IE I can tell you that it is woefully un-friendly to developers.

    I would take Firefox, Chrome, Safari or Opera over IE any day of the week. In fact if I had to code exclusively for IE - I Would Quit on the spot.

    Check out this site for just a few of the bugs in IE: (ps not my site, just one of the many sites tracking IE bugs)

    http://webbugtrack.blogspot...

  4. Nicholas C. Zakas

    @Dave - Actually, you've missed the point of my post. The point isn't to say that IE is good, the point is that web standards aren't just based on what the W3C says. The fact is that most of what you've listed as issues in IE were implemented before specs existed describing their implementation. Can you really blame Microsoft for that?

    As a note to everyone: I know that most people hate IE. This post is not about whether IE is good or bad for the web, it's about how a lot of people wrongly assume that the W3C is the single source of truth for all of the web and that anything they publish is considered a standard.

  5. hax

    Hey, you missed CSS, which is created by W3C.

    In my opinion, you just shoot on a wrong target too. The point is not about who create standards, but interoperability. M$ always ignore this and treat us (web developers) as their slave until they feel the pressure from Firefox. That's why we hate it.

  6. dm3

    yes, IE was the first who implemented CSS (in IE3), before it was officially approved by W3C.
    One improvement MS should make is autoupdate of their browser. from IE6 to IE7, from IE7 to IE8. Imagine how easy it could be to develop only for IE8, Firefox, Safari, and all Webkitbased browsers, read about upcoming features and actually think of their implementation... is it only my wish? Let's make a protest march against MSIE 6 and make a headlines! would YOU go? :) Or let's write a virus which updates IE :)
    It makes no sense to develop CSS4, improve the web, as long CSS2 is not fully implemented.
    MS now is the only company who brakes innovation by leaving their old browsers on market, where is the old MS who was running ahead of everyone, forgetting to ask permission of W3C?

Understanding JavaScript Promises E-book Cover

Demystify JavaScript promises with the e-book that explains not just concepts, but also real-world uses of promises.

Download the Free E-book!

The community edition of Understanding JavaScript Promises is a free download that arrives in minutes.