FirefoxFollowing up on my comments on Opera, Firefox supporters have a major blind spot as well. It has to do largely with the heavy emphasis on web standards among the developers and the early adopters, and the ideals of the open source/free software community. There are a lot of websites out there that don’t look quite right on anything but Internet Explorer, and there are sites out there that just plain don’t work in anything but IE. This is largely due to three facts:

  • There is a lot of broken HTML out there that has only been tested on IE, and the designers relied on IE’s particular error-recovery behavior.
  • There are sites that rely on ActiveX or other IE-specific code without providing an alternative.
  • There are sites with bad browser-detection logic that deliberately exclude other browsers, regardless of whether they would otherwise handle the site.

In each case you can either change the browser to handle the websites, or you can change the web to handle the browser. Both approaches are difficult, and while the former often yields more immediate results, the latter is more ideal, because it benefits users of all web browsers. In most cases Opera has chosen to adapt the browser, while Mozilla has chosen to promote standards for web development.

The trick with broken HTML is that there is no specification for how to handle bad code. That’s left up to the browser developer, who has to guess what the designer meant. And even if IE’s guesses have become a de facto standard, they’re not documented, so anyone trying to match them has to not only guess what the web designer meant, but guess what assumption IE would make on the same code. Safari developer Dave Hyatt describes the error handling problem in a series of posts from last year.

Mozilla decided early on not to implement ActiveX for security reasons. I don’t recall Opera’s rationale, but they reached the same decision. So standards evangelism is the only solution there.

Browser detection is more complicated than it sounds. You could just convince sites to look for your browser—or you could convince them to write code such that they don’t need to check. This comes back to standards evangelism, as well as promoting more flexible methods than browscap.ini for identifying browsers. You really don’t want to write code that looks for Opera 8.0 and have it stop working when Opera 8.0.1 comes out because you used = instead of >=! Of course, the quick-n-dirty solution here is “UA spoofing,” a term which here means “to make your browser look like the one with the greatest marketshare.” IE started the trend by claiming to be Mozilla...compatible back when Netscape was dominant. Opera continued by claiming to be MSIE...Opera. Safari is KHTML, like Gecko. It’s gotten very convoluted over the years!

Mozilla has deliberately avoided UA spoofing, while Opera has gone so far as to make MSIE spoofing the default (though if you’re really looking, you can still detect it). Both, however, have launched or embraced standards campaigns. The most memorable of these is probably the Opera Bork Edition, released to highlight the fact that MSN was deliberately serving broken code to Opera when it would have handled the IE-targeted code just fine. To illustrate that this was a bad idea, the special edition of Opera converted the MSN homepage—and only the MSN homepage—to look like the Muppets’ Swedish Chef had written it.

So what makes this an “elephant in the room?” Well, everyone knows there are a lot of pages out there designed for IE that won’t quite work with other browsers. Mozilla takes the long view, that the pages are broken. But a lot of those pages aren’t maintained, or are maintained by people who just don’t care. (Try telling their sales people that 10% of potential customers can’t reach their site, though!) It’s an ongoing problem, one we can hope will shrink as the browser space diversifies…assuming, of course, that it continues to do so.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.