Virtually the entire Web user population uses Web browser software developed by one of the two primary browser vendors: Microsoft and Netscape. Each of the two market leading browsers, Microsoft Internet Explorer and Netscape Navigator, implement their own custom extensions to the W3C standards. These extensions provide enhanced features that often go far beyond the functionality described in the latest HTML standard. While these features are usually compelling and undeniably "cool," they are, for the most part, generally not compatible with each other or with older browsers or browsers distributed by other vendors.
The trade-off between the desire to maximize market share through developing to an HTML standard, supported by most browsers, and the desire to offer exciting new features implemented only by the latest version of a specific browser affects choices that must be made during application design.
In my experience, most Web development projects start out with the stipulation that they must be cross-browsercompatible to maximize the available market for the application. However, when the project stakeholders discover that to maintain cross-browser compatibility in the application, they must give up many of the enhanced, browser-specific features that they took for granted, they often reassess this requirement.
By far, the majority of Web application projects that I have worked on have decided to standardize on relatively recent versions of one of the two browsers that enjoy the greatest market share: Microsoft Internet Explorer and Netscape Navigator. Even in cases in which it is determined that the application must support multiple browser platforms, this is usually limited to the stipulation that the application support only recent versions of these two browsers.
This article introduced HTML, highlighting its origins as a standard and its role in a Web application. The next article in this series examines HTML and Web applications in more detail, describing their major elements and functionalities.