Re: lint 先生の HTTP_ACCEPT
2006-01-17
昨日書いた xml 宣言を出力したりしなかったり に lint 先生の HTTP_ACCEPT にて反応いただきました。
Another HTML-lint だと、Accept するのが、*/* のみのために、xml 宣言が出力されずにエラーになってしまうという問題点の指摘です。ご指摘どうもありがとうございます。>Hajime Hoshi さん
しかし実のところその点に関しては合点してやっています。というのも、自分の気がつかないエラーを発見する目的で Another HTML-lint を使うのであって、既知の減点に関してはまぁいいかなと。他にもこのサイトでは、application/xhtml+xml を Accept するかどうかで、application/xhtml+xml として送出したり、text/html で送出したりしているのですが、Another HTML-lint は Accept していないのでその点でも減点を食らっています。しかし、その点に関しても自分でわかってやっているのでいいかなと思っています。lint だけ特別扱いすることも可能なことはわかっているんですけどね。
ぶっちゃけ、xml 宣言を出力したりしなかったりする目的は、IE に Standard mode でレンダリングさせるためなわけですが、USER_AGENT に "MSIE" が含まれていた場合に、 XML 宣言を除く
という判別方法だと、いわゆる UA 詐称している場合に困ると考えたわけです。
例えば、Opera は、標準で Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ja) Opera 8.51 を吐ける機能を装備しています。まぁ、Opera 向けに xml 宣言がなくて困ることがあるとも思えないのですけども。また、細かく条件を設定すれば Opera は含まないけど、MSIE は含むとかアレコレすることも可能かと思いますが、そういう方式でやるとどんな UA がどんな UA 名を吐くかなどといったことに常に気を配っていないといけないことになってしまうと考えます。
もしかしたら、来たるべき IE7(何)では xml 宣言があると Quirks mode になってしまうというバグが直っているかもしれないし。(希望的観測
もしかしたら、xml を Accept するけど、xml 宣言があると Quirks mode になってしまうというもっとひどいことになっているかもしれませんけども。:p)
いわゆる一般的なブラウザではなく、xml を処理するなんらかのアプリケーション的なもの(まぁブラウザもそうなんですが)で、xml 宣言がないと処理に不都合な UA であれば、きっと Accept フィールドで */* とかじゃなく、明示的に xml という文字列が書いてあるに違いないと期待しているんですが……。
「Re: lint 先生の HTTP_ACCEPT」へコメントをつける
- この記事の永続的 URI ならびに トラックバック ping URI
- http://diary.noasobi.net/2006/01/diary_060117a.html