[4] [[IDL属性]]が[[内容属性]]を[DFN[[RUBYB[反映する]@en[reflect]]]]とは、 [[IDL属性]]の[[取得]]が[[内容属性]]の値を返し、
[[設定]]が[[内容属性]]の値を変更するようなものをいいます。

* 仕様書

[REFS[
- [5] [CITE@en-US[DOM Standard]] ([TIME[2012-12-26 22:14:50 +09:00]] 版) <http://dom.spec.whatwg.org/#concept-reflect>
- [6] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2016-09-16 22:41:59 +09:00]]) <https://html.spec.whatwg.org/#reflect>
]REFS]

* 文脈

[7] [[IDL属性]]のデータ型と[[内容属性]]の値の種類により、次のバリエーションがあります。
[FIG(list)[
- [[URL]] [SRC[>>6]]
- [[valid non-empty URL potentially surrounded by spaces]] [SRC[>>6]]
- [DFN[[RUBYB[[[既知の値のみに限定]]]@en[limited to only known values]]]]の[[列挙属性]] [SRC[>>6]]
- [[列挙属性]] [CODE(IDL)@en[[[DOMString]]?]] [SRC[>>6]]
- その他の文字列 ([CODE(DOMi)@en[[[DOMString]]]]) [SRC[>>5, >>6]]
- [CODE[[[boolean]]]]
- [DFN[[RUBYB[[[非負数のみに限定]]]@en[limited to only non-negative numbers]]]]の [CODE[[[long]]]] [SRC[>>6]]
- [CODE[[[long]]]] [SRC[>>6]]
- [DFN[[RUBYB[[[零より大きな非負数のみに限定]]]@en[limited to only non-negative numbers greater than zero]]]]の [CODE[[[unsigned long]]]] [SRC[>>6]]
- [DFN[[RUBYB[フォールバック付き零より大きな非負数のみに限定][limited to only non-negative numbers greater than zero with fallback]]]]の [CODE[unsigned long]] [SRC[>>6]]
- [DFN[clamped to the range]] の [CODE[unsigned long]] [SRC[>>6]]
- [CODE[[[unsigned long]]]] [SRC[>>6]]
- [DFN[[RUBYB[[[零より大きな数のみに限定]]]@en[limited to numbers greater than zero]]]]の [CODE[[[double]]]],
[CODE[[[unrestricted double]]]] [SRC[>>6]]
- [CODE[[[double]]]], [CODE[[[unrestricted double]]]] [SRC[>>6]]
- [CODE(DOMi)@en[[[DOMTokenList]]]], [DEL[[CODE(DOMi)@en[[[DOMSettableTokenList]]]]]] [SRC[>>6]]

[HISTORY[
- 複数 [[URL]] [SRC[>>6]]
- [[IDL列挙型]] [SRC[>>6]]
- [CODE(DOMi)@en[[[HTMLElement]]]] [SRC[>>6]]
]HISTORY]
]FIG]

[20] 次の[[内容属性]]を [[URL]] として[[反映]]する [[IDL属性]]があります。

[FIG(short list)[
- [CODE(HTML)@en[<blockquote cite>]]
- [CODE(HTML)@en[<q cite>]]
- [CODE(HTML)@en[<ins cite>]]
- [CODE(HTML)@en[<del cite>]]
- [CODE(HTML)@en[<script src>]]
- [CODE(HTML)@en[<applet object>]]
- [CODE(HTML)@en[<frame src>]]
- [CODE(HTML)@en[<frame longdesc>]] ([CODE(DOMa)@en[longDesc]])
- [CODE(HTML)@en[<iframe longdesc>]] ([CODE(DOMa)@en[longDesc]])
- [CODE(HTML)@en[<img longdesc>]] ([CODE(DOMa)@en[longDesc]])
- [CODE(HTML)@en[<img lowsrc>]]
- [CODE(HTML)@en[<applet codebase>]] ([CODE(DOMa)@en[codeBase]])
- [CODE(HTML)@en[<object codebase>]] ([CODE(DOMa)@en[codeBase]])
]FIG]

[HISTORY[
[53] かつては[[HTML要素]]の [CODE(HTMLa)@en[itemid]] [[属性]]もありました。
]HISTORY]

