[ Web関係 ]
とりあえずJavaScriptは書き終わりました。blockquote要素のcite属性とtitle属性を表示させることに成功。まだscript要素で読み込んでないので反映されてないですけど。現在、過去の記事の編集中。cite属性とtitle属性書いてないblockquote要素が結構あったので修正してます。
あとは和澄侑永さんに伝言。
……普通に「さん」でいいと思うのですが。
ですよね。
……もういい。私はW3C信者であってAnother HTML-lint信者じゃない。W3Cのチェックだとちゃんと「This Page Is Valid XHTML 1.1!」ってでるからいい。しかしCSSはエラーバシバシ出してくれるというオチ。……なんだろうねこの敗北感!
私が「application/xhtml+xml」にした方がよいと指摘したのは何もlintで減点されるからではありません。XHTML1.1の仕様書W3C Note XHTML Media Typesで「text/html」が非推奨になっているからです。ただ、XHTML1.1 SEでは「text/html」でもよくなるみたいですけど、まだWorking Draft段階なので今後どうなるのかちょっと分かりません。もしSEで「text/html」でもOKになったら、好きなメディアタイプを用いればいいのではないかと。まぁ、現実的な選択肢としては「text/html」になると思いますけどね。
で、「application/xhtml+xml」を選択した場合、IEとか色々面倒なことになるのでその解決方法。PHP必須。
<?php
if (ereg("application/xhtml\+xml",$_SERVER['HTTP_ACCEPT'])
||eregi("Another_HTML-lint", $_SERVER['HTTP_USER_AGENT'])) {
header ("Content-Type: application/xhtml+xml; charset=EUC-JP");
} else {
header ("Content-Type: text/html; charset=EUC-JP");
}
?>
こいつを各文書の先頭に書くか、別ファイルにしてincludeしてください。文字コード表記は適宜変更のこと。UAに応じてHTTPヘッダのコンテントタイプを強制的に変更してます。「application/xhtml+xml」を受け取れないUAには「text/html」で吐かせるって感じ。これだとIEでは「application/xhtml+xml」ではなく「text/html」で閲覧することになって若干不本意ではありますが、解釈出来ないものは仕方ないかと。IEでもレジストリを弄れば「application/xhtml+xml」を解釈出来るようになるらしいんですけど、一般ユーザがそこまでカスタマイズしてるわけがないので暫定処置です。
上のコードではlintには決めうちで「application/xhtml+xml」を吐かせてますが、今はこういった小技っぽいことしなくてもlintで減点されることはなくなっていたと思います(記憶が曖昧)。
Perlでも似たような感じでUAごとに振り分けが出来ます。あとは適当にググって下さい。
「application/xhtml+xml」と「text/html」どちらを選択するにしても、XHTML1.1ではメディアタイプ及び文字コードの指定はサーバ側で行うべきであって、meta要素で指定すべきではありません。この辺のことはAcademic HTMLの「http-equiv 属性を持つ meta 要素」が参考になるかもしれません。あとは徒書の「Re: XHTML1.1のMIMEタイプ」とか。
提案されていた解消法ですがえーとそれは試しましたけどlint様はエラーとのお言葉でございましたよ とだけ。
えー、私のとこはこれで平気なのに。.htaccessファイルでtext/html指定してたりしません? 何ででしょう。謎。まぁそこまで拘らなくていいような気がしなくてもないので、ことの発端である私がこんなこというのもアレですけど、後は適当に。お役に立てなくてごめんなさい。
XHTML 1.1仕様ではメディア型の規定は無いのでは。(XHTML Media Typesに記載されている話)
仕様に書かれていることと混同しまくってましたorz 北村さん、ご指摘ありがとうございます。
BGM : Com FM(by 石野卓球 from TITLE #2 + #3)
2007年3月 3日土曜日 20時27分56秒