-
Notifications
You must be signed in to change notification settings - Fork 4
/
817.txt
194 lines (154 loc) · 13.3 KB
/
817.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
[1] 「機能 [VAR[A]] が仕様書 [VAR[B]] に対する[DFN[[RUBYB[意図的違反]@en[willful violation]]]]である」とは、
仕様書 [VAR[B]] にて規定されている現実離れした機能 [VAR[A']]
とは少し異なる現実的な機能 [VAR[A]] が規定されていることを意味します。
* 仕様書
[REFS[
-[2] [[HTML Living Standard]] ([[Web Applications 1.0]] ([[HTML5]]))
-- [CSECTION@en[Compliance with other specifications]]
<http://www.whatwg.org/specs/web-apps/current-work/complete.html#willful-violation>
]REFS]
* 定義
[3] [[Web Applications 1.0]] は「他の仕様書に対する適合性」の節 ([[参考]]) で次のように
「[[意図的違反]]」という語を定義しています。
> This specification interacts with and relies on a wide variety of other specifications. In certain circumstances, unfortunately, conflicting needs have led to this specification violating the requirements of these other specifications. Whenever this has occurred, the transgressions have each been noted as a "[DFN@en[willful violation]]".
> この仕様書は他の色々な仕様書と関係したり依存したりしています。
しかし残念ながら、利害の衝突のためにこの仕様書が他の仕様書の要件に違反せざるを得ないこともあります。
そのような罪過については常に「[DFN[意図的違反]]」と注記しています。
* 意図的違反
[47] [[Web]] 関連仕様には次の[[意図的違反]]があります。
[FIG(list)[
- [63] [[RFC 2119]] [[助動詞]]は、[[小文字]]で表記されます。
- [23] [DEL[[[URL]] の構文解析が [[RFC]] とは異なります。]]
-- [24] <http://html5.org/tools/web-apps-tracker?from=3244&to=3245> で [[URL]] の定義ごと削除されました。
- [4] [DEL[「[[URL]]」という語を [[RFC 3986]] とは異なる意味で (一般的に用いられている意味で) 使っています]]
-- [36] 2013年2月に [[URL Standard]] への参照に置き換えられました <http://html5.org/tools/web-apps-tracker?from=7709&to=7710>。
- [30] [DEL[[[URI]] や [[IRI]] の規定に反して[[誤り処理]]を定義しています]]
-- [37] 2013年2月に [[URL Standard]] への参照に置き換えられました <http://html5.org/tools/web-apps-tracker?from=7709&to=7710>。
- [19] [[HTTP]] の規定に反して、 [CODE(HTMLa)@en[[[charset]]]] の [[sniffing]] を行っています
- [25] [DEL[[CODE(HTTP)@en[[[Content-Type]]]] の構文解析について [[HTTP]] とは異なる規定をしています]]
-- [26] <http://html5.org/tools/web-apps-tracker?from=5978&to=5979>
で[[意図的違反]]でないように言い回しでごまかされています
- [17] 「[CODE(MIME)@en[[[text/javascript]]]]」は公式には「[[廃止]]」とされていますが、
[[JavaScript]] を表すものとして使います
-- 「意図的違反」とは書いていませんが、「意図的違反」の定義にリンクされています
- [6] [[HTML文書]]では[[名前空間]]の処理が [[XPath 1.0]] と異なっています
-[15] [[HTML出力方式]]の [[XSLT]] [[スタイル・シート]]を使って [[DOM]]
を構築するときの[[名前空間]]の処理が [[XSLT 1.0]] と異なっています
- [5] [[妥当な電子メール・アドレス]]は [[RFC 5322]] の[[電子メイル・アドレス]]の構文とは異なっています
- [9] [DEL[[CODE(HTMLe)@en[[[form]]]] の[[提出]]先 [[URL]] が[[相対URL]] の時の[[解決]]の方法は [[RFC 3986]] の[[処理モデル]]と異なっています]]
-- [38] 2013年2月に [[URL Standard]] への参照に置き換えられました <http://html5.org/tools/web-apps-tracker?from=7709&to=7710>。
-[10] [DEL[[[大域適用範囲]]において [CODE(JS)@en[[[this]]]] [[キーワード]]が表すものが [[ES3]] とは異なっています]] [SRC[>>45]]
- [7] [DEL[[CODE(MIME)@en[[[text/cache-manifest]]]] では[[文字符号化]]が [[RFC 2046]] とは違って [[UTF-8]] に固定されています]>>20]
- [8] [CODE(MIME)@en[[[text/cache-manifest]]]] では[[改行]]が [[RFC 2046]]
とは違って [[CRLF]] 正規形でなくても構いません
-[11] 特定の[[文字符号化]]を別の[[文字符号化]]とみなして処理することがあって、
[[CHARMOD]] とは異なっています
-[12] [DEL[[[UTF-16]] の[[既定値]]が [[LE]] であるところが [[RFC 2781]] とは異なります]]
-- [[Encoding Standard]] の採用により [[willful violation]] ではなくなりました (技術的には変更なし)。
-[16] [CODE(MIME)@en[[[charset]]]] [[引数]]の省略時の動作が [[HTTP]] や [[MIME]]
とは異なります
- [35] [CODE(MIME)@en[[[charset]]]] より [[BOM]] が優先されます。
-- [52] 以前は [[HTML Standard]] にありましたが、 [[Encoding Standard]] に移動しました
-- [53] [[Encoding Standard]] は「意図的違反」という用語を使っていませんが、
[[HTTP]] 違反だとは言っています。
-- [CITE@en[Web Applications 1.0 r7360 Make a BOM override HTTP headers.]] ([TIME[2012-09-16 12:55:00 +09:00]] 版) <http://html5.org/tools/web-apps-tracker?from=7359&to=7360>
-[13] [DEL[[[文字符号化]]に関わらず [CODE(charname)@en[[[BOM]]]] を削るところが [[Unicode]] の[[処理モデル]]とは異なります]]
- [18] [[XHTML]] で特定の[[公開識別子]]が指定されている時は、
[[HTML]] と同等の[[文字参照]]が使えます
-- [[XHTML名前付き文字参照DTD]]参照。
-- 厳密には [[XML]] に違反しているとは言えないものの、 [[XML]] 仕様書の要件の精神に反する、とされています
- [21] [DEL[[CODE(CSS)@en[[[:active]]]] は、[[要素]]が[[活性化]]された時のみならず、[CODE(DOMe)@en[[[mousedown]]]] から [CODE(DOMe)@en[[[mouseup]]]] までの間にも適用されます。]]
-- [22] 後に [[willful violation]] ではないように言い回しでごまかされています。
<http://html5.org/tools/web-apps-tracker?from=5896&to=5897>
-[14] [CODE(JS)@en[[[document.all]]]] が[[偽]]として評価されるところが [[ES3]]
とは異なります
- [41] [DEL[[[符号化ラベル]]の解釈方法が [[UTS #22]] と異なります。]]
-- [[Encoding Standard]] は「意図的違反」の語は使っていません
-- [CITE@en[Unicode informed us we are not violating Unicode https://www.w3.org/Bugs... · a0429a6 · whatwg/encoding]] ([TIME[2014-08-24 03:09:32 +09:00]] 版) <https://github.com/whatwg/encoding/commit/a0429a6b2b043d9b7e130554529d66636c73133f>
- [39] [DEL[[[Encoding Standard]] による [[utf-16]] の [[BOM]] の扱いは [[Unicode Standard]] に違反しています]]
-- [[Encoding Standard]] は「意図的違反」の語は使っていません
-- [CITE@en[Unicode informed us we are not violating Unicode https://www.w3.org/Bugs... · a0429a6 · whatwg/encoding]] ([TIME[2014-08-24 03:09:32 +09:00]] 版) <https://github.com/whatwg/encoding/commit/a0429a6b2b043d9b7e130554529d66636c73133f>
- [42] [[SVG 1.1]] のうち現実と矛盾する部分を「意図的違反」として異なる方法で実装するよう求めています。
- [49] [[イベントループ]]は [[JavaScript]] 仕様に[[意図的違反]]する形で規定されています。
- [58] [CODE(DOMi)@en[WindowProxy]] の[[同一起源ポリシー]]絡みの幾つかの動作は
[[JavaScript]] 仕様への[[意図的違反]]です。
]FIG]
[27] 一旦[[意図的違反]]として記載され、実質的に[[意図的違反]]であっても、
[[HTML WG]] の抵抗勢力による反対意見のために表現を改めて[[意図的違反]]で無いかのように書き直されていることがあります。
ある事実が「[[意図的違反]]」であるとされるかどうかは政治的な問題です。
[29] [CODE(MIME)@en[[[application/octet-stream]]]] に [CODE(MIME)@en[[[codecs]]]] [[引数]]が与えられた場合の扱いは
[[RFC 2046]] に沿っていませんが、[[RFC 2046]] による [[MIME]] 的扱いに先立った前処理段階であるとして、
[[意図的違反]]ではないこととなっています。
;; <http://html5.org/tools/web-apps-tracker?from=5993&to=5994>
[56] [[Encoding Standard]] は [DFN[in violation of]] と呼んで定義なしで[[意図的違反]]を注記しています。
[FIG(list)[
- [[復号][復号 (符号化)]]により、[[符号化ラベル]]より[[BOM]]が優先されます。
]FIG]
* 明記されていない意図的違反
- [34] [CODE(MIME)@en[[[multipart/form-data]]]] の生成の方法は [[RFC 2388]] に多くの点で違反しています。
[32] [CODE(MIME)@en[[[text/javascript]]]] は正式には[[廃止]]されているにも関わらず、
実際には最もよく用いられているため [[HTML]] ではこれを採用しています。
これはなぜか [[willful violation]] とはされていません。
[REFS[
- [33] <http://www.whatwg.org/specs/web-apps/current-work/#dependencies>
]REFS]
[64] [CITE[Fetch Standard]] は [[WebSocket接続の確立]]のアルゴリズムを置き換えています。
元の [[RFC]] の改訂が[[政治的]]に困難なためとの説明があり、[[意図的違反]]とは明記されていませんが、
実質的に同じことです。
* 意図的違反の解消
[59] [[意図的違反]]は、
[[仕様書]]と現実が矛盾していることに加え、
その[[仕様書]]が何らかの理由で改訂できないことが原因で発生します。
[60] 健全に[[標準化過程]]が動作している場合は、
現実と矛盾した[[仕様書]]は修正されますから、
[[意図的違反]]はいずれ解消されます。
実際 [[WA1]] に示されていた [[JavaScript]] などの[[意図的違反]]のほとんどは、
その後の関連[[仕様]]の改訂により、解消しています。
[61] 当該[[仕様書]]の開発者が問題の修正に関心を持っていなかったり、
[[仕様書]]が既にメンテナンスされていなかったり、
[[標準化団体]]の手続き上の理由で[[仕様書]]の改訂が行えなかったり、
といった比較的[[政治的]]な事情により、
解消の目処が立たないものも、残念ながら少なくありません。
* 歴史
[20] [CITE@en[Web Applications 1.0 r5578 Remove a 'willful violation' note.Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=10854]]
( ([TIME[2010-10-05 08:36:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=5577&to=5578>
[28] [CITE@en[Web Applications 1.0 r5979 10805]]
( ([TIME[2011-04-09 07:12:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=5978&to=5979>
* メモ
[31] [CITE@en[Web Applications 1.0 r6575 Comment out a 'willful violation' that is being fixed in the underlying specs.]]
( ([TIME[2011-09-24 04:46:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6574&to=6575>
[40] [CITE@en[Specs/style - WHATWG Wiki]]
( ([TIME[2013-11-07 11:35:18 +09:00]] 版))
<http://wiki.whatwg.org/wiki/Specs/style>
[43] [CITE@en[Note how the SVG currently implemented in browsers is a mix of SVG 1.… · whatwg/html@969c45b]] ([TIME[2015-11-18 11:27:03 +09:00]] 版) <https://github.com/whatwg/html/commit/969c45b2478d1d2d3be8564ec85dc316a53c8bcf>
[44] [CITE@en[Willful violation - Wikipedia, the free encyclopedia]]
([TIME[2015-10-17 12:48:55 +09:00]] 版)
<https://en.wikipedia.org/wiki/Willful_violation>
[45] [CITE@en[Update ECMAScript and IDL integration · whatwg/html@550c57f]]
([TIME[2015-12-03 14:55:48 +09:00]] 版)
<https://github.com/whatwg/html/commit/550c57f186dd73784a8e4660440db2f642e37c0e>
[46] [CITE@en[Update ECMAScript and IDL integration · whatwg/html@52f96c4]]
([TIME[2015-12-16 12:27:12 +09:00]] 版)
<https://github.com/whatwg/html/commit/52f96c455a53763a7fe00162c067da6adb20e62c>
[48] [CITE@en[Integrate with the ES job queue · whatwg/html@12db63c]] ([TIME[2015-12-22 14:38:12 +09:00]] 版) <https://github.com/whatwg/html/commit/12db63c7c038b9d8f1d3501d6661d89d495abeac>
[50] [CITE@en[Let the Encoding standard deal with the BOM · whatwg/html@83ebb72]]
([TIME[2016-02-10 22:46:31 +09:00]] 版)
<https://github.com/whatwg/html/commit/83ebb728198801e2f1a32b80ec7d7a2e7dccc593>
[51] [CITE@en[Clarify that using the BOM before Content-Type is a violation of sorts · whatwg/encoding@0a29220]]
([TIME[2016-02-10 22:47:07 +09:00]] 版)
<https://github.com/whatwg/encoding/commit/0a29220bd70173964f2e29bf8288c57f7255180a>
[54] [CITE@en[Add MathML and SVG to dependencies and cross-reference their elements · whatwg/html@c35ad72]]
([TIME[2016-03-24 15:30:31 +09:00]] 版)
<https://github.com/whatwg/html/commit/c35ad7267634f640e8e22b615893b78d6252998e>
[55] [CITE@en[Sync with recent changes to the JS spec's job queue · whatwg/html@5af258f]]
([TIME[2016-03-24 21:44:19 +09:00]] 版)
<https://github.com/whatwg/html/commit/5af258f33e3e2f55eb30e611cb7aee625a8bd16a>
[57] [CITE@en[Editorial: annotate WindowProxy JavaScript willful violations]]
([[annevk]]著, [TIME[2016-08-18 14:06:55 +09:00]])
<https://github.com/whatwg/html/commit/9fe9cca9d6708616638ca07e1a4f40ea88ba6f9a>
[62] [CITE@en[Add "willful violation", and willfully violate RFC 8174]]
([[domenic]]著, [TIME[2017-05-27 08:22:06 +09:00]])
<https://github.com/whatwg/infra/commit/97e08e4137ebec70860c61f47992a40609d0b9fe>