[23] 次の[[内容属性]]を [[URL]] ([[valid non-empty URL potentially surrounded by spaces]])
として[[反映]]する [[IDL属性]]があります。

[FIG(short list)[
- [CODE(HTML)@en[<link href>]]
- [CODE(HTML)@en[<img src>]]
- [CODE(HTML)@en[<iframe src>]]
- [CODE(HTML)@en[<embed src>]]
- [CODE(HTML)@en[<object data>]]
- [CODE(HTML)@en[<video poster>]]
- [CODE(HTML)@en[<source src>]]
- [CODE(HTML)@en[<track src>]]
- [CODE(HTML)@en[<video src>]]
- [CODE(HTML)@en[<audio src>]]
- [CODE(HTML)@en[<input src>]]
- [CODE(HTML)@en[<form action>]]
- [CODE(HTML)@en[<button formaction>]] ([CODE(DOMa)@en[formAction]])
- [CODE(HTML)@en[<input formaction>]] ([CODE(DOMa)@en[formAction]])
- [CODE(HTML)@en[<menuitem icon>]]
]FIG]

[41] 
[[列挙属性]]と[[IDL属性]]の関係は、 [[列挙属性]]の項を参照。


[HISTORY[
[66] [[IDL列挙型]]として[[反映]]される[[属性]]:
[FIG(short list)[
- [CODE(HTML)@en[<link as>]]
]FIG]
]HISTORY]

[18] 次の [[IDL属性]]は、[[反映]]の処理と当該属性専用の処理が組み合わさっています。
[FIG(list)[
- [CODE(DOMi)@en[[[HTMLScriptElement]]]] の [CODE(DOMa)@en[[[async]]]]
]FIG]

[57] 次の[[IDL属性]]は、一部または全部の処理が[[反映]]と似ていますが、
[[反映]]と異なる定義となっています。

[FIG(list short)[
- [CODE(DOMa)@en[label][<menuitem label>]]
- [CODE(HTML)@en[<base href>]]
- [CODE(DOMa)@en[contentEditable]]
- [CODE(DOMa)@en[draggable]]
- [CODE(DOMa)@en[spellcheck]]
- [CODE(DOMa)@en[translate]]
- [CODE(DOMa)@en[autocapitalize]]
]FIG]

[21] 次の[[内容属性]]は、[[URL分解属性]]があります。
[FIG(short list)[
- [CODE(HTML)@en[<a href>]]
- [CODE(HTML)@en[<area href>]]
]FIG]

;; [22] [[仕様書]]の用語としては[[反映]]とは異なりますが、
その特殊形に当たります。 [CODE(DOMi)@en[URLUtils]] 参照。

[33] [CODE(DOMi)@en[CSSStyleDeclaration]] [[インターフェイス]]の
[[IDL属性]]は、 [[CSS特性]]に対応するもので、実質的には[[反映]]と同じものですが、
[[仕様書]]の用語としては異なるものになっています。

;; [CODE(DOMi)@en[CSSStyleDeclaration]] 参照。

[HISTORY[
[145] [CODE(DOMi)@en[HTMLElement]] としての[[反映]]は、定義はされていますが、
実際には使われていません。

;; [146] 近いものとして [CODE(DOMi)@en[HTMLInputElement]] の [CODE(DOMa)@en[list]]
と [CODE(DOMi)@en[HTMLLabelElement]] の [CODE(DOMa)@en[control]] 
がありますが、どちらも挙動が[[反映]]と異なります。
]HISTORY]

* 処理

[133] [[内容属性]][VAR[内容属性]]を[[反映]]する [CODE(DOMi)@en[DOMTokenList]] の
[[IDL属性]][VAR[IDL属性]]は、
すべて[[読み取り専用]]で、 [CODE(IDL xattr)@en[SameObject]] となっています。
[VAR[IDL属性]]を持つ[[要素]][VAR[要素]]は、次のような [CODE(DOMi)@en[DOMTokenList]]
[[オブジェクト]]を保持し、[VAR[IDL属性]]の[[取得器]]はこの[[オブジェクト]]を返さなければ[MUST[なりません]]
[SRC[>>6]]。
[FIG(list members)[
[FIGCAPTION[
[134] [CODE(DOMi)@en[DOMTokenList]]
]FIGCAPTION]

: [F[関連付けられた[[要素]]]] : [VAR[要素]]
: [F[関連付けられた[[属性]]の[[局所名]]]] : [VAR[内容属性]]の[F[局所名]]
]FIG]

