Yes, that's precisely the violation of Postel's Law I was thinking of.
Steve, someone is sending us this User-Agent, is that you?:))
User-Agent: Mozilla 5.0 (Compatible; with Safari, with Opera, Chrome, Netscape, MSIE etc. You get the idea. It's compatible with everything!) Let me tell you a story. Once upon a time, there was a browser named SeaMonkey. It was of noble inheritance, as it was a direct descendant of the famous Netscape of old. Oh, it could have been so proud, this browser, it could have stood up, radiant and tall and strong. But no, that was not to be. Many websites closed their doors for this browser, saying, We don't know who you are, go away! And poor SeaMonkey would have no other choice than to go in disguise, to make the websites believe it was some other browser. And you who read this, you are one of those websites that are putting SeaMonkey to shame. Listen. All browsers support HTML. If you just send the same HTML, all browsers will accept it. Only in some borderline cases will the page you send to the client need to be tailored to a specific client. In the majority of cases, the standard HTML you send to, say, Opera, can be sent to every other browser as well; K-Meleon, Galeon, etc. There is no need to scan the user agent string for keywords like Firefox, Konqueror, Midori or whatever. Just send the standard HTML, OK? But even if you do scan the user agent string, even if you do insist on sending different stuff to different browsers, you should look for distinguishing signs of the rendering engines: Gecko, Webkit, KHTML, Trident, Presto, and so on, not for different browser names. SeaMonkey works the same way as Firefox, Netscape and Flock; they all have Gecko/yyyymmdd in the user agent string. Similarly, Google Chrome works the same way as Safari, Midori and SRWare Iron; they can be identified by the word AppleWebKit in the string. And so on. Distinguishing browsers by name is not only overkill, but it even can backfire in cases such as this, when a misrepresentation is made. Anyway, even more important than that, above all, what you never ever should to is send fatal errors! The real error, incidentally, is not in the content part of the page you send, but in the header: putting info in the header that identifies the page as XHTML, while sending the content of the page as HTML, which will trigger the fatal error message. Errors like that will make you look silly, or worse, they make you look like you're doing it on purpose; sending bad stuff to some browsers, while sending perfectly OK looking pages to others. You're not REALLY doing it on purpose, are you? Trying to make people think that their browsers aren't good enough, that for instance MS Internet Explorer is a better browser than the ones they're using now, because MSIE can display the site while their own browsers can't? No, let's just give you the benefit of the doubt; you're not doing it on purpose. Blame your content management system if you want. Still, it's nothing I can help from here; you will have to make the change to your site to make sure to not saddle some browsers like SeaMonkey or Kazehakaze with your errors. So please, would you consider having a look? Thanks in advance!
Cheers, Domas