WEB標準化などの作業では品質確認のためにXHTMLデータの文法をチェックする必要があります。みなさんも Another HTML-lint gateway や The W3C Markup Validation Service、Dearmweaver のバリデート機能などを利用されているのではないかと思いますが、XHTMLソースの直すところは大体共通しています。そんなValidにするために修正するポイントをまとめてみました。
ValidなXHTMLソースにするには
実際はかなり地味な作業です。前述したXHTMLの文法をチェックしてくれるサービスを使ってエラーがあれば修正して、重大なエラーがなくなるまで、それを繰り返します。軽微なエラーは「対応できたら、なおいいね」というものなので、無理して対応する必要はないと思います。具体的な方法は以上です。
完全な対応を求めなくていいのは、Validは「妥当な」という意味であって「完璧な」ではないからです。HTMLの考え方からして、多少のエラーはOKという懐の広さが言語としての魅力の一つですから。また、デザインやブラウザ対応によっては、重大なエラーであっても対応できないものがあります。そのサイトのXHTMLの仕様から判断して、場合によっては目をつぶる必要があるかもしれません。
ついでにCSSもチェックしておきましょう。W3C CSS 検証サービスを利用してください。以下にはXHTMLソースの主な修正内容をまとめます。
XHTMLでは省略が許されない閉じタグの修正
HTMLとXHTMLの相違点で代表的なのが閉じタグの省略です。HTMLでは閉じタグがなくてもOKでも、XHTMLだと省略はNGになるのです。一つ一つ、閉じタグを埋めていきましょう。主なタグを挙げてみました。空要素のタグは /> で閉じるようにします。
- <meta />
- <link />
- <br />
- <img />
- <input />
- <script></script>
Javascriptの外部ファイル化
JavascriptコードをHTML上にコメント扱いで記載するのは一般的に行われていますが、XHTMLではNGです。Javascriptコードは外部ファイルにして、scriptタグで読み込むように修正しましょう。
<script src="sample.js" type="text/javascript"></script>
Flashなどの埋め込み
embed要素があるとXHTMLではNGとなってしまいます。これを防ぐ方法を公開されているサイトを下記に挙げましたので、参考にしてください。私は「独断と偏見の何でもレビュー」さんのような方法を使っていますね。
- Flash の embed タグを XHTML Valid なタグに変換する - 独断と偏見の何でもレビュー
- XHTML でフラッシュを表示するには - nlog(n)
- Flash のブログパーツを XHTML valid にする - 小粋空間
ブログパーツやアフィリエイトタグの修正
これらのサービスが提供してくれるタグは、とても便利なのですが、大体がHTMLではOKでもXHTMLではNGな状態になっています。このあたりを改善してもらえると、もっと安心して使えるのですが…。現状では逐一、チェックしなくてはならないんですよね。仕事をしている時のようで、ちょっとイヤ(笑)。
- 属性値を引用符("")で囲む
- & は&に修正する
- 要素名や属性名はすべて小文字で記載
- 閉じタグ処理をする(前述参照)
要素名などを小文字で記載とは、例を挙げると「Width="100"」ではなく「width="100"」というように「width」をすべて小文字で記載します。XHTMLでは「Width」と「width」は別ものとみなされるからです。