XHTML と HTML5-空要素と空白の扱い-

XHTMLHTML5 の違いは、端的に言えば XHTMLXML なので XML の文法に従わなければならないということである。細かく見ていけばいろいろあるが、今回の記事では、重要だが忘れがちな点に絞って述べたいと思う。

空要素のタグ

XML の場合、開始タグと終了タグの間に何もない要素は、終了タグを省略して、開始タグの末尾に「/」を入れて書くことが出来る。よって、XHTML では、<br></br><br/> も文法的に正しい。
HTML5 の場合、Void に分類される要素はコンテンツが存在せず、終了タグも存在しない。ただし、開始タグの末尾に「/」を入れる書き方も可。br 要素は Void に分類されるので、<br> または <br/> と書くのが正しく、<br></br> は不可。

空白、改行文字の扱い

先ず、テキストコンテンツの中の空白や改行文字については、ブラウザでの表示を確認した限りでは、改行文字は半角スペース相当、半角スペースは、2個以上続けても1個相当というのは、XHTMLHTML5 で共通していた。もちろん、「<pre></pre>」などを使って表示をコントロールすることは出来る。
そして、テキストコンテンツの外の空白や改行文字、例えば<p>タグや<div>タグをインデントした場合についても、ブラウザでの表示を確認した限りでは、XHTMLHTML5 で違いはなかった。
注意しなければならないのは、XHTMLXML であるので、アプリケーションに渡された空白や改行文字の扱いは、アプリケーション次第だということである。具体的には、XHTML 文書を (XML として)InDesign に読み込んだ時、テキストコンテンツの中の空白や改行文字だけでなく、タグとタグの間の改行などで、HTML に慣れていると「意外」だと思う挙動をすることがある。