WHAT'S IN THIS CHAPTER?
- Using capability detection
- The history of user-agent detection
- Software and hardware detection
- When to use each type of detection
Although browser vendors have made a concerted effort to implement common interfaces, the fact remains that each browser presents its own capabilities and flaws. Browsers that are available cross-platform often have different issues, even though they are technically the same version. These differences force web developers to either design for the lowest common denominator or, more commonly, use various methods of client detection to work with or around limitations.
Client detection remains one of the most controversial topics in web development. The idea that browsers should support a common set of functionality pervades most conversations on the topic. In an ideal world, this would be the case. In reality, however, there are enough browser differences and quirks that client detection becomes not just an afterthought but also a vital part of the development strategy. The browser differences of today are much less pronounced than the Internet Explorer fiasco of yesteryear, but browser inconsistencies remain a common theme in web development.
There are several approaches you can use to determine the web client being used, and each has advantages and disadvantages. It's important to understand that client detection should be the very last step in solving a problem; whenever a more common solution is available, ...