[132] それ以外の場合は、次のようにします。

[69] [[IDL属性]][VAR[IDL属性]]と[[内容属性]][VAR[内容属性]]の[[取得器]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>6]]。
[FIG(steps)[
= [71] [[文脈オブジェクト]]の[F[属性リスト]]に[VAR[内容属性]]が含まれなければ、
[VAR[IDL属性]]の[F[型][型 (Web IDL)]]により、
[FIG(switch)[
: [[列挙属性]]で[[欠値既定値]]と同じ[[キーワード][列挙属性]]あり :
その[[キーワード][列挙属性]]の正準形を返します。
: [CODE(IDL)@en[USVString]]、[CODE(IDL)@en[DOMString]] :
[[空文字列]]を返します。
: [CODE(IDL)@en[boolean]] :
[[偽]]を返します。
: [CODE(IDL)@en[long]]、[CODE(IDL)@en[unsigned long]]、[CODE(IDL)@en[double]]、[CODE(IDL)@en[unrestricted double]] :
[VAR[内容属性]]の既定値を返します。
: [CODE(DOM)[[[DOMString]][[?][nullable]]]] :
[CODE[null]] を返します。

]FIG]
= [73] それ以外なら、
== [78] [VAR[値]]を、[[文脈オブジェクト]]の[VAR[内容属性]][[属性]]の[F[値][属性値]]に設定します。
== [74] [VAR[IDL属性]]の[F[型][型 (Web IDL)]]により、
[FIG(switch)[
: [CODE(IDL)@en[USVString]] :
[FIG(steps)[
= [26] [VAR[内容属性]]の値が [[URL]] と定義されている場合、
== [75] [VAR[結果]]を、[[文脈オブジェクト]]の[F[節点文書]]に対して[VAR[値]]を[[URLとして構文解析][URLの構文解析]]した結果に設定します。
== [76] [VAR[結果]]が[[失敗]]なら、
=== [77] [VAR[値]]を [CODE(IDL)@en[USVString]] に[[変換]]した結果を返します。
== [79] それ以外なら、
=== [80] [VAR[結果]]の[F[結果URL文字列]]を返します。
= [27] それ以外の場合、
== [28] [VAR[値]]を返します。
]FIG]
: [CODE(IDL)@en[DOMString]] :
[FIG(steps)[
= [29] [VAR[内容属性]]が[[列挙属性]]で [F[limited to only known values]] が[[真]]の場合、
== [83] [VAR[状態]]を、[[文脈オブジェクト]]の[VAR[内容属性]]の[F[状態][列挙属性]]に設定します。
== [84] [VAR[状態]]が [CODE[null]] の場合、
=== [85] [[空文字列]]を返します。
== [86] それ以外の場合、
=== [87] [VAR[状態]]の値で[[適合]]するものの[[正準]]形 (なければ[[空文字列]]) を返します。
= [30] それ以外の場合、
== [31] [VAR[値]]を返します。
]FIG]
: [CODE(IDL)@en[[[DOMString]][[?][nullable]]]] ([VAR[内容属性]]は[[列挙属性]]) :
[FIG(steps)[
= [88] [VAR[状態]]を、[[文脈オブジェクト]]の[VAR[内容属性]]の[F[状態][列挙属性]]に設定します。
= [89] [VAR[状態]]が [CODE[null]] の場合、
== [90] [CODE[null]] を返します。
= [91] それ以外の場合、
== [92] [VAR[状態]]の値で[[適合]]するものの[[正準]]形を返します。
]FIG]
: [CODE(IDL)@en[boolean]] :
[[真]]を返します。
: [CODE(IDL)@en[long]] :
[FIG(steps)[
= [102] [VAR[IDL属性]]の [F[limited to only non-negative numbers]] が[[真]]なら、
== [103] [VAR[結果]]を、[VAR[値]]に [[rules for parsing non-negative integers]] を適用した結果に設定します。
= [104] それ以外の場合、
== [72] [VAR[結果]]を、[VAR[値]]に [[rules for parsing signed integers]] を適用した結果に設定します。
= [82] 
[FIG(list)[
- [VAR[結果]]が[[失敗]]
- [VAR[結果]]が[VAR[IDL属性]]の[F[型][型 (Web IDL)]]の範囲外の値
- [VAR[結果]]が[VAR[内容属性]]の範囲外の値
]FIG]
... のいずれかの場合、
== [94] [VAR[内容属性]]の既定値を返します。
= [95] それ以外なら、
== [101] [VAR[結果]]を返します。
]FIG]
: [CODE(IDL)@en[unsigned long]] :
[FIG(steps)[
= [110] [VAR[結果]]を、[VAR[値]]に [[rules for parsing non-negative integers]] を適用した結果に設定します。
= [111] 
[FIG(list)[
- [VAR[結果]]が[[失敗]]
- [VAR[結果]]が [ [N[0]], [N[2147483647]] ] の範囲外の値
- [VAR[結果]]が [N[0]] で、
[VAR[IDL属性]]の [F[limited to only non-negative numbers greater than zero]] が[[真]]または
[VAR[IDL属性]]の [F[limited to only non-negative numbers greater than zero with fallback]] 
が[[真]]
]FIG]
... のいずれかの場合、
== [112] [VAR[内容属性]]の既定値を返します。
= [36] それ以外の場合で、
[VAR[IDL属性]]の [F[clamped to the range]] が[[真]]で、
[VAR[IDL属性]]の[F[最小値]] [[>]] [VAR[値]]の場合、
== [37] [VAR[IDL属性]]の[F[最小値]]を返します。
= [38] それ以外の場合で、
[VAR[IDL属性]]の [F[clamped to the range]] が[[真]]で、
[VAR[IDL属性]]の[F[最大値]] [[<]] [VAR[値]]の場合、
== [39] [VAR[IDL属性]]の[F[最大値]]を返します。
= [113] それ以外の場合、
== [114] [VAR[結果]]を返します。
]FIG]
: [CODE(IDL)@en[double]]、 [CODE(IDL)@en[unrestricted double]] :
[FIG(steps)[
= [123] [VAR[結果]]を、[VAR[値]]に [[rules for parsing floating-point number values]] を適用した結果に設定します。
= [124] 
[FIG(list)[
- [VAR[結果]]が[[失敗]]
- [VAR[結果]]が [N[0]] より大きくなく、 [VAR[IDL属性]]の
[F[limited to numbers greater than zero]] が[[真]]
]FIG]
... のいずれかの場合、
== [125] [VAR[内容属性]]の既定値を返します。
= [126] それ以外なら、
== [127] [VAR[結果]]を返します。
]FIG]

]FIG]
]FIG]

