ASP.NET is Microsoft’s newest web application development system. Unfortunately, in its default configuration, it seriously discriminates against non-IE browsers. The browserCaps section of the machine.config or web.config configuration files uses the User Agent string to set a number of “capability” flags – such as what level of support it has for the W3C DOM, CSS and ECMAScript. However, this file knows next to nothing about non-IE browsers newer than Netscape 4.
We ran into this problem at work – ASP.NET applications looked fine in IE, but really ugly in Firefox. This was because it was treating Firefox as a really old browser, and doing its “panels” using tables instead of divs, which didn’t work very well when you nested them or tried to put them side by side. A quick update to browserCaps, as outlined on the page linked above, fixed the problem.
It would be easy to label this as part of some sort of conspiracy. I’m not going to do that, but I think Microsoft does have a duty to fix this in the next release of ASP.NET, and/or issue a patch. After all, not doing so means that their customers’ sites look terrible in some of their customers’ browsers. And they probably won’t be too happy about that, particularly if they spend hours trying to figure out why ASP.NET is generating different and broken HTML for these modern UAs.