XHTML1.1への移行

何となくではあるのですがXHTML 1.1へ移行してみました。

今回の作業の覚書です。


先ずはじめにドキュメントタイプの変更です。
テンプレートの先頭にあるドキュメントタイプの指定文を次のように書き換えました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

次にメディアタイプについてです。
これまではMT標準のスタイルを使っていましたのでメディアタイプとして次の文が入っていました。

<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />

XHTML 1.1ではメディアタイプにtext/htmlは指定すべきではない(Should not)とされています。
またmeta要素を用いたHTTPヘッダの実装をすべきではないという事になっているようです。

そのような理由から上記の3行については削除します。

またMTの標準ではXMLヘッダが記載されていませんのでこれを記載します。
当サイトはPHPにて構成されていますので次のように対象テンプレートの先頭に記載します。

<?php echo '<?xml version="1.0" encoding="UTF-8" ?>'; ?>

この件については以前の記事で触れた事があります。
つまりIEについては勧告内容に併せる努力をしていないという評価を下すと言う事ですのでご了承ください。

次にhtml要素にlang要素を指定している部分を削除します。
xml:lang属性のみを記載しここでは”ja”を値として与えました。

その他の詳細部分

その他のアクセシビリティに関連した箇所や指定属性の変更についてはAnother HTML-lint gatewayを参考にすると良いでしょう。

特にscript要素内に指定する#PCDATA部分については参考になります。

但し本来ならば<!–…//–>を<![CDATA[…]]>に書き換える必要があるのですが、それを実施してしまうとブラウザが処理できなくなってしまう恐れがあります。
悔しいですが、この部分については私は諦めました。

現在の問題点

何故かHTTPヘッダの出力がtext/htmlになってしまっている模様。
サーバ側で固定してしまっているのか修正の余地があるのか。
今後の課題です。