他の答えについては、フレーズが不十分であるか、おそらく少し間違っていることがいくつかあります。
false(ish):非標準のHTML要素は「許可されていない」、「違法」、または「無効」です。
必ずしも。彼らはそうです 「不適合」. 。違いは何ですか? 何かが「適合しない」ことがあり、それでも「許可される」ことができます。 W3Cは、HTML警察をあなたの家に送り、あなたを運ぶつもりはありません。
W3Cは理由でこのように物事を残しました。適合と仕様は、コミュニティによって定義されます。より具体的な目的のためにHTMLを消費する小さなコミュニティがたまたま、彼らが物事をより簡単にするために必要ないくつかの新しい要素に同意した場合、彼らはW3Cが次のように言及するものを持つことができます 「その他の該当する仕様」. 。 (これは明らかに単純化よりもひどいですが、あなたはアイデアを得ることができます)
とはいえ、厳格なバリッターは、標準以外の要素が「無効」であると宣言します。しかし、それはバリデーターの仕事は、検証している仕様に適合していることを確保することであり、「合法性」を確保することではありません。 ブラウザ または 使用する.
false(ish):非標準のHTML要素 意思 その結果、レンダリングの問題が発生します
おそらく、しかしありそうもない。 (「will」を「might」に置き換えます)これがレンダリングの問題をもたらす唯一の方法は、カスタム要素がHTML仕様の変更や同じシステム内で尊重される別の仕様( SVG、数学、または何か習慣)。
実際には、 CSSが非標準タグをスタイリングできる理由 HTML仕様のためです 明らかに述べています それ:
ユーザーエージェントは、意味的に中立として理解していない要素と属性を扱う必要があります。それらをDOM(DOMプロセッサ用)に残し、CSS(CSSプロセッサ用)に従ってスタイリングしますが、それらからの意味を推測しません
ノート: カスタムタグを使用する場合は、後でHTML仕様の変更がスタイリングを吹き飛ばす可能性があることを覚えておいてください。準備してください。 W3Cが実装する可能性は低いです <imsocool>
ただし、タグ。
非標準タグとJavaScript(dom経由)
JavaScriptを使用してカスタム要素にアクセスして変更できる理由は、 仕様では、それらがどのようにdomで処理されるべきかについてさえ語っています, 、これは、ページ上の要素を操作できる(本当に恐ろしい)APIです。
HTMLUNKNOUNTELEMENTインターフェイスは、この仕様(またはその他の該当する仕様)で定義されていないHTML要素に使用する必要があります。
TL; DR:仕様に準拠することは、コミュニケーションと安全のために行われます。不適合は、a以外のすべてによってまだ許可されています バリデーター, 、その唯一の目的は適合性を強制することですが、その使用はオプションです。
例えば:
var wee = document.createElement('wee');
console.log(wee.toString()); //[object HTMLUnknownElement]
(これは炎を引き出すと確信していますが、私の2セントがあります)