With such a large number of heterogeneous web browsers in use, running on different operating systems, the potential for incompatibility is significantly larger than for developing other software.
Most broken websites that you find on the Internet have been developed with a single web browser in mind, with no attention paid to the large number of people who do not use that browser. The problem is exacerbated by having websites which almost work, but don’t work fully, and the website developer is content to do a couple of superficial tests which don’t highlight the deeper problems.
This is clearly unsatisfactory; although the main protagonists in the browser wars are starting to see the benefits of compliance to web standards, their products are still competing on features, and there remain large numbers of people who are slow to upgrade their web browsers.
A balance has to be struck between taking advantage of these new features for a better web experience and having the website accessible to the widest possible audience.
Once this balance has been found, rigorous testing is required to ensure that the website conforms to the requirements. For the style and visual appearance of the website, conformance to ratified web standards helps to ensure compatibility across the widest range of browsers, and adhesion to some further restictions will usually ensure compatibility with pre-standards browsers.
However closely these guidelines are followed, it is almost inevitable that additional tweaking will be required for maximal browser compatibility. This is carried out in parallel with extensive testing on a number of common web browsers.
In cases where dynamic client-side scripting (Javascript) is used, the scope for browser incompatibilities deepens, and sometimes different code will have to be written to perform the same task on different web browsers.
With such potential for problematic scripts, we will often record logs of errors from the live website for diagnosis of problems. If an error is occurring at a particular place in a script, this will be logged along with the particular web browser and version affected. Using this additional information allows us to get straight to the problem and fix it.







