* 仕様書

[REFS[
- [3] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-05-14 09:55:50 +09:00]]) <https://html.spec.whatwg.org/#valid-custom-element-name>
- [1] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-05-14 09:55:50 +09:00]]) <https://html.spec.whatwg.org/#concept-custom-element-definition-name>
]REFS]

* カスタム要素名

[16] [DFN[[RUBYB[妥当なカスタム要素名]@en[valid custom element name]]]]は、
次の要件をすべて満たす[[文字列]]です [SRC[>>3]]。

[FIG(list)[
- [17] 最低1[[文字]]含む
- [18] 最初の[[文字]]が [[ASCII小文字]]である
- [19] [CODE[PCENChar]] のみで構成される
- [20] [CODE[-]] を最低1[[文字]]含む
- [21] 禁止されている[[名前]]ではない
]FIG]

[22] [CODE[PCENChar]] として使える[[文字]]の一覧は、 >>5 にあります。

;; [8] これは、 [[XML]] の [CODE[NCNameChar]] から[[ASCII大文字]]を除外したものです
[SRC[>>7]]。

[REFS[
- [5] [CITE@en[Character set "PCENChar"]] ([TIME[2016-05-15 15:43:07 +09:00]]) <https://chars.suikawiki.org/set/%24html%3APCENChar>
- [7] [CITE@en[Compare character sets "$html:PCENChar" and "$xml10-5e:NCNameChar"]] ([TIME[2016-05-19 01:02:25 +09:00]]) <https://chars.suikawiki.org/set/compare?expr1=%24html%3APCENChar&expr2=%24xml10-5e%3ANCNameChar>
]REFS]

[23] 禁止されている[[名前]]は、次のものです [SRC[>>3]]。
[FIG(short list)[
- [CODE[annotation-xml]]
- [CODE[color-profile]]
- [CODE[font-face]]
- [CODE[font-face-src]]
- [CODE[font-face-uri]]
- [CODE[font-face-format]]
- [CODE[font-face-name]]
- [CODE[missing-glyph]]
]FIG]

[HISTORY[
[9] これらは、 [[SVG]] と [[MathML]] の既存の[[要素]]で[[妥当なカスタム要素名]]と衝突するものです。

[10] 歴史的には次の[[HTML要素]]が[[カスタム要素]]以前に存在しましたが、
これらは禁止されていません。

[FIG(short list)[
- [CODE(HTMLe)@en[pre-html]]
- [CODE(HTMLe)@en[fn-contents]]
- [CODE(HTMLe)@en[event-source]]
- [CODE(HTMLe)@en[x-claris-tagview]]
- [CODE(HTMLe)@en[x-claris-window]]
- [CODE(HTMLe)@en[x-sas-window]]
- [CODE(HTMLe)@en[x-sas-remotesave]]
- [CODE(HTMLe)@en[x-ms-webview]]
]FIG]
]HISTORY]

* カスタム要素定義の名前

[4] [[カスタム要素定義]]は、[DFN[[F[[RUBYB[[[名前][定義名]]]@en[name]]]]]]を持ちます。
[F[名前][定義名]]は、[[妥当なカスタム要素名]]です。 [SRC[>>3]]

* 歴史

** [CITE[Custom Elements]]


- [109] 
[CITE@en[Added explainer, needs cleanup and lots of work.]], [[dglazkov]], [TIME[2011-11-19 03:10:39 +09:00]], [TIME[2024-09-12T13:52:55.000Z]] <https://github.com/dglazkov/component-model/commit/bf45ddcfa4b574ab94dc4b8e18843e322816d5a5#diff-cbc10fb4d19472d5b1b3fdc6f39509c1f90afaba3822f0a4f18396175120a24c>


