<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>一般実体 &amp;shy;</h1><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML4</anchor> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="HTML4:&quot;struct/text.html#hyphenation&quot;" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW">IW:HTML4:&quot;struct/text.html#hyphenation&quot;</anchor-external>
によりますと、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> には、普通の (plain) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハイフン</anchor>と軟い (soft)
ハイフンの二種類があります。 
普通のハイフンは <code class="char">-</code> (<code class="char">U+002D</code>;
<code class="char">HYPHEN-MINUS</code>) でありまして、
軟かいハイフンは <code class="HTML">&amp;shy;</code> (<code class="char">U+00AD</code>;
<code class="char">SOFT HYPHEN</code>; <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SHY</anchor>) なのであります。</code></p><p>(HTML の<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="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end><ul><li>軟ハイフンを解釈する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ブラウザ</anchor>は、次の意味で扱わなければなりません (must)。<ul><li>行が軟ハイフンの位置で区切れるなら、最初の行の終わりにハイフン文字を1つ表示しなければならない (must)。</li><li>行が軟ハイフンの位置で区切れないなら、 UA はハイフン文字を表示してはならない (must not)。</li></ul></li><li>検索や並べ替えのような操作では、軟ハイフンは常に無視するべき (should)。</li></ul></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> なにげに、 <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 4 適合 UA であっても軟ハイフンを処理できなければならないわけではないことがわかります。
日本で作られた UA は軟ハイフンなんて全然知らなかったりしますからね。</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>
<cite>Bug 9101 - Break lines at soft hyphens (&amp;shy;) and display hyphens if line broken</cite> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=9101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">https://bugzilla.mozilla.org/show_bug.cgi?id=9101</anchor-external></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE</anchor> は <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SOFT HYPHEN</anchor></code> を改行位置の参考にしますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Gecko</anchor>
はそうしません。 (<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="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal> Opera は未対応との説もあり、版による模様。</p></section><section><h1>安全性・可用性・アクセス可能性</h1><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>
<code class="HTML">&amp;shy;</code> や <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SOFT HYPHEN</anchor></code>
は、 <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>であるものとそうでないものも含めて、<ul><li>常に存在しないものと同じように扱う (正しい動作)</li><li>常に <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HYPHEN-MINUS</anchor></code> と同じように扱う
(稀な状況でのみ正しい動作)</li><li>場所により存在しないものまたは <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HYPHEN-MINUS</anchor></code>
として扱う (正しい動作)</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>と少なくても3種類の扱われ方が実在しています。
そのため、異なる利用者エージェントの利用者には異なって表示されることがあり、
混乱の元になっています。</p><p>その中でも特に問題が多いのは存在しないものと同じように扱う場合や
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HYPHEN-MINUS</anchor></code> と同じように扱う場合です。
正しい動作であるにも関わらず問題があるというのも困ったものです。
どちらの場合にせよ、利用者の直感と反する動作になります。
また、表示によって利用者を欺く<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりすまし</anchor>にも使われています。</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form><section><h1>メモ</h1><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section></section><section><h1>メモ</h1></section></body></html>