is

is 属性 (HTML)

仕様書

意味

[7] カスタム化組み込み要素 (customized built-in element) は、 カスタム要素のうち、 extends オプション付きで定義されたものです >>6

[8] カスタム化組み込み要素局所名は、 extends オプションで指定された値となります。 >>6

[9] カスタム化組み込み要素定義名は、 is 属性で指定された値となります。 >>6

[12] カスタム化組み込み要素は、 extends した元の要素の意味継承します >>6

内容属性

[13] カスタム化組み込み要素内容属性には、 extends した元の要素の制約がそのまま適用されます >>6

[14] 著者カスタム化組み込み要素の独自の指定を必要とする時は、 data-* 属性を使うことができます >>6

自律カスタム要素とは違って、任意の属性を使うことはできません。 将来の標準の属性の追加と衝突してしまうおそれがあるからです。

is 属性

[16] HTML要素is 内容属性 >>15 は、 要素カスタム化組み込み要素として使うことを表します。 その値は、カスタム化組み込み要素カスタム要素定義名前を表します。

[4] 辞書 ElementCreationOptionsメンバー is は、 DOMString を指定するものです >>3createElementcreateElementNS で、作成する要素is 内容属性の値を設定するために使うことができます。

[11] is 内容属性は、任意の HTML要素に指定できます。 ただし自律カスタム要素には、 is 内容属性を指定してはなりません >>10

[17] 属性値は、著者の意図通りに動作するためには、 カスタム化組み込み要素カスタム要素定義名前でなければなりません。 構文的には、 妥当なカスタム要素名でなければなりません >>10開始タグに記述する場合 (構文解析器要素を作成する場合) には、 作成時点でスクリプトが未実行かもしれませんから、 既にカスタム要素定義が存在している必要はありません。 createElementcreateElementNSis メンバーで指定する場合は、 既に存在するカスタム要素定義の名前でなければなりません。

カスタム要素定義が他のスクリプトで作成される場合に、 作成まで待ってから createElement が実行したい時には、 whenDefined メソッドを使うと便利です。

[5] is 内容属性は、要素の作成時に処理されます。 後から値を変更しても処理には影響しない >>6 ので、 作成と同時に指定する is オプションが導入されました。

[20] 要素は、 is (is value) を持ちます >>19。 これは要素作成時点の is 属性値を表しています。要素の作成時に設定されます。

[21] DOM Standard は、要素の作成時に isも設定されるとし >>19 ています。しかし要素の作成を経由しないケース (要素の作成) にどうなるのかは規定されていません。実際には null が設定されるものと思われます (が、構文解析器からの作成時には is 属性値が設定される可能性もあります)。

歴史

[1] Add support for custom elements · whatwg/dom@7f63535 ( 版) <https://github.com/whatwg/dom/commit/7f63535da39a1cbf7f8f68563abc6f05f760990a>

[2] Rename the types of custom elements · whatwg/html@7858636 ( 版) <https://github.com/whatwg/html/commit/785863622acc5cc9faf1ff392ae17786ee7b3b80>

[18] Save the is="" value an element was created with ( (domenic著, )) <https://github.com/whatwg/dom/commit/754bb8d533f1db664c6c00ddbe565b64cff18811>

[22] Fix customized built-in element "is" handling and reactions (domenic著, ) <https://github.com/whatwg/html/commit/4e632a82728d68a8a6bd32f02083762b7792ddf7>

[23] Explicitly state “is” attribute conformance requirements (sideshowbarker著, ) <https://github.com/whatwg/html/commit/43ab12538efab64c15151c9200713391cd7cb2f2>

[24] The is="" attribute is confusing? Maybe we should encourage only ES6 class-based extension. · Issue #509 · w3c/webcomponents () <https://github.com/w3c/webcomponents/issues/509>

[25] Apple (WebKit) は本機能に一貫して反対しており、 現在も実装予定はないと表明しています。

[26] Remove <applet> (zcorpan著, ) <https://github.com/whatwg/html/commit/b9b9d60f9451c05f8e8d542e4094f987ae1a5fb8>

[27] Change handling of is="" in element creation and cloning (domenic著, ) <https://github.com/whatwg/dom/commit/fc601be94e75427c3eb35d63ada0f6dc41f9f344>

[28] Update customized built-in elements is="" interaction (domenic著, ) <https://github.com/whatwg/html/commit/e5dc6bf18f356225d90decc47ac6ed3be94728a7>

[29] Change handling of is="" in element creation and cloning by domenic · Pull Request #566 · whatwg/dom () <https://github.com/whatwg/dom/pull/566>

[30] custom-elements: A step to add "is" content attribute in "new" · Issue #3402 · whatwg/html () <https://github.com/whatwg/html/issues/3402>

[31] Update customized built-in elements is="" interaction by domenic · Pull Request #3444 · whatwg/html () <https://github.com/whatwg/html/pull/3444>

[32] Polymer encouraged incorrect document.createElement() usage · Issue #544 · w3c/webcomponents () <https://github.com/w3c/webcomponents/issues/544>

[33] Allow createElement/createElementNS()'s dictionary argument to be a s… by annevk · Pull Request #572 · whatwg/dom () <https://github.com/whatwg/dom/pull/572>

[34] no custom builtin elements in WebKit · Issue #30 · Polymer/project () <https://github.com/Polymer/project/issues/30>

[35] Element Behaviors, and the has="" attribute. A useful alternative to Custom Elements in many cases! · Issue #727 · w3c/webcomponents () <https://github.com/w3c/webcomponents/issues/727>

[36] Correctly set "is value" in [HTMLConstructor] (domenic著, ) <https://github.com/whatwg/html/commit/6be3127514c4bbc36057bf8901493a2eb722ae9f>

[37] Cloning Built-in customized elements, which are create using 'new Foo()' doesn't work because is-value isn't set · Issue #3776 · whatwg/html () <https://github.com/whatwg/html/issues/3776>

[38] Correctly set "is value" in [HTMLConstructor] by domenic · Pull Request #3777 · whatwg/html () <https://github.com/whatwg/html/pull/3777>