[Skip top navbar]

Andrew Gregory's Web Pages

View from Mt Beadell, 25°32'1"S 125°16'37"E

-

Compatibility


Introduction

Opera has a bit of a bad reputation as having poor compatibility with many web sites. Since December 2002 I've investigated many sites (usually in response to queries on Opera's Community Forums) and found that in most cases Opera was doing exactly what the site was telling it to do!

My interest in Opera's compatibility with web sites started when I downloaded Opera 7 (around December 2002) and found it didn't work with my internet banking. After some investigation I found four issues. Two were Opera problems that Opera fixed within a month or two. The other two were "browser sniffing" issues - where the site does different things depending on the browser that's visiting. That's not something Opera can easily work around. It's really up to the site to fix their scripts to do the right thing.

Relatively few people have the expertise (or inclination) to figure out why a site doesn't work. However, I've been doing web development for nearly ten years, so I have a bit of knowledge in this area. In the articles linked below, I've tried to explain the various "compatibility" issues as simply as possible.

I also have some related commentary on my Opera Gmail page. In short, only one line of Gmail code needed to be changed to work around an Opera issue.


Browser Sniffing

White-listing

The most common "compatibility" problem facing Opera is Javascript browser sniffers that upon detection of Opera, instruct Opera to stop using the script. In other words the site has created a "white-list" of those browsers known to work. A browser not on that list is thrown out or ignored, even if it might actually work!

Contrast that with "black-listing" where browsers are assumed to work, and only browsers known to have problems are treated differently.

Navigation Menus

Menu scripts are notorious for using white-list techniques to handle the various different browsers.

The good thing about menu scripts is that most sites don't write their own, but use scripts developed by a third party. That third party often keeps updating and debugging their scripts on a regular basis to keep up with browser developments.

The bad thing about menu scripts is that once a site sets up the script, they rarely ever update it to the latest versions available from the developer. Often the scripts actually in use are two-three years old. I've seen some older than five years!

2005-02-27: Good News

The second beta of Opera's version 8 (beta 2) includes a per-site browser identification file that is automatically updated once a week from Opera Software. This will definitely improve the end-user experience, however, for a significantly improved experience the system needs to include ways for Opera to hide itself, as some sites black-list Opera unnecessarily. The beta system does not support that.

2005-03-27: Better News

The third beta has now included browser cloaking! It looks like the final Opera 8 will be able to pretend it's Mozilla or IE without revealing that it's really Opera.


"Just Like IE" - The Impossible Dream

The most common request to developers of non-Internet Explorer browsers is that their browsers should be able to handle pages "Just like IE". Unfortunately, such support is virtually impossible.


Testing

As my "Just Like IE" article above concluded, testing is the only way a web designer can produce sites that are cross-browser friendly.

This article also shows that Opera can be trapped by being compatible with both IE's quirks and the W3C standards. Indeed, it shows that for the problem site in question, the only things Opera Software can do to fix the problem is to either break standards compliance, or reduce IE compatibility! Of course, there are far better solutions than those, the thing being it's not up to Opera Software to provide them (it's up to the site, or maybe the Mozilla browser).


-