An interesting read but I’m afraid I do have a fairly big issue with plugging CSS holes with JavaScript (as you mentioned some would). Just as one shouldn’t assume JavaScript will be available for core functionality (think progressive enhancement) one shouldn’t rely on support to fix CSS rendering issues.
Whilst I’d always encourage people to avoid server side detection wherever possible I think in these rare situations it’s the best bet. Much of the bad press it received was down to incorrect user agent matching. Whilst Opera, for example, used to identify itself as IE it has also always included the string “Opera” meaning it’s actually not difficult to detect accurately. Browsers could of course completely fake their user agent string and in those situations they might receive incorrect CSS but I’d prefer that than the 4% (potentially) who don’t have JavaScript enabled/available.
An interesting read but I’m afraid I do have a fairly big issue with plugging CSS holes with JavaScript (as you mentioned some would). Just as one shouldn’t assume JavaScript will be available for core functionality (think progressive enhancement) one shouldn’t rely on support to fix CSS rendering issues.
Whilst I’d always encourage people to avoid server side detection wherever possible I think in these rare situations it’s the best bet. Much of the bad press it received was down to incorrect user agent matching. Whilst Opera, for example, used to identify itself as IE it has also always included the string “Opera” meaning it’s actually not difficult to detect accurately. Browsers could of course completely fake their user agent string and in those situations they might receive incorrect CSS but I’d prefer that than the 4% (potentially) who don’t have JavaScript enabled/available.