Hay algunas cosas sobre las otras respuestas que están mal redactadas o tal vez un poco incorrectas.
Falso (ish): los elementos HTML no estándar están "no permitidos", "ilegales" o "inválidos".
No necesariamente. Ellos son "No conformado". ¿Cual es la diferencia? Algo puede "no conformarse" y aún así ser "permitido". El W3C no va a enviar a la policía HTML a su hogar y alejarlo.
El W3C dejó las cosas de esta manera por una razón. La conformidad y las especificaciones son definidas por una comunidad. Si tiene una comunidad más pequeña que consume HTML para fines más específicos y todos están de acuerdo en algunos elementos nuevos que necesitan para facilitar las cosas, pueden tener lo que el W3C se refiere tanto a "Otras especificaciones aplicables". (Esto es una simplificación asquerosa, obviamente, pero se entiende la idea)
Dicho esto, los validadores estrictos declararán que sus elementos no estándar son "inválidos". Pero eso se debe a que el trabajo del validador es garantizar la conformidad con cualquier especificación para la que esté validando, no para garantizar la "legalidad" para el navegador o por usar.
Falso (ish): elementos HTML no estándar voluntad resultar en problemas de representación
Posiblemente, pero poco probable. (Reemplace "" con "podría") La única forma en que esto debería dar lugar a un problema de representación es si su elemento personalizado entra en conflicto con otra especificación, como un cambio a la especificación HTML u otra especificación que se honra dentro del mismo sistema (como Svg, matemáticas o algo personalizado).
En realidad, La razón por la que CSS puede diseñar etiquetas no estándar es porque la especificación HTML claramente establece que:
Los agentes de los usuarios deben tratar elementos y atributos que no entienden como semánticamente neutrales; Dejándolos en el DOM (para procesadores DOM), y diseñarlos de acuerdo con CSS (para procesadores CSS), pero no inferir ningún significado de ellos
Nota: Si desea usar una etiqueta personalizada, solo recuerde un cambio en la especificación HTML en un momento posterior podría volar su estilo, así que prepárese. Es realmente poco probable que el W3C implemente el <imsocool>
Etiqueta, sin embargo.
Etiquetas no estándar y JavaScript (a través del DOM)
La razón por la que puede acceder y alterar elementos personalizados usando JavaScript es porque el La especificación incluso habla sobre cómo se deben manejar en el DOM, que es la API (realmente horrible) que te permite manipular los elementos de tu página.
La interfaz HTMLUNKNOWNELEMENT debe usarse para elementos HTML que no están definidos por esta especificación (u otras especificaciones aplicables).
Tl; dr: conforme a la especificación se realiza para fines de comunicación y seguridad. La falta de conformidad todavía está permitida por todo menos un validador, cuyo único propósito es hacer cumplir la conformidad, pero cuyo uso es opcional.
Por ejemplo:
var wee = document.createElement('wee');
console.log(wee.toString()); //[object HTMLUnknownElement]
(Estoy seguro de que esto dibujará llamas, pero hay mis 2 centavos)