他の回答については、不適切な語句であるか、おそらく少し間違っていることがいくつかあります。
FALSE(ish):非標準のHTML要素は、「許可されていない」、「不正」、または「無効」です。
必ずしも。それらは「不適合」です。違いは何ですか?何かが「適合しない」場合がありますが、それでも「許可」されます。W3CがHTML警察をあなたの家に送ってあなたを連れ去ることはしません。
W3Cは、理由のためにこのように物事を残しました。適合性と仕様はコミュニティによって定義されています。より具体的な目的のためにHTMLを使用する小さなコミュニティがあり、それらすべてが、物事を簡単にするために必要ないくつかの新しい要素に同意している場合、W3Cが「その他の適用可能な仕様」と呼ぶものを持つことができます。(これは単純化よりもかなり大げさですが、アイデアはわかります)
そうは言っても、厳密なバリデーターは非標準の要素を「無効」であると宣言します。しかしそれは、バリデーターの仕事がそれが検証するどんな仕様への適合を保証することであって、のための「合法性」を保証することではないからですブラウザーや使用のです。
FALSE(ish):非標準のHTML要素はレンダリングの問題を引き起こします
おそらく、しかしありそうもない。( "will"を "might"に置き換えます)これによりレンダリングの問題が発生する唯一の方法は、カスタム要素が別の仕様(HTML仕様への変更または同じシステム内で尊重される別の仕様など)と競合する場合です。 SVG、Math、または何かカスタム)。
実際、CSSが非標準タグのスタイルを設定できるのは、HTML仕様に明確に記載されているためですようにいるです。
ユーザーエージェントは、理解できない要素や属性を意味的に中立として扱う必要があります。それらをDOM(DOMプロセッサーの場合)に残し、CSS(CSSプロセッサーの場合)に従ってスタイリングするが、それらから意味を推測しない
注意:カスタムタグを使用する場合は、後でHTML仕様を変更するとスタイルが崩れる可能性があるので、準備してください。<imsocool>
ただし、W3Cがタグを実装することはほとんどありません。
非標準タグとJavaScript(DOM経由)
JavaScriptを使用してカスタム要素にアクセスして変更できるのは、仕様でDOMでの処理方法についても説明されているためです。これは、ページ上の要素を操作できる(本当に恐ろしい)APIです。
HTMLUnknownElementインターフェイスは、この仕様(またはその他の適用可能な仕様)で定義されていないHTML要素に使用する必要があります。
TL; DR:仕様への準拠は、通信と安全のために行われます。不適合は、バリデータ以外はすべて許可されます。バリデータの唯一の目的は適合を強制することですが、その使用はオプションです。
例えば:
var wee = document.createElement('wee');
console.log(wee.toString()); //[object HTMLUnknownElement]
(これは炎を引くと確信していますが、2セントあります)