With a little help from our YUI friends
The Yahoo User Interface (YUI) Library is a set of utilities and controls, written in JavaScript, for building interactive web applications. The YUI Library is used throughout our application for a variety of things, the most visible being the expandable/collapsible treeview components on the messages and hosting tab. A big reason for using the YUI Library's controls is that most of the the hard work of making sure that these controls work across all browsers has already been done, specifically, through Yahoo's notion of "graded browser support."
Anytime you have CSS and JavaScript-laden interactive web controls, browser compatibility becomes an issue. All of the web browsers and browser versions out there have quirky differences in the way their CSS and JavaScript implementations work. This can lead to functionality and display issues depending on what browser you're using.
The YUI Library attempts to solve this problem by introducing the concept of graded browser support. This system does not ensure that everything will look and behave exactly the same in Netscape 4.0 as it does it IE7. However, it does mean that you will get the maximum functionality and visual style that your browser can provide. The key to this is building for the lowest common denominator and then enhancing the user experience for more modern, capable browsers.
Browser support is divided into three classes or "grades" of support in the YUI Library. C-grade support provides core functionality for old, antiquated browsers. Because of the limitations of C-grade browsers you may not get all the bells and whistles that you would on modern browsers but you will get core content and functionality. A-grade is support for modern browsers. This is the highest level of support and should provide the richest user-experience. Finally, X-grade browsers are unidentified clients that are assumed to be capable modern browsers. No QA testing is done against X-grade browsers.
For Bronto, graded browser support ensures that our application maintains maximum compatibility across all browsers. We don't have to reinvent the wheel in creating these controls and we don't have to worry about making sure they work in browser X or browser Y.
Matt
Comments