MSIE6のXML宣言対策

  • 投稿日:
  • by
  • カテゴリ:

MTのテンプレートを、XHTML1.1仕様に変更してから、IE6で見ると文字が大きくなっていました。 これは「HTML文書の先頭に”DTDに適合した文書型宣言”がないと、後方互換モードになる」というIE6の”仕様”のためです。
「まあ、大きい方が読みやすいか」と思って放置していたのですが、久しぶりにMozilla V1.6betaを入れて当blogを見たら、やはり文字の大きさの違いが目立ちます。

という訳で、対策を施しました。

対策と言っても大した事ではなく、UserAgentが MSIE6/Winの場合には、XML宣言を出さないようにしただけです。 SSIが使えれば簡単です。

<!--#if expr="$HTTP_USER_AGENT != /MSIE 6.0; Win/" --><?xml version="1.0" encoding="<$MTPublishCharset$>"?><!--#endif -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">

テンプレートの書き換えも、宣言文とhead要素を別テンプレートにしてあるので、修正は一度で済みました。 SSIさまさまですなぁ。

本当はApacheの応答ヘッダで文字コードを明示しているので、XML宣言は省略しても良いのですが、Another HTML-lintで文句を言われるので、付けています。
この辺の説明はThe Web KANZAKI: XHTMLの書き方と留意点が判りやすいので参照すると良いでしょう。