W3Clove: サイトまるっと文法チェック

Base URLを指定するとそこから一連のURLに対して W3C Markup Validation を適用してくれる中継サイト。なので、MIMEタイプをエージェントチェックで判別して見せている場合には HTTP_USER_AGENT の値が W3C_Validator の場合に application/xhtml+xml で出力してあげれば出力タイプでの警告なしに結果を受け取る事ができます。

因みにこのサイトでは header.php の先頭にスクリプトを書いてMIMEタイプを決定しています。

<?php
$ACCEPT = $_SERVER['HTTP_ACCEPT'];
$UAGENT = $_SERVER['HTTP_USER_AGENT'];
if (eregi("MSIE", $UAGENT)) {
    header ("Content-Type: text/html; charset=UTF-8");
} elseif (eregi("(Another_HTML-lint)|(W3C_Validator)", $UAGENT)) {
    header ("Content-Type: application/xhtml+xml; charset=UTF-8");
} elseif (ereg("application/xhtml+xml",$ACCEPT)) {
    header ("Content-Type: application/xhtml+xml; charset=UTF-8");
} else {
  header ("Content-Type: text/html; charset=UTF-8");
}
echo "<?xml version="1.0" encoding="";
echo bloginfo('charset') . ""?>n";
?>

それで W3Clove を通したら問題ありませんでした。良かった良かった。

via
W3Clove :: site-wide markup validation tool
The W3C Markup Validation Service