Safari 3やChromeで使用されているKHTMLはacceptヘッダでapplication/xhtml+xmlを要求してくるにもかかわらずxml-stylesheet
処理命令による代替スタイルシート指定を無視し、すべてのスタイルシートを適用する。このページはそれらの環境で盛大に崩れていたのだが、Chromeの登場に伴いなにやらあまり無視できないシェアになってきた、らしい。一応読めるので放置してきたが、今日限りでUser-AgentヘッダにKHTMLを含む環境に対してはapplication/xhtml+xmlの優先度がtext/htmlより高い場合においてもそれを無視してtext/htmlを返すよう変更した。
AcceptヘッダをみてHTML4.01若しくはXHTML1.1っぽいXML複合文書を出力する事にして、自らXMLを選択するようなUAはきっとスタイルシートの実装が進んでいるはずだ、という事にしている。一応末尾に拡張子html, xhtml, atom, rdfを付加するとそれっぽい形式で帰ってくるという事になっているはずだけれど、上手く動いているのかは不透明。
という仕様は変わっていないため、URIの末尾に拡張子として.xhtml
を付けることでどのように崩れるか確認できる。
nanto_viさんによるとこのバグはWebKitのバグであり、Safari 4では修正される見込み
なのでそうです。情報ありがとうございました。