<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">互換性無case一致<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">compatibility caseless matching</rt></rubyb></dfn>とは、
<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><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><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-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.unicode.org/versions/Unicode6.2.0/ch03.pdf#page=67">http://www.unicode.org/versions/Unicode6.2.0/ch03.pdf#page=67</anchor-external></li><li><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML Standard</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.whatwg.org/specs/web-apps/current-work/complete.html#compatibility-caseless">http://www.whatwg.org/specs/web-apps/current-work/complete.html#compatibility-caseless</anchor-external></li></ul></refs></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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">互換性無case一致<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">compatibility caseless matching</rt></rubyb></dfn>とは、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:">NFD</anchor>、 <code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">toCasefold</anchor></code>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFKD</anchor>、<code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">toCasefold</anchor></code>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFKD</anchor> をこの順に適用した結果が等しいことをいいます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal></src>。</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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">互換性無case<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">compatibility caseless</rt></rubyb></dfn>な形で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">比較</anchor>するとは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">互換性無case一致</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>なしで適用することをいいます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><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></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode Standard</anchor> の <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</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>を認めているかは曖昧で、
認めていると解釈できなくもありませんが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML Standard</anchor> は禁止しています。</comment-p></section><section><h1>歴史</h1><section><h1>HTML</h1><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 xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">互換性大文字・小文字不区別</anchor>な比較が使われるのは、<figure class="list"><ul><li><code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">usemap</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>と <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">map</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">name</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>との比較</li><li><code class="HTML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&lt;input type=radio&gt;</anchor></code> な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム制御子</anchor>でひとまとまりとして扱うべき対象の特定のための <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">name</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>の比較</li></ul></figure>... の2箇所だけで、他はすべて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII大文字・小文字比較</anchor>を使っています。</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> この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:">WinIE</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:">WinIE</anchor> の挙動をリバースエンジニアリングして新しい仕様を作る必要が認められるほどには互換性の問題は深刻ではなく、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</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> <time>2016年10月<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2016-10</attrvalue></time>、実態を調査した結果不要であることが判明したとして、
<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><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><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> <cite xml:lang="en">Remove &quot;compatibility caseless&quot; matching</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2016-10-21 04:41:46 +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/6acdb2122298d2bb7bb839c0a61b4e1f9b0f9bc9">https://github.com/whatwg/html/commit/6acdb2122298d2bb7bb839c0a61b4e1f9b0f9bc9</anchor-external></li></ul></refs></section></section></body></html>