Determining what browsers to support
I started designing sites in the mid 90s, and know how to create layouts on many of the older browsers. The question is do I need to anymore?
I want my site to be functional on all browsers capable of supporting HTML 2.0 (the first official standard).
I define functional as capable of achieving an intended purpose, in the case of this site, the purpose is conveying information to a user.
But I want this site to more than functional, I want it to be enjoyable to use and visually appealing. Unfortunately all browsers are not equal, so I need to determine which browsers I should make an effort to provide with an enhanced version of my site, and which browsers will be served a minimal, but still fully functional version.
Luckily I have a friend who can give me a copy of the browser usage statistics for Environment Canada's
WeatherOffice website, perhaps one of the most widely used, general audience websites in Canada. (who doesn't check the weather?)
Statistics
During a 1 week period in June 2008, the site received 9,220,090 unique sessions and 560,016,029 hits.
2,520,877 (25%) of the sessions were generated by sources that did not provide any browser information. This is the strongest argument I've seen for not using server side browser detection.
The following tables shows the browser usage based on both sessions and hits. I've taken out any stats from bots and data scraping services (mget, ColdFusion etc.), or where the browser name wasn't provided.
| Browser | Sessions | Hits | % Sessions | % Hits |
|---|---|---|---|---|
| BlackBerry 4.x | 43837 | 188943 | 0.70% | 0.04% |
| Camino 1.x | 3054 | 124852 | 0.05% | 0.02% |
| Firefox 3.x | 105234 | 5659781 | 1.67% | 1.09% |
| Firefox 2.x | 1278739 | 67244027 | 20.32% | 13.00% |
| Firefox 1.5.x | 9343 | 552669 | 0.15% | 0.11% |
| Firefox 1.0.x | 6042 | 302606 | 0.10% | 0.06% |
| Internet Explorer 7.x | 2891272 | 263756941 | 45.94% | 51.00% |
| Internet Explorer 6.x | 1281147 | 151078184 | 20.36% | 29.21% |
| Internet Explorer 5.5.x | 6665 | 380050 | 0.11% | 0.07% |
| Internet Explorer 5.0.x | 11531 | 943658 | 0.18% | 0.18% |
| Internet Explorer 4.x | 1915 | 103569 | 0.03% | 0.02% |
| Konqueror 3.x | 1998 | 145516 | 0.03% | 0.03% |
| Lynx 2.x | 5023 | 93375 | 0.08% | 0.02% |
| Mozilla 1.8.x | 8486 | 405939 | 0.13% | 0.08% |
| Mozilla Compatible Agent 5.x | 152894 | 3305201 | 2.43% | 0.64% |
| Mozilla Compatible Agent 4.x | 25947 | 1982971 | 0.41% | 0.38% |
| Mozilla Compatible Agent 2.x | 60103 | 665915 | 0.96% | 0.13% |
| Netscape 8.x | 2258 | 342230 | 0.04% | 0.07% |
| Netscape 7.x | 19354 | 1136969 | 0.31% | 0.22% |
| Netscape 4.x | 3054 | 95394 | 0.05% | 0.02% |
| Opera 9.x | 32912 | 2648685 | 0.52% | 0.51% |
| Opera 7.5.x | 2399 | 55305 | 0.04% | 0.01% |
| Safari 525.x | 264615 | 12089821 | 4.20% | 2.34% |
| Safari 523.x | 32868 | 1443125 | 0.52% | 0.28% |
| Safari 419.x | 23912 | 1374575 | 0.38% | 0.27% |
| Safari 312.x | 18839 | 1059306 | 0.30% | 0.20% |
| Totals: | 6293441 | 517179607 | 100% | 100% |
Analysis
Do not interpret these percentages as absolutes. Caching, proxies, support for cookies, browser spoofing, etc. all influence these numbers. That said, given the size of the data set the weights are still pretty heavy in favour of certain browsers.
- ~99% of the visitors to the site are using browsers that have reliable XHTML and CSS level 2 support either directly or through known workarounds.
- ~2.5 million sessions did not provide any browser information, so I should not use any server side browser detection based on the user agent string.
- Based on the differences between sessions and hits, it would appear that IE makes many more server requests compared to the other browsers, a possible caching issue?
- IE 5.x and 6.x are still widely used and their known quirks will need to be supported.
- Looking at the IE 5.x stats in detail, I found that usage of MAC IE 5.x was down to 0.08% of all the sessions.
- Some people are still using Netscape 4, and IE 4, so I will still need to hide javascript and hide css from these browsers, and carefully format my XHTML to prevent crashes.
- Handheld browsing is making steady gains (blackberry stats)
Decisions
Based on the above analysis I feel comfortable that designing to standards (XHTML, CSS2)
will allow me to provide a visually pleasing experience to the majority of visitors to my site.
- I will no longer provide table layouts for older browsers.
- I will no longer create layouts for Mac IE, Netscape 4, or IE 4. Users of these browsers will recieve unstyled content.
- I will continue to create custom stylesheets for WIN IE 5.x/6.x+ (to deal with their unique quirks). All other
browsers will recieve a standard stylesheet or recieve no style sheet at all. - I will continue to test my site under Mac IE, Netscape 4 and IE 4 to ensure that they do not crash.
- I will create a handheld layout.
- I will not use server side browser detection.
The following table lists the different features I plan to use for my site layout (this list may grow as I design my site), and based on the previous table, the approximate percentage of users that are using a browser that supports the feature.
| Feature | % Users | Browsers |
|---|---|---|
| position:fixed | 75% | IE 7.x,Safari,Firefox,Opera 7.x+, Netscape 7.x+ |
| position:fixed (hacked) | 95% | IE 5.x+,Safari,Firefox,Opera 7.x+, Netscape 7.x+ |
| png 24bit alpha | 75% | IE 7+,Safari,Firefox,Opera 7.x+, Netscape 7.x+ |
| png 24bit alpha (hacked) | 95% | IE 5.5+,Safari,Firefox,Opera 7.x+, Netscape 7.x+ |
| png 8bit alpha | ? | ? |