[FIG(data)[ [106] [[HTML要素概説]]

:[F[要素名]]:[CODE[x-*]]
:日付:[TIME[2011-11-19]]
:説明:
[TIME[2011-11-19]]、
[CITE[Component Model]]
の仕様案説明書に[[カスタム要素]]の[[要素名]]について追加された。
[CODE(HTML)[x-]][SEE[>>25]] から始まることとされていた。
:出典:
[REFS[

-
[DFN[CM:AddedExplainer]]:
[CITE@en[Added explainer, needs cleanup and lots of work.]], 
[DATA(.author)[[[dglazkov]]]], 
[TIME(.published)[2011-11-19 03:10:39 +09:00]], [TIME[2024-09-12T13:52:55.000Z]] <https://github.com/dglazkov/component-model/commit/bf45ddcfa4b574ab94dc4b8e18843e322816d5a5>
- [26] 
[DFN[RFC6648]]:
[DATA(.docid)[RFC 6648]],
[CITE@en[Deprecating the "X-" Prefix and Similar Constructs in Application Protocols]], 
[DATA(.author)[[[Peter Saint-Andre]]]],
[DATA(.author)[[[Dave Crocker]]]],
[DATA(.author)[[[Mark Nottingham]]]],
[TIME(.published)[June 2012][2012-06]],
[TIME[2024-10-07T02:28:12.000Z]] <https://datatracker.ietf.org/doc/html/rfc6648>

]REFS]
:注釈:
-
[DFN@en[Web Components]]
[CODE[template]],
[[カスタム要素]],
[[影DOM]]
などの機能群とその開発プロジェクト。
成果物は
[CITE[DOM Standard]],
[CITE[HTML Standard]]
などに取り込まれている。
-
[DFN@en[[CITE[Component Model]]]]
[[Web Components]] の初期の仕様書。後に各機能個別の仕様書に発展した。
- [25] 
[[RFC 822メッセージ]]の[[ヘッダー]]や [[MIME型]]など、
[[非標準]]の名称を [CODE(822)[x-]] から始める慣習があった。
[SRC[RFC6648]]
[SRC[SW:x-]]

]FIG]

[FIG(data)[ [12] [[HTML要素概説]]

:[F[要素名]]:[CODE[element]]
:日付:[TIME[2011-11-19]]
:説明:
[TIME[2011-11-19]]、
[CITE[Component Model]]
仕様案説明書に
[CODE[element]]
が追加された。
[[カスタム要素]]を定義するものだった。
:出典:
[REFS[

-
[CITE@en[Added explainer, needs cleanup and lots of work.]], 
[DATA(.author)[[[dglazkov]]]], 
[TIME(.published)[2011-11-19 03:10:39 +09:00]], [TIME[2024-09-12T13:52:55.000Z]] <https://github.com/dglazkov/component-model/commit/bf45ddcfa4b574ab94dc4b8e18843e322816d5a5>

]REFS]
:参照:[CODE[*-*]]

]FIG]




[85] [CITE@en['''['''Custom''']''' Added defintions for registration, custom element name, and …]], [[dglazkov]], [TIME[2012-06-02 04:52:35 +09:00]], [TIME[2024-09-08T07:03:01.000Z]] <https://github.com/WICG/webcomponents/commit/6826c33554fceaddc2cbf339847e8dbf84bea197>

[86] >>85 この時点では [CODE[x-]] から始まるのが[[カスタム要素名]]だった。

[84] [CITE@en['''['''Custom''']''': Refactored all references to what exactly custom element na…]], [[dglazkov]], [TIME[2012-08-16 07:24:31 +09:00]], [TIME[2024-09-08T07:02:29.000Z]] <https://github.com/WICG/webcomponents/commit/8bc87545ec31b8ce30e1ae690c4e3af5faaa031c>


[83] 
[CITE@en['''['''Custom''']''': Polished custom element name definition.]], [[dglazkov]], [TIME[2012-08-16 07:46:15 +09:00]], [TIME[2024-09-08T07:01:57.000Z]] <https://github.com/WICG/webcomponents/commit/6bef6e0f640c3278f7a29bebe17de540918cad35>




[FIG(data)[ [216] [[HTML要素概説]]

:[F[要素名]]:[CODE[x-*]]
:日付:[TIME[2012-08-15]]
:説明:
[TIME[2012-05-17]]、
[CITE[Custom DOM Elements]] は、
[[カスタムDOM要素]]の[[要素名]]は
[CODE(HTML)[x-]]
から始まるものと定めた。[SEE[>>24]]
:出典:
[REFS[

-
[DFN[WC:Polished]]:
[CITE@en[__&&[&&__Custom__&&]&&__: Polished custom element name definition.]], 
[DATA(.author)[[[dglazkov]]]], 
[TIME(.published)[2012-08-16 07:46:15 +09:00]], [TIME[2024-09-08T07:01:57.000Z]] <https://github.com/WICG/webcomponents/commit/6bef6e0f640c3278f7a29bebe17de540918cad35>

]REFS]
:注釈:
-
[DFN[[RUBYB@ja[カスタムDOM要素]@en[custom DOM element]]]]
後の[[カスタム要素]]。
- [24] 
[[カスタムDOM要素]]自体はこれ以前から定義されていたが、
[[カスタム要素名]]の条件は未規定だった。
-
[DFN@en[[CITE[Custom DOM Elements]]]]
[[Web Components]] の仕様書の1つ。後に
[CITE[Custom Elements]]
に改称された。

]FIG]




