12

Ideally, we would have different browsers supporting the same standards and same code producing the same result on all browsers.

That hasn't happened yet. What are the reasons why?

7
  • 1
    "Same code produces the same result on all browsers." - that's not what the standards are for. "Same code works predictably on all browsers" is closer.
    – tdammers
    Aug 23, 2011 at 11:35
  • 1
    I've been asking this question for years
    – billy.bob
    Aug 23, 2011 at 11:38
  • 1
    Unfortunately, no... I've been hoping for this for a long time though.
    – Corv1nus
    Aug 23, 2011 at 14:19
  • Only once the web as we know it is as dead as gopher. Aug 23, 2011 at 18:43
  • Because the W3C is an awfully-run organization that can't keep up with the pace of technology. That's pretty much it.
    – Jordan
    Aug 24, 2011 at 6:48

5 Answers 5

18

No, it's not realistic, because the specs are confusing at times and everyone understands something differently than others. We're just humans after all. There can only be the one true standard when there's only one vendor with one version of a product.

Joel has written an excellent article on this subject, called Martian Headsets.

I think I'll quote him here, as this is the best explanation on why we won't ever see this as long as different vendors are involved:

Those documents are super confusing. The specs are full of statements like “If a sibling block box (that does not float and is not absolutely positioned) follows the run-in box, the run-in box becomes the first inline box of the block box. A run-in cannot run in to a block that already starts with a run-in or that itself is a run-in.” Whenever I read things like that, I wonder how anyone correctly conforms to the spec.

Also, there's competition and evolution on the market. Take autocomplete-boxes for example. Every major browser has them already, but there's no standard defined. The W3C is just too slow and by the time the standard arrives, there're already 5 different implementations with different behaviours out there in the wild, that you need to support, too, if you want to be competitive. Another prime example for this problem is the embedding of videos.

That said: As long as you need to support various different browsers and environments, be prepared to make adjustments.

11

No, because W3C in many specifications give the responsibility of the implementation of somewhere to the UA implementers (browser implementers). Why I say that, because I usually write my articles directly from W3C specifications and see these cases. For example, W3C says that browsers should take user's consent about sharing their position (via Geolocation API), but it doesn't say how they should ask for it. This could result in different types of messages shown differently (popup, slide-down, etc.) in different browsers.

In general, we can say that:

As long as there are some pluralistic requirement implementation, consistency between browsers are hard to achieve.

We only can see consistent browsers when W3C imperatively tell browser implementers what to do.

2
  • Good one, Saeed =) +1
    – Falcon
    Aug 23, 2011 at 12:02
  • Thanks @Falcon. This was kind'of my question two. However, that one got many down-votes, and deleted :D. I think we all know that in the regards, IE is the most non-standard browser. Aug 23, 2011 at 17:33
7

Not going to happen in the form you describe.

However; if you code conservatively, it doesn't take much to write code that works reliably and predictably on all new browsers. We've already come a long way over the past decade - even IE currently implements a large subset of the W3C recommendations correctly, enough to actually make browser-agnostic websites.

Of course, if you want to do things that are not in the recommendations, or use features that are specced vaguely, or still implemented incorrectly (or not at all), then you're on your own.

1

It's extremely unlikely to happen soon -- in fact, I'd go so far as to say that when/if it does happen, it's strong sign that the world has moved on, and simply doesn't care much about web browsers any more.

The problem is fairly simple: most of the limit on writing new standards for even cooler things that browsers could do, is lack of (even reasonable) conformance with existing standards. Looking at that from a slightly different direction, the minute browsers conform with existing standards (or even come reasonably close to conforming), it's nearly certain that at least a few people are going to start thinking "But wouldn't it be cool if we could...", and they'll then do one of two things: they'll either implement their idea in one browser, and then work on standardizing their idea (almost inevitably before any other browser implements it), or they'll work at writing a standard for that behavior, even though no browser implements it yet.

The bottom line is that implementation of standards across browsers almost inevitably lags behind invention of new standards with which to conform. The only way the browsers can all catch up is if people quit writing/designing new things for browsers to do.

At the same time, I feel obliged to point out that more or less the reverse is also true: this is a constantly growing set of standards with which browsers conform ever more closely. It wasn't very long ago, that the best score any browser got on the Acid3 test was 93/100. As it happens, that's exactly the same score that IE currently gets...

0

Ideally, we would have different browsers supporting the same standards and same code producing the same result on all browsers.

That raises the question why we need different browsers. If all do basically the same thing then one browser will be enough for all. That would indeed be ideal. No more useless duplication of effort and no more browser-specific code. People finally could start building on a solid foundation.

Not the answer you're looking for? Browse other questions tagged or ask your own question.