One of the issues that faces anyone developing a web-based project is support for browsers. Since the first graphical browser, Mosaic, debuted in 1993, there has been two decades with cycles of browser fragmentation and consolidation. In the 1990s, the “browser wars” and the newness of the web led to many competing and incompatible browsers. In the early 2000s, the dominance of Internet Explorer reached 90%, but the release of incompatible IE6, IE7, and IE8 made unified support difficult again.
Now, with HTML5, we are moving into an era in which browsers will increasingly resemble each other in their performance and capabilities. The percent of the “old school” browsers is steadily dropping, with that old bugbear IE6 below 1% for many website audiences. We will soon be in a world with most people running reasonable HTML5 browsers, while a few percent are distributed among a zoo of older and less compatible browsers.
How is this important to sustainability? All sustainability frameworks include a provision to support the maximum number of people with design and engineering. A valuable service must be:
- Able to be used without degrading its future use, in other words, it is renewable
- Able to be used by the maximum number of people, with support for “edge” groups, people of different national 0rigins and abilities
- Able to be used in the future by the same groups as use it now
So, to be sustainable, we have to develop sites that support as many as possible, including the “browser-challenged”. Even if their numbers are dropping, we don’t want to abruptly kick their butt and tell them to get a new browser. In many cases (listen up, techno-utopians) this can’t or won’t be done. For example, many developers in the US are unaware that in China and many other Asian countries, most of the browsers uses are clones of IE, using old versions of its Trident engine. IE6 may be uncommon in the US, but in Asia, it is quite common, running under different clone names.
Despite this, it is becoming more and more common for developers to advise dropping support for old browsers, and demanding that users take up the new standards. If there was a sustainability feature here (e.g. switching from from polluting to non-polluting detergents) this might be justified, but does an IE6 user really damage the virtual environment. They are simply an inconvenience to the designer, not the end-user. As we have said many times before, “design is the problem”, not any browser-challenged people out there.
So, if we can’t just dump on people using old browsers that we don’t like, what would be a reasonable sustainable virtual design strategy? After all, supporting every browser in existence (there are dozens you have probably never heard of, like NetSurf or Dillo) would be very expensive. At some point, the cost of support is so high that it outweighs the benefit of supporting the browser challenged. Not a problem, but where do we draw the line.
Here are some ideas, specifically for desktop browsers. Mobile is its own world:
UNSUSTAINABLE – demanding that people upgrade their browsers. The reality is that the people who need to upgrade probably won’t and you’ll just be getting rid of the inconvenient part of your audience.
UNSUSTAINABLE – setting an arbitrary cutoff like 5% for browser support. How do you know where to put that exact number? Websites that track browser statistics are unreliable. We need a rationalle for picking 5% or another number that isn’t just “small”
SUSTAINABLE – Graceful decay of your site. Make sure that it works, at least minimally, on older browsers. Microsoft’s own MSN.com is a good example. When tested with IE6, the home page is usable, but some features (e.g the Bing search bar) are out of place.
SUSTAINABLE – Progressive enhancement. Get a whole bunch of browsers, constantly test on all of them expensive.
I’m going to suggest a strategy that combines browser stats with progressive enhancement/graceful decay. If we look at a long-term graph of browser stats from theCounter.com on Wikipedia, we can see some consistent long-term trends. Firefox has reached a stable percent, while IE has dropped for many years.
More recently Google Chrome has been rising rapidly, at the expense of Internet Explorer, as this plot on GetClicky.com shows:
These recent charts are probably the reason that some are urging we de-enfranchise the browser challenged. However, an alternate strategy would be to write our code with these trends embedded, with timeouts. In other words
- Create dynamic code creating the user interface of a website
- Apply principles of progressive enhancement
- Drop support for certain features (e.g. loading a polyfill) based on trends automatically, by having the site code test the date before it runs anything
For example, we might drop any support for non-Canvas web browsers by drawing a line with current trends into the future. When our website was loaded, it would check the date. If that date was far in the future, it would turn its own polyfills off. This approach has many advantages, expecially if we consider that websites may be used for many years after the developers move on. This strategy would also encourage developer to create a “toggle” state for their sites, so even if support was turned off manally, the code would not have to be re-written. An in that future, we wouldn’t be wasting cpu cycles loading polyfills that were supporting a vanishingly small number of users.
But how to find that cutoff? I don’t think 5%, or even 1% is appropriate on the Internet, even if it would be acceptable in the real world. The reason is the viral, networked nature of the Internet. It’s been said that one happy customer tells their friend, while an unhappy customer tells 1,000, making you 100 enemies. This is over-stating things, possibly by an order of magnitude, but you get the idea.
So lets assume that one angry person sends out negative vibes to 10 others in the virtual univers. In order to keep our real cutoff, we have to factor this in. So, for a 1% cuttoff, we should really pick a 0.1% cutoff. That way, we are taking into account the viral nature of Internet influence.
To summarize, a sustainable strategy for desktop browser support might include.
1. A base strategy of progressive enhancement
2. A bit of imperfect support for the oldest browsers
4. A 1/10 rule. If we are OK with 1% of the audience not supported, make it 0.1% to take account for viral, network effects of unhappy users.