[70] [[IDL属性]][VAR[IDL属性]]と[[内容属性]][VAR[内容属性]]の[[設定器]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>6]]。
[FIG(steps)[
= [81] [VAR[値]]を、指定された値を[VAR[IDL属性]]の[F[型][型 (Web IDL)]]に[[変換]]した結果に設定します。
= [93] [VAR[値]]により、
[FIG(switch)[
: [CODE[null]]、[CODE[false]] :
[[文脈オブジェクト]]の[VAR[内容属性]][[属性]]を[[削除][属性の削除]]します。
: [CODE[true]] :
[[文脈オブジェクト]]の[VAR[内容属性]][[属性]]を、[[空文字列]]に設定します。
: [CODE[USVString]], [CODE(IDL)@en[DOMString]] :
[[文脈オブジェクト]]の[VAR[内容属性]][[属性]]を、[VAR[値]]に設定します。
: [CODE(IDL)@en[long]] :
[FIG(steps)[
= [106] [VAR[IDL属性]]の [F[limited to only non-negative numbers]] が[[真]]なら、
== [107] [VAR[値]]が[[負]]なら、
=== [108] [CODE(DOMe)@en[IndexSizeError]] を[[投げ]]、ここで停止します。
= [109] [[文脈オブジェクト]]の[VAR[内容属性]][[属性]]を、[VAR[値]]に [[serialize an integer]]
を適用した結果に設定します。
]FIG]
: [CODE(IDL)@en[unsigned long]] :
[FIG(steps)[
= [118] [VAR[値]]が [N[0]] の場合、
== [120] [VAR[IDL属性]]の [F[limited to only non-negative numbers greater than zero]] が[[真]]なら、
=== [119] [CODE(DOMe)@en[IndexSizeError]] [[例外]]を[[投げ]]、ここで停止します。
== [121] それ以外で、[VAR[IDL属性]]の [F[limited to only non-negative numbers greater than zero with fallback]] が[[真]]なら、
=== [122] [VAR[値]]を、[VAR[内容属性]]の既定値に設定します。
= [115] それ以外で、[VAR[値]]が [ [N[0]], [N[2147483647]] ] の範囲外なら、
== [116] [VAR[値]]を、[VAR[内容属性]]の既定値に設定します。
= [117] [[文脈オブジェクト]]の[VAR[内容属性]][[属性]]を、[VAR[値]]に [[serialize an integer]]
を適用した結果に設定します。
]FIG]
: [CODE(IDL)@en[double]]、[CODE(IDL)@en[unrestricted double]] :
[FIG(steps)[
= [129] [VAR[値]]が [N[0]] より大きくない場合、
== [130] [VAR[IDL属性]]の [F[limited to numbers greater than zero]] が[[真]]なら、
=== [131] ここで停止します。
= [128] [[文脈オブジェクト]]の[VAR[内容属性]][[属性]]を、[VAR[値]]の
[[best representation of the number as a floating-point number]] に設定します。
]FIG]

]FIG]
]FIG]

