Google AdSense部分をins要素でマークアップすることの考察と、HTML5で属性値を引用符で囲むか囲まないかという話

Google AdSense部分をins要素でマークアップすることの考察と、HTML5で属性値を引用符で囲むか囲まないかという話

前の記事(Google AdSenseを設置しているweblogで、ins要素にCSSでスタイルを適用する場合の注意点)で、Google AdSense部分が<ins>でマークアップされていることにちょっと引っかかったので、HTMLの仕様を確認してみました。

まず、W3Cの仕様では、4.6.1. The ins element

The ins element represents an addition to the document.

と、シンプルに「ins要素は、文書への追加を表す」と書かれてあります。

W3Cの仕様だけでなく、WHATWGの仕様も確認してみましょう。4.7.1. The ins element

The ins element represents an addition to the document.

と、W3C同様に「ins要素は、文書への追加を表す」と書かれてあります。

うーん、確かにGoogle AdSenseは文書作成者がHTML内に配置するのではなく、Google側が追加する形で挿入しているから、ins要素でもいいのかな。

既にSuperseded Recommendation(置き換えられた勧告)なので参考にしてはいけませんが、XHTML 1.0やHTML4.01では、異なるバージョンの文書・文章を比べて挿入(del要素の場合は削除)された部分のマークアップに用いていましたので、HTML5の「文書への追加」は広義すぎないかなあと思ってしまいました。

ところで、久々にW3CやWHATWGの仕様を見返す機会となったのですが、属性値の記述の仕方に差があることに気が付きました。

W3Cの仕様のソースを見てみると、属性値を””(ダブルクォート)で囲んでいるのに対し、WHATWGの仕様のソースでは属性値を囲まずに記述しています(仕様中のサンプルでは””で囲んでいますが、W3Cのサンプルと合わせているのでしょう)。

HTML5では、W3Cの1.9. A quick introduction to HTMLおよびWHATWGの1.11 A quick introduction to HTMLに仕様がありますが、属性値にASCII whitespace(空白文字)、"(ダブルクォート)、'(シングルクォート)、`(バッククォート)、=(イコール)、<(小なり記号)、>(大なり記号)を含まなければ属性値は引用符で囲まないままにできるとされているので、W3Cの書き方もWHATWGの書き方もどちらも正しいです。

私は元々HTML4.01 StrictとXHTML 1.0でWebに色々と書いてきたので、属性値は引用符で囲まないとむずむずするのですが、囲まなくても問題ない、ということは頭に入れておこうと思います。

ちなみに、この記事を書いている最中にhail2u.net普通のHTMLの書き方に行き当たりましたが、私の書き方もほぼこれに同じです。是非皆さんも参考にしてほしいベスト・プラクティスだと思っています。