[1] CONTEXT (CONTEXTUAL RULE REQUIRED、文脈的規則必須) は、 その符号位置がラベルでは特定の文字や特性が満たされない限り利用できないことを表す導出特性値です >>2。
[6] CONTEXT の符号位置が利用できるかどうかは、そのラベルの他の符号位置に依存します。 この利用できるかどうかを決定する規則を文脈的規則と呼び、 IANA登録簿 (>>10) が用意されています。
[21] IDNA2008 では、 文脈的規則は登録の際に適用されます。lookup の際にも適用されるか否かは各規則によって異なります。
[38] PRECIS では、 CONTEXT
の文字は、
適切な規則が確立されており、その規則と整合する場合を除き、
使ってはなりません >>36。
[44] ラベルの妥当性基準では、 ContextJ rules のみ使われる場合があります。
[22] 文脈的規則は、仕様上は擬似コードによって記述されており、 その符号位置が含まれるラベルについて評価した結果真、偽、未定義のいずれかが得られます。
[28] 文脈的規則は定義されていることもあります (DEFINED) し、 存在しないこと (NULL、null規則) もあります。 >>24 3.1.2.2.
[29] ある文字が IDN に必要かどうか、ラベルのどこで認めるべきかは簡単には決められないので、 ある特定の版においては null としても構いません。もちろん、改訂版において null でない文脈的規則を定めても構いません。 >>24 3.1.2.2.
... のいずれかとなります。 >>24 3.1.2.2.
[11] 現在、次の符号位置に対して文脈的規則が定義されています >>10。
[30] PVALID や UNASSIGNED は、それに分類された文字が違う導出特性値に変更されることはないとされていますが、 CONTEXT ではそのような説明がされていません。
[43] ToASCII や ToUnicode の入力 CheckJoiners >>42
は、 CONTEXTO
規則の適用の可否を指定する boolean です。
[34] 元々の RFC 5892 の定義は Unicode 5.2.0 に拠っています。
[35] 2011年8月に IANA 登録簿 (>>10) が更新されて Unicode 6.0.0 に対応していますが、 文脈的規則は変更されていません。
[3] CONTEXT に分類されている符号位置は、特定の文脈で不可視であるなどの性質から無条件に利用を認めることができないものとなっています >>2。
[25] CONTEXT の制約は、混乱を引き起こすおそれがある文字の用法を完全に制限することを目的としたものではなく、 ゾーン管理者が十分知識を持たない用字系でのみ有用な、それ以外では有害な文字の使用を限定することを目指したもののようです。 >>24
ZERO WIDTH JOINER
はインド系諸文字と共に使われますが、
ラテン文字と一緒には使いません。主にラテン文字を扱うゾーンの管理者はこの文字の取り扱いについて十分な知識を持っていないでしょう。
主にインド系諸文字を扱うゾーンの管理者なら、どこでは使っても良くどこでは使う必要がない、使ってはいけないかを判断できる可能性が高いです。したがってラテン文字のゾーンの管理者が気にしなくても良い程度に利用を制限するのが CONTEXT の制約の趣旨のようです。[39] IDNA: use proposed UTS46 flags to avoid breaking YouTube (annevk著, ) <https://github.com/whatwg/url/commit/dc9d83106cada9af507bf37dee3973de97b020fd>
[40] IDNA / UTS #46 "should" requirements (Bidi and Joiners) · Issue #110 · whatwg/url () <https://github.com/whatwg/url/issues/110>
[41] Address several IDNA issues by annevk · Pull Request #309 · whatwg/url () <https://github.com/whatwg/url/pull/309>