Introduction

For a general overview of the browser cornucopia, see: http://www.upsdell.com/BrowserNews/overview.htm and http://www.quirksmode.org/browsers/contents.html .

We have a test page exemplifying some of the more egregious browser bugs we have found: browser_bugs.html


Browser Usage Statistics

In order to understand the consequences of our support policy on typical browser users, a consideration of current day browser usage statistics is worthwhile.

Obviously the usage distribution you will see on your site is dependent on your target user market; these are just general examples.

Note that practically nobody seems to correctly distinguish browsers pretending to be Netscape or Internet Explorer, despite how easy that actually is to do (see our burst.web.UserAgent class.)

According to Onestat.com (at http://www.onestat.com/html/aboutus_pressbox26.html ), here was the browser distribution in January 2004 (for some set of measured sites and users):

  Microsoft IE 6.0   68.1%
  Microsoft IE 5.5   13.8%
  Microsoft IE 5.0   11.8%
  Mozilla            1.8%
  Opera 7.0          0.8%
  Microsoft IE 4.0   0.7%
  Safari             0.48%

Here was the browser distribution they reported for December 2002:

  IE6.0 57.6%
  IE5.5 18.3%
  IE5.0 16.9%
  NN4.0  1.1%
  Moz 1  1.1%
  IE4.0  0.9%
  Opera  0.6%

StatMarket and e-janco.com sometimes release free dribblings of their statistics also, which don't differ hugely from these.

Some freely available browser usage statistics are collected and discussed at: http://www.upsdell.com/BrowserNews/stat.htm See also http://www.w3schools.com/browsers/browsers_stats.asp

Google has some statistics for their users at: http://www.google.com/press/zeitgeist.html . It indicates 4% for Mac users, and 91% for Windows users. Closely examining a blowup of their plot of browser frequencies suggests roughly 65% IE6, 12% IE5.5, and 15% IE5.0 (the larger number for IE5.0 is probably due to either including Mac IE, or perhaps due to IE5.5 users being more likely upgrade).

Another interesting source of information is:
http://www.macromedia.com/software/player_census/shockwaveplayer/user_profile.html .
Unlike the previous statistics this includes a breakdown by operating system, although it doesn't distinguish between IE5.0 and IE5.5. It suggests a 3% total for Macintosh users. Note that IE5Mac users are around 2.2%, which while making up the current majority of Mac browsers, is still less in absolute terms than the 3.2% overall for just IE4 Win users. [Unfortunately, it seems that browser distribution data is no longer at that url.]

The Macintosh situation is changing drastically with Apple releasing Safari. Also, any moves by AOL will be noticeable, since AOL users constitute about 10% of the U.S. market.

In any event, our library should work on roughly 95% of browsers. That percentage will increase as more compliant browsers are deployed.


Browser Release History

It is difficult to find a historical release timeline for either Microsoft or Mozilla/Netscape browsers. Certainly neither organization seems capable of publishing one themselves. I have cobbled together the following.

A brief release history for Internet Explorer:

   IE 6.0 released Aug 2001.   shipped with Windows XP  Oct 2001.
   IE 5.5 released July 2000.  shipped with Windows ME Sep 2000.
   IE 5.0 released March 1999. shipped with Windows 98 SE, Windows 2000, and Office 2000.
   IE 4.01 (aka 4.72.*) shipped with original Windows 98.
   IE 4.0 (aka 4.71.*) released Oct 1997.
   IE 3.0 (aka 4.70.*) released Aug 1996. Shipped with Windows 95 OSR2.
   IE 1.0 (aka 4.40.*) released as "Microsoft Plus! For Windows 95".

Here is a partial history of Mozilla and Netscape releases:

             Moz 1.4a                     Gecko/20030401
             Moz 1.3                      Gecko/20030304
   NS7.0.2 = Moz 1.0.2
   NS7.0.1 = Moz 1.0.2                    Gecko/20021120
             Moz 1.2b                     Gecko/20021016
             Moz 1.2a     September 2002  Gecko/20020910
             Moz 1.1      August 2002     Gecko/20020826
   NS7.0   = Moz 1.0.1    August 2002     Gecko/20020823
   NS6.2   = Moz 0.9.4.1  November 2001
   NS6.1   = Moz 0.9.2    August 2001
   NS6.0   = ?            November 2000

Note that NS7 is the equivalent of Mozilla 1.0.


4th Generation Browsers

There is basically no chance of the library running on a 4th generation browser (IE4.x, Netscape 4.x), both because of DOM inadequacies and because we use such edition 3 ECMAScript functionality as try-catch.


IE5.0 Win

An exception to our general policy on ECMAScript edition 3 support is that we *do* currently attempt to support IE 5.0 Win, despite the fact that it uses JScript 5.0 and 5.1 (the equivalent of JavaScript 1.3, or ECMAScript edition 1).

This is due to the fact that its user base is still in the double digits percentage.

The IE5.0 Win browser lacks several ECMAScript features, either due to bugs or the fact that ECMAScript edition 3 had not yet been standardized: Fortunately JScript 5.0 does implement try-catch, and does implement instanceof. For more information on ECMAScript features in different JScript releases, see msdn.microsoft.com/library/en-us/jscript7/html/jsoriversioninformation.asp


IE5.x Mac

We do not attempt to support IE5.x Mac. Our library is known to not work with it, and we have no plans to do anything about it.

IE 5.0 and 5.1 for Mac OS (and 5.2 for OS X) were developed by an independent team at Microsoft, since dissolved. While it had superior CSS support to IE 5.0 Win, it was lacking in its DOM support. For example, it has neither IE Win's attachEvent, nor the W3's addEventListener. For an overview of some of the issues, see for example:

A crippling problem with IE5.x Mac is in its ECMAScript implementation: it has no support for "instanceof". Unfortunately, any attempt at emulation is impossible, as its mere presence in source code is enough to cause an exception at parse time. Furthermore, even if that weren't the case, JScript has no __proto__ or other hook that would make emulation of instanceof possible.

The only way really to support IE5.x Mac at all would be with a separate copy of the library that had usage of "instanceof" replaced with some function call that did what it could.

Like IE5.0 Win, IE5.x Mac does not support the conditional "in" operator. Like IE5.0 Win and KHTML, IE5.x Mac does not support the global encodeURIComponent and decodeURIComponent functions.

The browser lineage has been abandoned by Microsoft.

Currently, IE5.x Mac is the most commonly used browser on Macintosh operating systems. Safari is likely to soon become the most common browser on Mac OS X, but Apple is unlikely to ever release it for Mac OS 8 or 9. Thus in the future, the proportion of Macintosh users who are on IE5.x Mac will be correlated to the proportion of Macintosh users still using Mac OS 8 or 9.


KHTML family

The KHTML family consists primarily of KDE Konqueror and Apple Safari. Recent versions of OmniWeb use it, as does the Atheos browser.

Apple forked Konqueror at 3.02. A summary of their initial changes may be seen at: lists.kde.org/?l=kfm-devel&m=104196912316326&w=2

Apple calls the KHTML browser rendering technology "WebCore" and the KJS ECMAScript interpreter "JavaScriptCore"; their forked versions can be downloaded at http://developer.apple.com/darwin/projects/webcore/ . Perhaps the best way to track evolution is from Dave Hyatt's blog at http://weblogs.mozillazine.org/hyatt/index.html . There is also a webcore-dev mailing list archived at http://lists.apple.com/mhonarc/webcore-dev/ . I don't know of a place that has a well-formatted report of source changes or bug fixes per release.

The KDE project maintains a home page for Konqueror at http://www.konqueror.org/ . Limited release notes may be found at http://www.konqueror.org/news.php . I don't know of a place that has a well-formatted report of Konqueror source changes or bug fixes per release.

We are interested in supporting the KHTML family, but it is currently too buggy. For a list of some of the problems we have found, see browser_bugs.html. The official bug list for Konqueror may be seen at: http://bugs.kde.org/query.cgi .

Safari 1.2 is definitely an improvement. In fact, it passes most tests right now.

The bugginess of the KHTML browsers is aggravated by the facts that:


ICE family

The ICE browser is a pure Java implementation. It uses the Mozilla Rhino interpreter. PPK is pleased with its CSS and layout support.

We would like to support the browser, but it currently does not run Hieatt JsUnit successfully (I have opened "case number 1462" with support@icesoft.com to address this.) The JavaScript console is barely adequate, and it does not support JavaScript error alerts.