When developing any web based application is pays to know exactly what your browser can do. If your developing an internal application you can make sure you maximise the website to what the browser can support, this is Nirvana (provided the internal browser isn’t IE6, which in this case is usually is) just make sure your aware of any upgrades to the browser on the network and test early!
If your working in the more common heterogeneous environment that is more common on public facing sites then understanding which browsers your going to have to support for your application is fundamental as this will not only guide what you are going to test but also guide what technologies your able to use.
What do you need to support?
Often you start a project with some lofty goal of support all known browser type, or you’ve worked on a project before and stipulate that you’ll only support one or two of the main ones. Then you start getting calls about problems with your site, some oversight of a major browser or a newly released browser version has caused problems with your site, making it look uglier at best or stop working at worst. How do you know what to support or who is using your site? Often a lot if this information can be captured by analytics software such as Google Analytics. This can then monitor who accesses your site and determine the browser they are using by capturing their information. For many clients this information already exists for the main website and can be provided as part of the requirements of any project. For this limited site the output is as follows for a certain period. Now monitoring this list for changes and increases in new browsers types or updated types of existing browsers should allow you to plan your ongoing testing strategy and make any changes to the site before they become more commonplace. This is preferable to when you see betas of new browsers start accessing your site obviously. So now you know what you need to support how to find out information about what these browser can do (without endless testing of your own).
If you have endless time there is a full list of many browsers is available from Wikipedia.
Help at hand, ironically in a browser.
With a variety of browsers out there it helps to have a set of tools to tell you what is or isn’t supported and how they might perform. There are a number of tools to do this.
Browserscope provides a collaborative list of what a particular browser supports by profiling your browser and adding it to the list of browser that are ‘out in the wild’. If you see from your analytics that a new browser type is often accessing your site then you can check Browserscope for what it supports, which is very useful. More information can be got at Steve Souders blog here.
It is often the case with spatial analysis, either using a map or not that the output might be emailed to people who fall within a certain location and the application your developing might need to send a html formatted email to customers. Making sure you use the right sort of formatting in this case is as important as support within a browser. This list, from CampaignMonitor of CSS support in email clients can give a quick overview of what you need to be supporting within any particular email system. Obviously testing will always be the final arbiter.
ArcGIS Browser support
ArcGIS Browser System Requirements : note this is for the 9.3.1 library, it should be seen that there are compatibility issues with the newest version of IE, IE8. Checking how a site works in the compatibility mode of IE7 might be able to make any site work in that browser, this can be forced using the IE=EmulateIE7 meta tag you can find more details and caveats at the IE blog here.
Dojo Browser Support : This is important if your aiming at rolling out additional components (Dijits) with the Dojo 1.3 is supported fully in only certain browsers and should be checked before any project is started.
ASP.Net AJAX Browser Support : Again this is useful to know if your deploying components with the WebADF. It seems the site suggests that you don’t use Linux when browsing ASP.NET AJAX based sites, although I would assume they would work fine in Firefox on Ubuntu or other systems.
Support Everyone (maybe) with Graceful Degradation
One of the issues when using modern technologies, especially on public sites that need to provide data to all users regardless of browser being used. This can often be achieved by providing a view of the data on a page that has only basic content and search facilities. For many components, such as those provided by Dojo or ASP.NET then the degradation is often provided within the component, sites should be tested with a variety of browsers, information about how and what each browser supports can be then given to the users of the site, rather like Yahoo does with their graduated browser support and rating for their YUI (Yahoo! User Interface) library.
Browser support has always been a complicated issue, over ten years ago I wrote a column about the the same compatibility issues within browsers. Today’s libraries handle a lot of the issues about browser support both at the client level and with communication with the server, but they are not perfect and it’s only through understanding the requirements of the users of the system and the capabilities of the minimum browser to be supported will the right choices be made.