;; [96] [VAR[IDL属性]]の[F[型][型 (Web IDL)]]が [CODE[?][nullable]]
以外の場合 (ほとんどの[[反映]] [[IDL属性]]の場合) には、
[CODE[null]] が指定されても[[変換]]時点で[[文字列化]]されてしまうので、
[VAR[内容属性]]の削除には至りません。

[105] ここで、[VAR[内容属性]]の既定値は、当該[[内容属性]]について特に規定がない場合、
[[limited to only non-negative numbers]] なら [N[-1]]、
[[limited to only non-negative numbers greater than zero]] なら [N[1]]、
それ以外なら [N[0]] です [SRC[>>6]]。

[147] なお、ここに示した処理の他に、 [CODE(IDL xattr)@en[CEReactions]] 
の処理も行う必要があります。

[44] 2017年の改訂で、 [CODE[crossOrigin]] [[IDL属性]]について
[[limited to only known values]] であるとの記述が加わりました
[SRC[>>43]]。しかし [[IDL属性]]の型は [CODE[[[DOMString]][[?][nullable]]]]
のままで変更されず、 [CODE[[[DOMString]][[?][nullable]]]] に関する
[[limited to only known values]] の処理の規定はないため、
何を意味しているのかは不明です。ただ [CODE[[[DOMString]][[?][nullable]]]]
は実際には [CODE[crossOrigin]] のみで使われている規定なので、
実質的な規定の変更は無いものを思われます。

* 歴史

[3] 「reflect」という言葉を使って明示的に[[IDL属性]]と[[内容属性]]の関係を明確に定義したのはおそらく [[HTML5]]
が最初です。それ以前の [[DOM1 HTML]] や [[DOM2 HTML]] では [[IDL属性]]の説明から [[HTML4]]
へリンクしていただけで、相互の関係を完全に明確には定義していませんでした。

