Skip navigation.

A Blog From Behind the Trenches

Attack of the Bugs

Posts tagged with "compatibility"

Compatibility: Site patching explained

, ,

Over at the Core team blog, Hallvord has posted an article detailing how site patching works in Opera.

There are many interesting details there, such as other browsers having to resort to various types of patches or workaround for incompatible sites. So if you thought Opera was the only browser struggling with incompatible sites, think again!

You can also read about advantages and disadvantages to our site patching approach, and various causes for site patching, including working around current and past bugs in Opera.

Site compatibility: No content for you!

, ,

An interesting type of "browser discrimination" can be found at linie888.dk. This was first reported as a bug through our bug tracking system, and I decided to look into the problem. I opened my source viewer and braced myself for a lengthy session of code analysis.

Read more...

Site compatibility: When your standards support is too good...

, ,

There's an interesting thread in the Open the Web & Take Action forum which talks about excessive whitespace over at Microsoft's TechNet forums. This works fine in Firefox and obviously IE, but you can see that Opera's display of the page leaves something to be desired.

Read more...

Site compatibility: Accidental discrimination, and getting a free ride

, ,

I have previously covered the issue of site compatibility in Opera, and how there are several reasons why a site might fail. One of the main problems I come across when looking into bug reports dealing with site compatibility is sites that break in Opera due to browser sniffing. Either the designer has a script which singles out Opera and sends it broken code, or he assumes that only one or two browsers exist while other browsers are simply ignored and never even given anything useful to work with.

Today, I took care of a bug report I had to hand over to our Open the Web team because it used browser sniffing and assumed that there are only two browsers in the whole world - IE and Netscape. I thought this might be a great time to highlight this issue, and show what kind of problems we are dealing with when looking into site compatibility.

Read more...

Those darn compatibility problems...

, ,

Compatibility issues, especially minor "imperfections", are well known to users of alternative browsers, and this is a source of frustration to many users.

These problems can be caused by many things: Browser sniffing used to only send content to certain browser and ignoring others, browser sniffing to simply block certain browsers, differences in the way browsers handle certain things, or simply a bug in the browser... Both Hallvord and David (our Web Opener) deal with these types of issues in their blogs.

The question about who is to blame for these problems is frequently debated in the forums. Some say that it's up to the browser vendor to work with the real Web. Others say that sites should follow the standards, and that it's not up to the browser to correct other people's mistakes.

Both of these arguments have merit. Indeed, Opera strives to handle the real Web, and a lot of effort has been put into handling real sites and the way they are coded through the years. At the same time, Opera Software believes in the importance of open standards, and there is also constant work going on to improve standards support.

But dealing with the real Web isn't always that easy, especially if sites don't bother to test in your browser. To illustrate this problem, let me post a screenshot of an imcompatibility I found only minutes after taking the latest version of a competing browser for a test drive:



I was browsing around, and came across an interesting story on a new camera from Canon (Norwegian text). I quickly noticed that something wasn't quite right, you can see from the screenshot. Opera, however, seemed to handle it just fine.

When even Microsoft's own browser has to deal with these problems, imagine the obstacles alternative browser makers are constantly facing. That is not to say that one should stop working on compatibility, but this might put things in perspective for those who think all compatibility issues can be fixed just like that.

These are complex issues that often require a lot of analysis, and fixing one thing might break another. However, we do have dedicated people analyzing sites and finding problems, and you can actually help us improve by posting about sites you are having problems with in the forums, or by reporting them through our bug tracking system.

It would be ironic, of course, if the site was fixed to work in IE7, and somehow ended up being broken in Opera... Homer: Doh!

Opera's stubbornness and terrible JavaScript support?

, ,

A fairly common criticism of Opera is that its JavaScript support is severely lacking, and that Opera Software refuses to address this because Opera only renders standards compliant code, and Opera Software is not going to do anything about it. Period. Indeed, Opera Software is seen by some people as a company completely out of touch with the real world. They base these comments, not on facts or actual official statements from Opera Software, but on comments they've heard from others saying the same thing. They, again, have heard it from others who heard it from someone else, and so on.

Both of these claims are, of course, completely false.

Opera and The Real Web

Not only does Opera render badly coded pages (including non-standard JavaScript), something which is necessary to work on the Web as it exists today, it even has a rendering mode specifically to deal with non-standard code. Yes, Opera Software actively promotes open standards, but at the same time, everyone must realize that a browser which doesn't handle bad code won't work on most sites. In an ideal world, all browsers would stick to standards, but unfortunately, the Web was not made that way.

Now, then, having established the fact that Opera does indeed handle bad and non-standard code, as much any browser used for today's Web pages, why do some pages still fail in Opera?

Who's to blame?

First of all, Opera, like all software, is not perfect. It can make mistakes! If a site doesn't work, it could be because of a bug in Opera, so please report problems so that they can be looked into!

However, in my experience the single biggest cause of non-working sites in Opera today is browser sniffing. What this means is that if a site isn't working, it is likely because it detects Opera, and then sends it code which differs from what the other browsers are getting. If only Opera had gotten the same as everyone else, it would have worked! This means that it is not Opera which fails because it has limited capabilities, or because Opera Software is stubborn. It is the site which actively looks for Opera, and then sends it broken code, or simply leaves out important parts.

Why they do this, I do not know. Some sites just give you a "browser not supported" page, while others fail silently, not telling you anything. They do their trickery in the background, giving the impression that it is Opera which is lacking, when it is in fact the people who coded the page who fouled up. (If you want a more technical explanation, have a look at Andrew Gregory's page about browser sniffing.)

Example

To illustrate my point, let's have a look at MSNBC's Web pages. If you visit the site with other browsers, you will be able to hover the menus to the left to get sub-menus. Try the same page in Opera, and what happens? The menu seems to be broken! One might be quick here to curse Opera for its terrible JavaScript support, and just leave it at that. Or one might investigate further to see what actually happens: The page discriminates against Opera.

I will avoid technical explanations, and simply explain how you can verify this yourself. By using a proxy to completely hide the fact that you are using Opera, the page will send you the same code other browsers get. Now, the menus will work fine in Opera! If you have the time, you can verify this yourself by using the Proxomitron to identify as Firefox (thanks to Andrew Gregory again).

The bottom line is that if only MSNBC had sent the same code to Opera as everyone else gets, it would have worked fine.

Taking action

Opera Software is actively working on contacting sites that block Opera, to convince them to make the often tiny adjustments necessary to make it work in Opera. A large and well known webmail provider fixed their broken pages by replacing "Opera" in their scripts with "xyz". It was a hack, but it worked.

You, too, can help! If a site doesn't work in Opera, contact the webmaster, and tell other Opera users about it.

In some cases, short term solutions are necessary to make sure important sites work, even if they have decided to block Opera. The next version of Opera, 8.0, will have two interesting features to help compatibility:

  • A "Report a site problem" menu which lets you report sites that don't work in Opera
  • An automatically updated list of sites that require normal or absolute spoofing (completely hiding Opera)


It is unfortunate that Opera's customers and users have to be inconvenienced by designers who apparently don't know what they are doing, or worse, know exactly what they are doing, and promote this kind of behaviour. But one thing's for sure: They can't blame Opera's "terrible" JavaScript support. Others are supporting Opera just fine, so that excuse simply doesn't cut it anymore.