意図的違反

意図的違反

[1] 「機能 A が仕様書 B に対する意図的違反 (willful violation) である」とは、 仕様書 B にて規定されている現実離れした機能 A' とは少し異なる現実的な機能 A が規定されていることを意味します。

仕様書

定義

[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 "willful violation".

この仕様書は他の色々な仕様書と関係したり依存したりしています。 しかし残念ながら、利害の衝突のためにこの仕様書が他の仕様書の要件に違反せざるを得ないこともあります。 そのような罪過については常に「意図的違反」と注記しています。

意図的違反

[47] Web 関連仕様には次の意図的違反があります。

[27] 一旦意図的違反として記載され、実質的に意図的違反であっても、 HTML WG の抵抗勢力による反対意見のために表現を改めて意図的違反で無いかのように書き直されていることがあります。 ある事実が「意図的違反」であるとされるかどうかは政治的な問題です。

[29] application/octet-streamcodecs 引数が与えられた場合の扱いは RFC 2046 に沿っていませんが、RFC 2046 による MIME 的扱いに先立った前処理段階であるとして、 意図的違反ではないこととなっています。

[56] Encoding Standardin violation of と呼んで定義なしで意図的違反を注記しています。

明記されていない意図的違反

[32] text/javascript は正式には廃止されているにも関わらず、 実際には最もよく用いられているため HTML ではこれを採用しています。 これはなぜか willful violation とはされていません。

[64] Fetch StandardWebSocket接続の確立のアルゴリズムを置き換えています。 元の RFC の改訂が政治的に困難なためとの説明があり、意図的違反とは明記されていませんが、 実質的に同じことです。

意図的違反の解消

[59] 意図的違反は、 仕様書と現実が矛盾していることに加え、 その仕様書が何らかの理由で改訂できないことが原因で発生します。

[60] 健全に標準化過程が動作している場合は、 現実と矛盾した仕様書は修正されますから、 意図的違反はいずれ解消されます。 実際 WA1 に示されていた JavaScript などの意図的違反のほとんどは、 その後の関連仕様の改訂により、解消しています。

[61] 当該仕様書の開発者が問題の修正に関心を持っていなかったり、 仕様書が既にメンテナンスされていなかったり、 標準化団体の手続き上の理由で仕様書の改訂が行えなかったり、 といった比較的政治的な事情により、 解消の目処が立たないものも、残念ながら少なくありません。

歴史

[20] Web Applications 1.0 r5578 Remove a 'willful violation' note.Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=10854 ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=5577&to=5578>

[28] Web Applications 1.0 r5979 10805 ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=5978&to=5979>

メモ

[31] Web Applications 1.0 r6575 Comment out a 'willful violation' that is being fixed in the underlying specs. ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=6574&to=6575>

[40] Specs/style - WHATWG Wiki ( ( 版)) <http://wiki.whatwg.org/wiki/Specs/style>

[43] Note how the SVG currently implemented in browsers is a mix of SVG 1.… · whatwg/html@969c45b ( 版) <https://github.com/whatwg/html/commit/969c45b2478d1d2d3be8564ec85dc316a53c8bcf>

[44] Willful violation - Wikipedia, the free encyclopedia ( 版) <https://en.wikipedia.org/wiki/Willful_violation>

[45] Update ECMAScript and IDL integration · whatwg/html@550c57f ( 版) <https://github.com/whatwg/html/commit/550c57f186dd73784a8e4660440db2f642e37c0e>

[46] Update ECMAScript and IDL integration · whatwg/html@52f96c4 ( 版) <https://github.com/whatwg/html/commit/52f96c455a53763a7fe00162c067da6adb20e62c>

[48] Integrate with the ES job queue · whatwg/html@12db63c ( 版) <https://github.com/whatwg/html/commit/12db63c7c038b9d8f1d3501d6661d89d495abeac>

[50] Let the Encoding standard deal with the BOM · whatwg/html@83ebb72 ( 版) <https://github.com/whatwg/html/commit/83ebb728198801e2f1a32b80ec7d7a2e7dccc593>

[51] Clarify that using the BOM before Content-Type is a violation of sorts · whatwg/encoding@0a29220 ( 版) <https://github.com/whatwg/encoding/commit/0a29220bd70173964f2e29bf8288c57f7255180a>

[54] Add MathML and SVG to dependencies and cross-reference their elements · whatwg/html@c35ad72 ( 版) <https://github.com/whatwg/html/commit/c35ad7267634f640e8e22b615893b78d6252998e>

[55] Sync with recent changes to the JS spec's job queue · whatwg/html@5af258f ( 版) <https://github.com/whatwg/html/commit/5af258f33e3e2f55eb30e611cb7aee625a8bd16a>

[57] Editorial: annotate WindowProxy JavaScript willful violations (annevk著, ) <https://github.com/whatwg/html/commit/9fe9cca9d6708616638ca07e1a4f40ea88ba6f9a>

[62] Add "willful violation", and willfully violate RFC 8174 (domenic著, ) <https://github.com/whatwg/infra/commit/97e08e4137ebec70860c61f47992a40609d0b9fe>

[65] Define document.all as having [[IsHTMLDDA]] (TimothyGu著, ) <https://github.com/whatwg/html/commit/542be55f0a627460b55a08b7a1914ea05e9b3a3e>