<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>歴史</h1><section><h1>HTML 3.2 の規定</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 3.2</anchor> 仕様書では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タグ</anchor>の前後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>の処理に関する
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>の規則を特に紹介しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> また、 <code class="HTMLe"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pre</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>内を除き、
複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は1つの <code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code>
にまとめると規定されています。
ただし、<q><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor></q>の定義はありません。 </p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> ちなみに、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML宣言</anchor>では <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RS</anchor></code> と <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RE</anchor></code>
(<code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> と <code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CARRIAGE RETURN</anchor></code>) と 
<code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code> (<code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code>) の他、
<code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SEPCHAR</anchor></code> の <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TAB</anchor></code> として
<code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HORIZONTAL TABULATOR</anchor></code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機能文字</anchor>として宣言されています。
この4<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>ということでよいのでしょうか。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> なお、将来の版では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タブ</anchor>の幅が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スタイル・シート</anchor>で制御できるようになるかもしれないと予告されています。
(が、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS 2.1</anchor> までではまだ実現していません。。。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end>
仕様書:<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 3.2</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">勧告</anchor>)<ul><li><csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en">HTML as an SGML Application</csection>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/REC-html32-19970114#sgml">http://www.w3.org/TR/REC-html32-19970114#sgml</anchor-external></li></ul></li></ul></p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>HTML 4 の規定</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> HTML 4 <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="HTML4:&quot;struct/text.html#whitespace&quot;">IW:HTML4:&quot;struct/text.html#whitespace&quot;</anchor-external>
は、次を<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>空白</anchor><rt xmlns="http://www.w3.org/1999/xhtml">white space</rt></rubyb>文字</dfn>としています。<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">間隔</anchor> (<code class="char">U+0020</code> <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code>))</li><li>ASCII <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タブ</anchor> (<code class="char">U+0009</code> <code class="char">HORIZONTAL TAB</code>)</li><li>ASCII <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改頁</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書式送り</anchor>) (<code class="char">U+000C</code> <code class="char">FORM FEED</code>)</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">零幅間隔</anchor> (<code class="char">U+200C</code> <code class="char">ZERO-WIDTH SPACE</code>)</li><li><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>改行</anchor><rt xmlns="http://www.w3.org/1999/xhtml">line break</rt></rubyb><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復帰</anchor> (<code class="char">U+000D</code> <code class="char">CARRIAGE RETURN</code>)</li><li>改行 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行送り</anchor>) (<code class="char">U+000A</code> <code class="char">LINE FEED</code>)</li><li>復帰改行組 (<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRLF</anchor></code>)</li></ul></li></ul></p><p>です。 HTML 4 の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書文字集合</anchor>には他にも定義によっては空白文字に属する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>が色々含まれていますが、
HTML 4 の空白は上記だけです。
HTML 4 仕様書は、他の種類の空白の扱いについては規定せず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>は空白制御のためには適切な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スタイル</anchor>を使うべき (should)
としています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <code class="HTMLe"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pre</anchor></code> 以外の HTML 要素では、
空白が「<dfn>語</dfn>」を分離します。
(ここで、語とは、非空白文字の連続体のことです。)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UA</anchor> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書式付け</anchor>に際して、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">用字系</anchor>および対象<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体</anchor>の慣習に従って語を識別し、これを配置するべきです
(should)。</p><p>語間に間隔 (<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">語間<rt xmlns="http://www.w3.org/1999/xhtml">inter-word</rt></rubyb>間隔</dfn>) を挿入すると見た目が向上するかもしれません。
しかし、間隔の取り方に関する慣習は言語・用字系により種々です。
HTML 4 仕様書が挙げている例では、<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラテン文字</anchor>では間隔を挿入する</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タイ文字</anchor>では零幅間隔を挿入する<ul><li>注: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タイ語</anchor>は、日本語や中文のように語間間隔を入れずに表記します。
だけど零幅間隔を使えば単語境界を機械的に識別できるじゃん! という文脈でよく例になります。
(しかしながら、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TIS620</anchor> には零幅間隔はないと思うし、本当に使われているんだか。)</li></ul></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">中文</anchor>では全く語間間隔を表示しない</li></ul></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原始文書</anchor>中の空白列は、全く異なって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリング</anchor>されるかもしれないことに注意が必要です。
UA は、原始文書中の空白列をレンダリングするときにはまとめて1つ分の語間間隔にするべきです。
これは、自然言語情報 (<code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code> 属性や上位プロトコルからの値)
が得られないときでも行うことができ、また行うべき
(can &amp; should) とされています。
空白が重要なときには、 <code class="HTMLe">pre</code> 要素型を使います。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> の規定や既存 UA 実装の問題から、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開始タグ</anchor>直後や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終了タグ</anchor>直前の空白が表示されることを当てにするべきではありません
(should not)。</p><p>たとえば、 <samp class="HTML">I &lt;a&gt;love&lt;/a&gt; you.</samp>
を <samp class="HTML">I&lt;a&gt; love &lt;/a&gt;you.</samp> と書いてしまうと、
意図とは異なることが多いでしょう。</p><p>SGML の問題は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">記録開始</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">記録終了</anchor>の無視に関する規則のことで、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タグ</anchor>の前後に改行があるときに注意が必要です。
詳しくは <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML//空白</anchor></code>を参照。</p></section><section><h1>XHTML m12n の規定</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> 適合 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML族利用者エージェント</anchor>は次の規則に従って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>を処理しなければなりません
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">XHTML m12n 1.0 FE 3.5</src>。</p><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML 1.0</anchor> の <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">S</anchor></code>
と同じ4文字です。<ul><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0009</anchor></code> <code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HORIZONTAL TABULATION</anchor></code></li><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000A</anchor></code> <code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code></li><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000D</anchor></code> <code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CARRIAGE RETURN</anchor></code></li><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0020</anchor></code> <code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code></li></ul></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理器</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor>し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に渡します。</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理器</anchor>から受取ったデータを次のように処理しなければなりません。<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ブロック要素</anchor>を囲む<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>はすべて除去するべきです。</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈</anchor>は完全に除去し、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>の処理に影響させてません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈</anchor>の両側の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は2つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>として扱います。</li><li><code class="XMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xml</anchor>:<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">space</anchor></code> が <code class="XML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">preserve</anchor></code>
であれば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は保存しなければならず、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ブロック</anchor>中の
<code class="charname"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> を変換してはなりません。</li><li><code class="XMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xml</anchor>:<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">space</anchor></code> が <code class="XML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">preserve</anchor></code>
でなければ、<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ブロック要素</anchor>の先頭と末尾の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は除去しなければなりません。</li><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> は
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZERO-WIDTH SPACE</anchor></code>
(<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+200B</anchor></code>) のいずれかに変換するか、
または削除しなければなりません。
3通りのいずれを選ぶかは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>依存で、
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> の前後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">用字系</anchor>によります。</li><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> なしの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>の列は
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code> 1文字に置換しなければなりません。</li><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> が1つ以上含まれる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>の列は、
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> が1つだけの時と同じように置換しなければなりません。</li></ul></li></ul></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性値</anchor>における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML 1.0</anchor>
に従って処理します。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML m12n</anchor> には <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code>
の変換方法に関する参考として次の内容の注記があります。</p><ul><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> の前後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">用字系</anchor>が同じであり、
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">語</anchor>分離子として使われるものであるなら、
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code> に変換するべきです。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラテン文字</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ギリシャ文字</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キリル文字</anchor>など)</li><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> の前後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">用字系</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表意文字</anchor>系や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">語</anchor>分離子を使わない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書字方法</anchor>なら、
除去するべきです。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">中文</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語</anchor>など)</li><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code> の前後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">用字系</anchor>が非<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表意文字</anchor>系で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">語</anchor>分離子を使わないものなら、
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZERO-WIDTH SPACE</anchor></code> に変換するか、
または除去するべきです。</li><li>前三項の条件に該当しないなら、 <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE FEED</anchor></code>
は <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SPACE</anchor></code> に変換するべきです。</li></ul><p>なお、 <code>COMMON</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">用字系</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">句読点</anchor>など)
はもう一方の側と同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">用字系</anchor>と考えます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の属する用字系の名前は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTR</anchor> #24 にあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 仕様書:<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML m12n</anchor><ul><li><csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">3.5. XHTML Family User Agent Conformance</csection>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XHTML1m12n:&quot;conformance.html#s_conform_user_agent&quot;">IW:XHTML1m12n:&quot;conformance.html#s_conform_user_agent&quot;</anchor-external></li></ul></li></ul></p></section><section><h1>RDFa の規定</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合RDFa処理器</anchor>の項になぜか<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>に対するアドバイスがあります。<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML+RDFa</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML m12n</anchor> の上に成立している</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML m12n</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>の保持を要求している</li><li>がしかし、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理器</anchor>のベースとなっている環境ですべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>を保持していないかもしれない</li><li>だから<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>は色々な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理器</anchor>にわたって互換性を保ちたければ不要な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>を予め削除しておくのがよろし</li></ul></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><cite xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">RDFa in XHTML: Syntax and Processing</cite> (<time xmlns="http://www.w3.org/1999/xhtml">2008-10-14 00:17:32 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/2008/REC-rdfa-syntax-20081014/#processorconf">http://www.w3.org/TR/2008/REC-rdfa-syntax-20081014/#processorconf</anchor-external></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> しかし<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>がこんなにも危ういなんて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> って怖いですねwww</p></section><section><h1>FORM FEED</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> HTML 4 は、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal> の通り、 <code class="char">U+000C</code>
<code class="char">FORM FEED</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改頁</anchor>) を空白の一種としています。</p><p>ところが、 HTML 4 の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML宣言</anchor>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/html4/sgml/sgmldecl.html">http://www.w3.org/TR/html4/sgml/sgmldecl.html</anchor-external>
は、 <code class="char">U+000C</code> を <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UNUSED</anchor></code>
としています。もちろん <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">s</anchor></code> にも含まれません。</p><p>SGML 宣言を信じるとすると、 <code class="char">U+000C</code>
は HTML 4 では使用できず、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal> の規定は無駄になります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <em>XHTML 1.0 C.15. White Space Characters in HTML vs. XML</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/xhtml1/#C_15">http://www.w3.org/TR/xhtml1/#C_15</anchor-external>
は、 HTML では <code class="char">U+000C</code>
を使えるが、 XHTML では使えないと言っています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 本文が正しく、 <code class="char">U+000C</code> が使えたとしても、
<code class="SGML">s</code> には含まれないので、 HTML 文書の本文では <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal>
の通りの扱いを受けますが、 SGML 的には空白として使えません
(例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性指定</anchor>の間には使えません)。</p></section><section><h1>VT</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000B</anchor></code> は、一時期 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">space characters</anchor> に含まれていましたが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor> 等との整合性のため削除されました。</p><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>VT</anchor> </sw-see></p></section><section><h1>ZWSP</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <code class="char">U+200C</code> <code class="char">ZERO-WIDTH SPACE</code>
は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal> の通り HTML で空白として扱われます。
しかし、 SGML 宣言によれば、 <code class="SGML">s</code>
には含まれません。ですから、 HTML 文書の本文では <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal>
の通りの扱いを受けますが、 SGML 的には空白として使えません
(例えば属性指定の間には使えません)。</p></section><section><h1>タグ前後の空白</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> SGML の規定により、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開始タグ</anchor>直後と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終了タグ</anchor>直前の改行は全要素
(<code class="HTMLe"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pre</anchor></code> や <code class="HTMLe"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">textarea</anchor></code> を含みます。) 
で例外なく無視されます。</p><p>HTML 4 <cite>B.3.1 Line breaks</cite>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="HTML4:&quot;appendix/notes.html#notes-line-breaks&quot;">IW:HTML4:&quot;appendix/notes.html#notes-line-breaks&quot;</anchor-external></p><p>例 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML 4 B.3.1</src>: 次の2段落は同じ内容です。<pre class="HTML">&lt;P&gt;Thomas is watching TV.&lt;/P&gt;
&lt;P&gt;
Thomas is watching TV.
&lt;/P&gt;</pre></p><p>なお、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML</anchor> ではこの規定は適用されません。2つ目の段落の内容は改行を含みます。</p><p>詳しくは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML//空白</anchor>をご覧下さい。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal> HTML 4 附属書 B (参考) には<q>すべての要素で例外なく</q>なんて書いてありますが、
実際には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強制空要素</anchor>が例外になりますし、要素が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTD</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">添加要素指定</anchor>に該当するか否かや改行が
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CR</anchor></code> か <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LF</anchor></code> か両方かその他かで細かいところが変わってきます。
(その他なら無視されません。)</p><p>(XHTML はやっぱりこの問題はありません。 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> では実体を読んだら最初に改行を正規化してしまいますから。)
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end>
<cite>Live DOM Viewer</cite> (<code>2008-05-03 12:45:29 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cstyle%3Epre%20%7Bborder%3A%201px%20blue%20dotted%7D%3C%2Fstyle%3E%0A%3Cpre%3E%0Axxx%3C%2Fpre%3E%0A%3Cpre%3E%26%23xa%3Bxxx%3C%2Fpre%3E%0A">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cstyle%3Epre%20%7Bborder%3A%201px%20blue%20dotted%7D%3C%2Fstyle%3E%0A%3Cpre%3E%0Axxx%3C%2Fpre%3E%0A%3Cpre%3E%26%23xa%3Bxxx%3C%2Fpre%3E%0A</anchor-external></p><p><code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pre</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>先頭が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値文字参照</anchor>となった<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>であるとき、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>は無視されるのか?</p><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 2</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor>): 無視されない</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 3.2</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor>): 無視されない</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 4</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor>): 無視されない</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML 1</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML 1</anchor>): 無視されない</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 5</anchor>: 無視される</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML 5</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML 1</anchor>): 無視されない</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE 7</anchor>: 無視される</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> 3.1.1: 無視される</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> 2: 無視されない</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> 9.27: 無視されない</li></ul><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end>
<cite>Live DOM Viewer</cite> (<code>2008-05-03 12:50:00 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Ctextarea%3E%0D%0Axxx%3C%2Ftextarea%3E%0D%0A%3Ctextarea%3E%26%23xa%3Bxxx%3C%2Ftextarea%3E%0D%0A">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Ctextarea%3E%0D%0Axxx%3C%2Ftextarea%3E%0D%0A%3Ctextarea%3E%26%23xa%3Bxxx%3C%2Ftextarea%3E%0D%0A</anchor-external></p><p><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;26</anchor-internal> と同じく、 <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">textarea</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> 2 と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> 9.27 でも無視され<em>ます</em>。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;27</anchor-internal> ちなみに、途中や末尾の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor>は無視されないようです。</p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end>
<cite>Re: HTML での 空白の扱いについて</cite> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://groups.google.com/groups?selm=cb68cm%24bte%241%40news.sfc.keio.ac.jp">http://groups.google.com/groups?selm=cb68cm%24bte%241%40news.sfc.keio.ac.jp</anchor-external>,
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="mid:cb68cm$bte$1@news.sfc.keio.ac.jp">mid:cb68cm$bte$1@news.sfc.keio.ac.jp</anchor-external></p><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML 1.0</anchor> では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML 1.0</anchor>
に従った <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> としての処理の後、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS 2.0</anchor> によって処理すると規定しています。
ただし、  <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS 2.0</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラテン文字</anchor>以外に関する規定がないので将来この部分は修正されるかもしれないとされています。</p><p>仕様書:<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML 1.0</anchor><ul><li><csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">3.2. User Agent Conformance</csection>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XHTML10:&quot;uaconf&quot;">IW:XHTML10:&quot;uaconf&quot;</anchor-external></li></ul></li></ul></p><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end>
XHTML 1.0 での予告通り(?) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML m12n</anchor>
では説明が細かくなっています。</p><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML m12n</anchor><ul><li><csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">3.5. XHTML Family User Agent Conformance</csection>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XHTMLm12n:&quot;conformance.html#s_conform_user_agent&quot;">IW:XHTMLm12n:&quot;conformance.html#s_conform_user_agent&quot;</anchor-external></li></ul></li></ul><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal>-13
正確には、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML 1.0</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">FE</anchor> であった
<code class="XMLa">xml:space</code> の部分が 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML m12n</anchor> には引き継がれてますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML 1.0</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SE</anchor> ではカットされていますね。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Line Mode Browser</anchor> 1.2a (1992年2月?) は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バグ</anchor>の修正として、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor> (表示上の?) の後に続く<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>は無視するようにした、
とあります。この修正によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">段落</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タグ</anchor>の後に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>があっても余分な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>が表示されなくなるそうです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><cite xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">Change History of Line Mode Browser</cite> 
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/LineMode/User/Features.html">http://www.w3.org/LineMode/User/Features.html</anchor-external></comment-p><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end>
<cite>Article 3507 at 02/12/03 10:45:07 From: shim@d5.bs1.fc.nec.co.jp Subject: <strong>[</strong>w3m-dev 03507<strong>]</strong> save space in JP chars</cite> (<code>2002-12-03 10:46:24 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev/200212.month/3507.html">http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev/200212.month/3507.html</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2007-05-17 11:50:50 +00:00</weak>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end>
<cite><strong></strong>[<strong></strong>w3m-dev 04238<strong></strong>]<strong></strong> [patch] simple preserve space</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></anchor> 著, <code>2007-05-15 02:45:54 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://permalink.gmane.org/gmane.comp.web.w3m.devel/905">http://permalink.gmane.org/gmane.comp.web.w3m.devel/905</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2007-05-17 11:54:17 +00:00</weak>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end>
<cite><strong></strong>[<strong></strong>emacs-w3m:10278<strong></strong>]<strong></strong> Re: w3m eats spaces</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Katsumi Yamaoka</anchor> 著, <code>2008-07-02 04:00:13 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://permalink.gmane.org/gmane.emacs.w3m/7639">http://permalink.gmane.org/gmane.emacs.w3m/7639</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cbody%3E%0A%3Cscript%3E%0A%20%20document.write%20(%22%3Cp%3Ex%22)%3B%0A%20%20document.write%20(%22%5Cu000D%22)%3B%0A%20%20document.write%20(%22%5Cu000A%22)%3B%0A%20%20document.write%20(%22%3C%2Fp%3E%22)%3B%0A%20%20w%20(encodeURIComponent%20(document.getElementsByTagName%20(%27p%27)%5B0%5D.firstChild.data))%3B%0A%3C%2Fscript%3E%0A">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cbody%3E%0A%3Cscript%3E%0A%20%20document.write%20(%22%3Cp%3Ex%22)%3B%0A%20%20document.write%20(%22%5Cu000D%22)%3B%0A%20%20document.write%20(%22%5Cu000A%22)%3B%0A%20%20document.write%20(%22%3C%2Fp%3E%22)%3B%0A%20%20w%20(encodeURIComponent%20(document.getElementsByTagName%20(%27p%27)%5B0%5D.firstChild.data))%3B%0A%3C%2Fscript%3E%0A</anchor-external></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> 3、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> 3.1 では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRLF</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LF</anchor> だけになる (使用通り)。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> 9 では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor>は行われていないけど、
この例だけでなく、分断されていない場合であってもそうなる模様。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">ちなみに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE 7</anchor> はなぜか %20 になっている (white-space: pre のときまで!)
が気にしない方がよさそうだw</comment-p><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;30</anchor-internal> をちょっと変えて <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cbody%3E%0A%3Cscript%3E%0A%20%20document.write%20(%22%3Cp%3Ex%22)%3B%0A%20%20document.write%20(%22%5Cu000D%22)%3B%0A%20%20w%20(encodeURIComponent%20(document.getElementsByTagName%20(%27p%27)%5B0%5D.firstChild.data))%3B%0A%20%20document.write%20(%22%5Cu000A%22)%3B%0A%20%20document.write%20(%22%3C%2Fp%3E%22)%3B%0A%3C%2Fscript%3E%0A">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cbody%3E%0A%3Cscript%3E%0A%20%20document.write%20(%22%3Cp%3Ex%22)%3B%0A%20%20document.write%20(%22%5Cu000D%22)%3B%0A%20%20w%20(encodeURIComponent%20(document.getElementsByTagName%20(%27p%27)%5B0%5D.firstChild.data))%3B%0A%20%20document.write%20(%22%5Cu000A%22)%3B%0A%20%20document.write%20(%22%3C%2Fp%3E%22)%3B%0A%3C%2Fscript%3E%0A</anchor-external> にしたらどうなるか?
(<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000D</anchor></code> を出力した直後の状態はどうなっているか。)</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> 3 は <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000D</anchor></code> がまだ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor>
には反映されていない (前の <q>x</q> があるので、 Text 節点はあるが、
<q>x</q> を削除すると、 Text 節点もない状態のまま)。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> 3 は直近の Text 節点は Text 以外のものがでてくるまで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor>
に追加されないらしい。ということで実行エラーになる。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> 9 は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor>なしということで、 <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000D</anchor></code>
まで追加された状態で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> に入っている。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE 7</anchor> はというと、<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000D</anchor></code> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> に入っていない状態。
とはいっても、 <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000D</anchor></code> 以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>も、
非<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>がくるまで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> には入らない仕様らしい (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE</anchor>
の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>だけの Text は現れないようになってるためだろう)。
ちなみに、 Text にアクセスしたら、次に追加される文字列は新しい Text
になるらしく、 Text が w() 前後で2つに分断される。
w() の前に書いたはずの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は2つ目の Text に含まれる。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>の構文についての規定では明記されていませんが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根要素</anchor>の外側の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白文字</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor>として記述することができ、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor>ではない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白文字</anchor>と同様、構文解析時に無視されて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> に現れません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">Editorial: use more terms from the Infra Standard</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-02-08 17:12:54 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/104bd78697738af2eab61740a2f1421ae49a3c95">https://github.com/whatwg/html/commit/104bd78697738af2eab61740a2f1421ae49a3c95</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <cite xml:lang="en">Editorial: use more terms from the Infra Standard</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-02-08 17:12:54 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/104bd78697738af2eab61740a2f1421ae49a3c95">https://github.com/whatwg/html/commit/104bd78697738af2eab61740a2f1421ae49a3c95</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <cite xml:lang="en">Minutes <strong>[</strong>was: Agenda for 971106<strong>]</strong></cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Dan Connolly</anchor>著, <time>1997-11-07 04:22:15 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://lists.w3.org/Archives/Public/w3c-wai-hc/1997OctDec/0277.html">https://lists.w3.org/Archives/Public/w3c-wai-hc/1997OctDec/0277.html</anchor-external></figcaption><blockquote><p>ideographic space</p><p>Resolved: remove it from the list of whitespace characters.</p></blockquote></figure></section></section></body></html>