[REFS[
- [1] [CITE[IRC logs: freenode / #whatwg / 20101026]]
( ([TIME[2010-11-07 15:25:47 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20101026#l-510>
- [2] [CITE@en[Web Applications 1.0 r7129     Update to take into account WebIDL's 'double' vs 'unrestricted double' change.]]
( ([TIME[2012-06-12 08:07:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7128&to=7129>
]REFS]

[8] その後 [[DOM Standard]] も (文字列の) [[reflect]] を定義しました。

[9] [[SVG]] と [[MathML]] にも [[reflect]] 相当の [[IDL属性]]がありますが、 [[DOM HTML]]
スタイルの古い曖昧な説明になっていて、「reflect」とは言っていません。

[10] [[Atom DOM]] も「reflect」を定義しています。

[REFS[
- [11] [CITE@en[Re: Adding ''''''[''''''Reflect'''''']'''''' to WebIDL?]]
( ([[Ian Hickson]] 著, [TIME[2014-08-08 06:47:53 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-script-coord/2014JulSep/0168.html>
- [12] [CITE@en[Web Applications 1.0 r8727     Make .crossOrigin = null remove the content attribute.]] ([TIME[2014-08-29 07:00:00 +09:00]] 版) <http://html5.org/r/8727>
]REFS]

[13] [CITE@en[Remove HTMLAreaElement.hreflang and .type · Issue #232 · whatwg/html]]
([TIME[2015-10-08 11:30:19 +09:00]] 版)
<https://github.com/whatwg/html/issues/232>

[14] [CITE@en[Fix #477: Unused spec content in common DOM interfaces · whatwg/html@06c2a32]]
([TIME[2016-02-03 12:18:31 +09:00]] 版)
<https://github.com/whatwg/html/commit/06c2a3225194e61990f4930e7eb5887de28dd58a>

[15] [CITE@en[Fix #358: use DOMTokenList exclusively · whatwg/html@98183f9]]
([TIME[2016-02-04 18:46:23 +09:00]] 版)
<https://github.com/whatwg/html/commit/98183f98c609d61e508bbec46b7ab86d37b99b47>

[16] [CITE@en[URLs are parsed and produce records · whatwg/html@30bc255]]
([TIME[2016-02-14 22:52:45 +09:00]] 版)
<https://github.com/whatwg/html/commit/30bc2557105ad62881ec9670f253febbc9761b44>

[17] [CITE@en[Adding ''''''[''''''SameObject'''''']'''''' to DOMTokenLists · whatwg/html@ec1dc4d]]
([TIME[2016-02-18 11:09:35 +09:00]] 版)
<https://github.com/whatwg/html/commit/ec1dc4d4571c61cf0c0dfe3e562898635886b412>

[19] [CITE@en[Fix reflect and its callers · whatwg/dom@75303c5]]
([TIME[2016-03-02 15:22:59 +09:00]] 版)
<https://github.com/whatwg/dom/commit/75303c5158db058fcd3bd21ac1ddc95bb2a18f9e>

[24] [CITE@en[Fix #561: Reflecting a broken URL should return the unparsed value · whatwg/html@f9567cd]]
([TIME[2016-03-16 15:35:19 +09:00]] 版)
<https://github.com/whatwg/html/commit/f9567cd22f506d9a872cd6240555fb047fc75c67>

[25] [CITE@en[Fix #859: Special-case empty string in reflect as URL · whatwg/html@f09dbee]]
([TIME[2016-03-16 15:35:25 +09:00]] 版)
<https://github.com/whatwg/html/commit/f09dbee68524c5ca8fd062a234e339d11c65e3b5>

[54] [CITE@en[Fix #875: Editorial: Remove unused 'default value' in reflect as URL · whatwg/html@b2084ec]]
([TIME[2016-03-17 16:53:41 +09:00]] 版)
<https://github.com/whatwg/html/commit/b2084ec2f3818c0e8433dd5525b118b033b18294>

[55] [CITE@en[Editorial: synchronize with the DOM Standard · whatwg/html@21c6ec7]]
([TIME[2016-03-20 17:53:56 +09:00]] 版)
<https://github.com/whatwg/html/commit/21c6ec77594eb89b836d4872222f5916910967fd>

[56] [CITE@en[Allow <menuitem> to have children giving the label · whatwg/html@8fdccb5]]
([TIME[2016-04-16 22:11:51 +09:00]] 版)
<https://github.com/whatwg/html/commit/8fdccb55e40a36449ae6011f9960cb09c1da0db7>

[58] [CITE@en[Reflect USVString IDL attributes for URLs as well as DOMString ones · whatwg/html@2ced624]]
([TIME[2016-04-23 16:30:04 +09:00]] 版)
<https://github.com/whatwg/html/commit/2ced6248d16e5a742e324ba3f506cc6d179b0414>

[59] [CITE@en[Hyperlink term "reflect" for <script>'s event and htmlFor · whatwg/html@9ab42dd]]
([TIME[2016-04-25 11:27:11 +09:00]] 版)
<https://github.com/whatwg/html/commit/9ab42dd45bcaa23523e5a196e5614449cf979d94>

[60] [CITE@en[Formalize custom element reactions · whatwg/html@27aa7bc]]
([TIME[2016-04-26 18:50:27 +09:00]] 版)
<https://github.com/whatwg/html/commit/27aa7bc4fa6f168654a8c858f0773e611f679b39>

[61] [CITE@en[Add ''''''[''''''CEReactions'''''']'''''' annotation to as · w3c/preload@b632000]]
([TIME[2016-05-01 14:01:04 +09:00]] 版)
<https://github.com/w3c/preload/commit/b632000d8bd32118d3b7833b7c0caca044329072>

[62] [CITE@en[Use USVString for all URLs]]
( ([[domenic]]著, [TIME[2016-05-20 22:02:29 +09:00]]))
<https://github.com/whatwg/html/commit/018b983b77b2cd908f6d00100e7e0abe893dd2c3>

[63] [CITE[Scalable Vector Graphics (SVG) 2]]
( ([TIME[2016-05-27 14:32:28 +09:00]]))
<https://svgwg.org/svg2-draft/single-page.html#types-TermReflect>

[64] [CITE@en[Add the "as" attribute for the <link> element]]
([[sideshowbarker]]著, [TIME[2016-07-01 04:20:03 +09:00]])
<https://github.com/whatwg/html/commit/2381476ea6143d835f08a3a82e6634b215cb60ea>

[67] [CITE@en[Do not throw for zero colgroup/col.span and textarea.rows/cols]]
([[domenic]]著, [TIME[2016-08-20 00:52:06 +09:00]])
<https://github.com/whatwg/html/commit/00b9b91548fbeb7a3c65bdaedf0a92d796183bcc>

[68] [CITE@en[Revert "Fix #859: Special-case empty string in reflect as URL"]]
([[zcorpan]]著, [TIME[2016-09-07 02:20:27 +09:00]])
<https://github.com/whatwg/html/commit/85227d27670d37382fe5e3dd2084a76cd4e9abf4>

[32] [CITE@en[Remove old-fashioned vendor-specific extension advice]]
([[annevk]]著, [TIME[2016-10-13 02:28:15 +09:00]])
<https://github.com/whatwg/html/commit/76f88a4015d55273749c34238d250b7bdb1aff62>

[34] [CITE@en[Make <link>'s as="" attribute case-insensitive]]
([[domenic]]著, [TIME[2017-04-26 05:59:59 +09:00]])
<https://github.com/whatwg/html/commit/9c7da4998f005c1799b04f452cb6c4a618f2d42e>

[35] [CITE@en[Standardize special behavior of colspan/rowspan]]
([[ayg]]著, [TIME[2017-04-26 23:28:48 +09:00]])
<https://github.com/whatwg/html/commit/4fbd00f5c5a839dcde33d2820c2cd57ddefa8a6e>

[40] [CITE@en[Tweak <link>.workerType reflection]]
([[domenic]]著, [TIME[2017-06-06 23:13:04 +09:00]])
<https://github.com/whatwg/html/commit/81032355f6c50131bda6d77c97299a273682c2e8>

[42] [CITE@en[Remove <applet>]]
([[zcorpan]]著, [TIME[2017-08-21 22:19:30 +09:00]])
<https://github.com/whatwg/html/commit/b9b9d60f9451c05f8e8d542e4094f987ae1a5fb8>

[43] [CITE@en[Limit crossOrigin reflection to only known values]]
([[ayg]]著, [TIME[2017-08-21 22:07:53 +09:00]])
<https://github.com/whatwg/html/commit/d967dc0120c137d0eb22808d4eaac0726cd8ea78>

[45] [CITE@en[Editorial: no IDL attribute is said to reflect an HTMLElement anymore]]
([[annevk]]著, [TIME[2017-09-20 17:33:57 +09:00]])
<https://github.com/whatwg/html/commit/f0f7a14c4eed844d6e099731e17dd993d626059a>

[46] [CITE@en[Editorial: no IDL attribute is said to reflect an HTMLElement anymore by annevk · Pull Request #3055 · whatwg/html]]
([TIME[2017-09-22 11:16:13 +09:00]])
<https://github.com/whatwg/html/pull/3055>