久しぶりに HTML LINT を使って当ブログのソースをチェックしてみたらエラーだらけになったので、内容を確かめてみた。

エラーとして報告されたもののうちで多かったのは、

<ARTICLE>~</ARTICLE> 内には H1/H2/H3/H4/H5/H6が必要です。

<SECTION>~</SECTION> 内には H1/H2/H3/H4/H5/H6が必要です。

だったが、これらの部分に実際は h2 などが存在しているのだ。

どうやら、 HTML LINT では、 article や section の開始タグの「直後」に h2 などがないと、 h2 などが存在しないという判断をしてエラーにするようだ。だが、文法上はそのような制限はないので、このエラーレポートは間違い。

ちなみに、 rNote-re では、セクション(section)や記事(article)を構造上区分けする意味合いで使用している。例えば section タグで囲まれた部分には、基本的に対応して画面に表示させる見出し文字列といったものは存在していない。(例えば、「ここはサイドメニュー部分」「ここは記事本体の部分」といった構造的な区分けを section タグで行っているのであって、見出し文字列を表示させるために section タグを使用しているわけではないから、ということ。)

また、<table>の属性として、枠線の太さなどを設定する border は HTML5 では廃止されたとしてエラーレポートが表示されるのだが、 HTML5 では、境界線の太さを指定するための border は廃止されたが、「枠線の有無を表す border 」は存在している(HTML5 & CSS3 リファレンス)。ところが、この文法に沿った記述も HTML LINT ではエラーとして扱われている。このエラー表示を減らすために、文法上正しい記述ではあるが border による枠線の有無の設定を削除して枠線の処理は全て CSS に移行したが、 HTML5 自体の仕様に反しているエラー表示なので納得できないものがある。

キーワード: rNote-re HTML LINT