Customized built-in elements
Web Components として WHATWG HTML に取り込まれている仕様。HTML のビルトインの要素を拡張できる。 code: js
// 要素のクラスを作成
class WordCount extends HTMLParagraphElement {
constructor() {
super();
// 実装略
}
}
// 新しい要素を定義
customElements.define("word-count", WordCount, { extends: "p" });
code: html
<p is="word-count"></p>
仕様に入っているものの WebKit からは明確に反対されていて、Safari のみ実装されていない。
反対理由として
などがあげられる。
個人的に反対理由が納得できるものであるし、アクセシビリティなどの対応では子要素を使ったことがあるので is属性はあまり使いたいと思わないかな。