* 一般実体
[1] [[HTML4]]
によりますと、 [[HTML]] には、普通の (plain) [[ハイフン]]と軟い (soft)
ハイフンの二種類があります。
普通のハイフンは [CODE(char)[-]] ([CODE(char)[U+002D]];
[CODE(char)[HYPHEN-MINUS]]) でありまして、
軟かいハイフンは [CODE(HTML)[]] ([CODE(char)[U+00AD]];
[CODE(char)[SOFT HYPHEN]]; [CODE(char)[[[SHY]]) なのであります。]]
(HTML の[[文書文字集合]]をよくみれば、
他にも一杯あることが分かるのですけどねぇ。)
[2]
- 軟ハイフンを解釈する[[ブラウザ]]は、次の意味で扱わなければなりません (must)。
-- 行が軟ハイフンの位置で区切れるなら、最初の行の終わりにハイフン文字を1つ表示しなければならない (must)。
-- 行が軟ハイフンの位置で区切れないなら、 UA はハイフン文字を表示してはならない (must not)。
- 検索や並べ替えのような操作では、軟ハイフンは常に無視するべき (should)。
[3] なにげに、 >>2 によれば、たとえ HTML 4 適合 UA であっても軟ハイフンを処理できなければならないわけではないことがわかります。
日本で作られた UA は軟ハイフンなんて全然知らなかったりしますからね。
[4]
[CITE[Bug 9101 - Break lines at soft hyphens () and display hyphens if line broken]]
[[Opera]] や [[WinIE]] は [CODE(char)[[[SOFT HYPHEN]]]] を改行位置の参考にしますが、 [[Gecko]]
はそうしません。 (>>2 の規定には従っています。)
[5]
>>4 Opera は未対応との説もあり、版による模様。
*安全性・可用性・アクセス可能性
[6]
[CODE(HTML)[]] や [CODE(char)[[[SOFT HYPHEN]]]]
は、 [[HTML]] [[利用者エージェント]]であるものとそうでないものも含めて、
- 常に存在しないものと同じように扱う (正しい動作)
- 常に [CODE(char)[[[HYPHEN-MINUS]]]] と同じように扱う
(稀な状況でのみ正しい動作)
- 場所により存在しないものまたは [CODE(char)[[[HYPHEN-MINUS]]]]
として扱う (正しい動作)
- 常に未対応の[[文字]]として (代替[[グリフ]]などで) 扱う
(場合によっては正しい動作)
と少なくても3種類の扱われ方が実在しています。
そのため、異なる利用者エージェントの利用者には異なって表示されることがあり、
混乱の元になっています。
その中でも特に問題が多いのは存在しないものと同じように扱う場合や
[CODE(char)[[[HYPHEN-MINUS]]]] と同じように扱う場合です。
正しい動作であるにも関わらず問題があるというのも困ったものです。
どちらの場合にせよ、利用者の直感と反する動作になります。
また、表示によって利用者を欺く[[なりすまし]]にも使われています。
[[#comment]]
** メモ
[[#comment]]
* メモ