[82] [CITE@en['''['''Custom''']''': Updated custom element name definition.]], [[dglazkov]], [TIME[2013-01-18 04:25:17 +09:00]], [TIME[2024-09-08T06:58:00.000Z]] <https://github.com/WICG/webcomponents/commit/df4217c34f15ccf7bd8b5e3e716f76375a715648>

[88] 
>>82 ここで [CODE[x]] が必須でなくなる


[81] 
[CITE@en['''['''Custom''']''': Added custom element name blacklist.]], [[dglazkov]], [TIME[2013-01-18 08:39:05 +09:00]], [TIME[2024-09-08T06:57:35.000Z]] <https://github.com/WICG/webcomponents/commit/fc9f58ed2ea4d4b5fb4bc5d8957d70b9ed0c8d1d>

[FIG(data)[ [89] [[HTML要素概説]]

:[F[要素名]]:[CODE[*-*]]
:[F[要素名]]:[CODE[x-*]]
:日付:[TIME[2013-01-17]]
:説明:
[TIME[2013-01-17]]、
[CITE[Custom Elements]]
は、
[[カスタム要素]]の[[要素名]]を
[CH[-]]
を含むものと緩和した。
:出典:
[REFS[

-
[DFN[WC:NameDef]]:
[CITE@en[__&&[&&__Custom__&&]&&__: Updated custom element name definition.]], 
[DATA(.author)[[[dglazkov]]]], 
[TIME(.published)[2013-01-18 04:25:17 +09:00]], [TIME[2024-09-08T06:58:00.000Z]] <https://github.com/WICG/webcomponents/commit/df4217c34f15ccf7bd8b5e3e716f76375a715648>

]REFS]
:参照:[CODE[x-*]]
:参照:[CODE[*-*]]
:注釈:
-
[DFN[[RUBYB@ja[カスタム要素]@en[custom element]]]]
[[著者]]が用法と挙動を定義できる[[要素]]。
[[要素名]]の制限により通常の[[要素]]と区別される。
[[Web Components]]
で導入された。

]FIG]


[80] 
[CITE@en[Bug 20973 - '''['''Custom''']''': Restrict custom elements to NCName.]], [[dglazkov]], [TIME[2013-02-13 04:17:07 +09:00]], [TIME[2024-09-08T06:56:37.000Z]] <https://github.com/WICG/webcomponents/commit/dd58e700d3aeecda95702120074749610083313b>

** [CITE[HTML Standard]]


[2] [CITE@en[Add custom elements to HTML · whatwg/html@6e7eaa4]]
([TIME[2016-04-26 18:11:12 +09:00]] 版)
<https://github.com/whatwg/html/commit/6e7eaa4bd2912965fd83766f99f984f249531f3a>

[FIG(data)[ [11] [[HTML要素概説]]

:[F[要素名]]:[CODE[*-*]]
:日付:[TIME[2016-04-13]]
:説明:
[TIME[2013-06-13]]、
[CITE[HTML Standard]]
に[[カスタム要素]]が追加された。
これにより
[CH[-]]
が入った[[要素名]]は[[著者]]の裁量で自由に利用可能となった。[SEE[>>13]]
現行仕様である。
:出典:
[REFS[

-
[DFN[HTML:AddCustom]]:
[CITE@en[Add custom elements to HTML]], 
[DATA(.author)[[[domenic]]]], 
[TIME(.published)[2016-04-14 06:27:03 +09:00]], [TIME[2024-09-08T07:17:08.000Z]] <https://github.com/whatwg/html/commit/6e7eaa4bd2912965fd83766f99f984f249531f3a>

]REFS]
:注釈:
- [13] 
[[MathML]] や [[SVG]] で既に利用されている[[要素名]]と同じものは禁止されている。
[SRC[HTML]]
-
[DFN[[RUBYB@ja[著者]@en[author]]]]
[[文書]]の作成者。作業分担やソフトウェアか人間かの違いを問わず総体を指す。

]FIG]


[FIG(data)[ [14] [[HTML要素概説]]

:[F[要素名]]:[CODE[*-*]]
:説明:
本書では便宜上、[[文字]] [CH[-]] が含まれる[[要素名]]を
[CODE[*-*]] と表す。
[SEE[>>15]]
実際に [CODE[*-*]] を[[要素名]]とするものではない。
:注釈:
- [15] 
[[カスタム要素]]は原則として本書の採録対象としない。
ただし、
[[カスタム要素]]機能の導入以前から存在するものや、
敢えて取り上げるべき事情があるものは対象とした。

]FIG]



[6] [CITE@en[Editorial: tidy up PCENChar definition (#1202)]]
( ([[domenic]]著, [TIME[2016-05-09 16:20:13 +09:00]]))
<https://github.com/whatwg/html/commit/f0f2e2ca836582e30eeec7c10dc3832b12bc8177>


