この間から、このサイトの Content-Type を変えるために PHP でいろいろやっていました。まあ、所詮、自己満足の域を出ないのですが。
以前から XHTML を正しく扱える Web ブラウザには application/xhtml+xml で送っていたのですが、今回はもうちょっと進んで XML 宣言の有無とか、スタイルシートの処理命令とか、そんなのを対応しているブラウザごとに書き換えるようにしてみました。
具体的にどんなことをしていたかというと、Gecko エンジンを使った XHTML を正しく解釈するブラウザ などには application/xhtml+xml で送り出し、今まで link 要素で行なっていた CSS の指定も、 XML らしく xml-stylesheet 処理命令で行なうように書き換えてみました。 Web 標準に一番近いのって、やっぱり Gecko 系かもしれません。Firefox などは、それ自体が XML を応用した技術で作られているだけあって、さすが XML には強いですね。
Opera も XHTML を正しく解釈するブラウザ なので application/xhtml+xml で送り出しているのですが、 CSS の指定にはスタイルシート切り替えスクリプトの絡みで、xml-stylesheet 処理命令ではなく今までどおりの link 要素で指定しています。このブラウザ、なんだか異様に完成度が高いのですが、今一歩というところでおかしな仕様になっていて、とっても悔しいです。
Windows でも使える Safari 3 のベータ版を試してみたのですが、このブラウザは曲者ですね。一応、application/xhtml+xml で送り出せる XHTML を正しく解釈するブラウザ なのですが、XHTML として認識されるとスクリプトが効きません。
link 要素で CSS を指定しても代替スタイルシートが使えず、xml-stylesheet 処理命令を使えば alternate 擬似属性が無視され、すべて上書きされてしまいます。結局、将来的に Safari でも代替スタイルシートが使える日が来ることを期待して、割と問題の少ないであろう link 要素に入れておきました。これが Mac の世界では標準のブラウザなのですか? うーん、うーん……。
未だに大きな
ぶっちゃけ、こうなるともう XHTML を
というわけで、結局何が変わったかというと、それぞれのブラウザで見たときにページのソースを開いてもらえばわかると思います。要は XHTML を正しく解釈するブラウザ には XHTML としてビシッと厳格な記述を、 XHTML を正しく解釈しないブラウザ には XHTML もどきの、そこそこ見られるテキトーな記述をしていますよ、ということです。
あ、一番理想的なソースを吐き出しているのは言うまでもなく Gecko 系のブラウザで見た場合です。そんな意味でも、ひろやさんは Firefox の利用をお勧めします。