It never fails: No matter which browser you use, and how well you keep up with its updates, sooner or later you end up finding a website that doesn't quite work the right way. Even more frustratingly, bugs and defects always seem to crop up more often on sites that tend to push the limits of what can be done with a browser, with activities like printing, interactivity, and complex animations frequent targets of malfunctions and misfirings.
It's easy to blame Web developers for being lazy and allowing these problems to occur, but the reality is that the Web has become a complex, well, web of technologies and competing interests that are, sometimes, at odds with the goal of writing software that works across as many platforms as possible.
A fuzzy standard
Of these, the first two are "managed" by a non-profit organization called the World Wide Web Consortium, or W3C, that is responsible for defining the standards that--in theory--browser manufacturers and developers must follow in order for their products to be compatible with each other.
In practice, however, Web standards tend to trail de facto innovations introduced by the individual browsers, usually in response to the business needs of their makers. For example, Apple introduced a number of new features when it launched Safari for iOS, all aimed at making the company's flagship browser work well with its new touch interface; in typical Cupertino fashion, this was done in secrecy, leaving those responsible for the corresponding standards to catch up after the fact.
Thus, the specification behind the fifth incarnation of HTML is not expected to be finalized until 2014, and won't become a "Recommendation"--the status accorded by the W3C to official standards--until 2016. Yet HTML5, as it is commonly called, is already widely used by all major browsers and many, many websites, although support for HTML5 is implemented in different ways by each browser vendor.
A web of complexity
Internally, every browser uses a component called a rendering engine, which is responsible for transforming source code into the webpage you see. Each major vendor has developed its own incarnation, with the exception of Google and Apple, which have based their Chrome and Safari browsers, respectively, on WebKit, an open source rendering engine to which both companies contribute.
There are sometimes profound different differences in the way each engine decides to interpret and render a particular webpage. In fact, even Chrome and Safari, which are based on the same underlying software, often exhibit completely different behavior towards the same piece of code. And, to make matters even worse, it's not unusual for different versions of the same engine to be at odds with each other, so that, for example, Safari on OS X 10.6 may well render webpages in a different way from its 10.8 counterpart.
Sign up for CIO Asia eNewsletters.