มีบางสิ่งเกี่ยวกับคำตอบอื่น ๆ ที่เป็นเพียงประโยคที่ไม่ดีหรืออาจไม่ถูกต้องเล็กน้อย
FALSE (ish): องค์ประกอบ HTML ที่ไม่ได้มาตรฐานคือ "ไม่อนุญาต", "ผิดกฎหมาย" หรือ "ไม่ถูกต้อง"
ไม่จำเป็น. พวกเขากำลัง"ไม่สอดคล้อง" ความแตกต่างคืออะไร? บางสิ่งอาจ "ไม่สอดคล้อง" และยังคงเป็น "อนุญาต" W3C จะไม่ส่งตำรวจ HTML ไปที่บ้านของคุณและดึงคุณออกไป
W3C ออกจากสิ่งนี้ด้วยเหตุผลนี้ ความสอดคล้องและข้อกำหนดถูกกำหนดโดยชุมชน หากคุณมีชุมชนขนาดเล็กที่ใช้ HTML เพื่อวัตถุประสงค์ที่เฉพาะเจาะจงมากขึ้นและพวกเขาทั้งหมดเห็นด้วยกับองค์ประกอบใหม่ที่ต้องการทำให้ง่ายขึ้นพวกเขาสามารถมีสิ่งที่ W3C อ้างถึงว่าเป็น"ข้อกำหนดอื่น ๆ ที่เกี่ยวข้อง"ๆ" (นี่คือการทำให้เข้าใจง่ายกว่า แต่เห็นได้ชัดว่าคุณเข้าใจ)
ดังกล่าวผู้ตรวจสอบที่เข้มงวดจะประกาศองค์ประกอบที่ไม่ได้มาตรฐานของคุณเป็น "ไม่ถูกต้อง" แต่นั่นเป็นเพราะงานตรวจสอบฯ คือการจัดให้สอดคล้องกับสิ่งที่ spec ก็ตรวจสอบเพื่อให้แน่ใจว่าจะไม่ "ถูกต้องตามกฎหมาย" สำหรับเบราว์เซอร์หรือการใช้งาน
FALSE (ish): องค์ประกอบ HTML ที่ไม่ได้มาตรฐานจะส่งผลให้เกิดปัญหาการแสดงผล
อาจเป็นไปได้ แต่ไม่น่าเป็นไปได้ (แทนที่ "จะ" ด้วย "อาจ") วิธีเดียวที่ควรทำให้เกิดปัญหาการแสดงผลคือหากองค์ประกอบที่กำหนดเองของคุณขัดแย้งกับข้อกำหนดอื่นเช่นการเปลี่ยนแปลงข้อกำหนด HTML หรือข้อกำหนดอื่นที่ได้รับการยกย่องในระบบเดียวกัน (เช่น SVG, คณิตศาสตร์หรือสิ่งที่กำหนดเอง)
ในความเป็นจริงเหตุผล CSS สามารถสไตล์แท็กที่ไม่ได้มาตรฐานเป็นเพราะข้อกำหนด HTML ระบุอย่างชัดเจนว่า:
ตัวแทนผู้ใช้จะต้องปฏิบัติต่อองค์ประกอบและคุณสมบัติที่พวกเขาไม่เข้าใจว่าเป็นกลาง; ปล่อยให้พวกเขาอยู่ใน DOM (สำหรับโปรเซสเซอร์ DOM) และจัดแต่งทรงผมตาม CSS (สำหรับโปรเซสเซอร์ CSS) แต่ไม่ได้อนุมานความหมายใด ๆ จากพวกเขา
หมายเหตุ:หากคุณต้องการใช้แท็กที่กำหนดเองเพียงจำการเปลี่ยนแปลงข้อกำหนด HTML ในภายหลังอาจทำให้สไตล์ของคุณหมดไปดังนั้นควรเตรียมพร้อม เป็นไปได้ยากมากที่ W3C จะใช้งาน<imsocool>
แท็ก
แท็กและ JavaScript ที่ไม่เป็นมาตรฐาน (ผ่าน DOM)
เหตุผลที่คุณสามารถเข้าถึงและแก้ไของค์ประกอบที่กำหนดเองโดยใช้ JavaScript เป็นเพราะสเปคยังพูดถึงวิธีที่พวกเขาควรจะจัดการใน DOMซึ่งเป็น API (น่ากลัวจริงๆ) API ที่ช่วยให้คุณสามารถจัดการองค์ประกอบในหน้าของคุณ
ต้องใช้อินเทอร์เฟซ HTMLUnknownElement สำหรับองค์ประกอบ HTML ที่ไม่ได้กำหนดโดยข้อกำหนดนี้ (หรือข้อกำหนดอื่น ๆ ที่เกี่ยวข้อง)
TL; DR: การทำตามข้อกำหนดนั้นทำขึ้นเพื่อวัตถุประสงค์ในการสื่อสารและความปลอดภัย ทุกอย่างยกเว้นการตรวจสอบซึ่งมีวัตถุประสงค์เพียงอย่างเดียวคือการบังคับใช้ความสอดคล้อง แต่มีการใช้เป็นตัวเลือก
ตัวอย่างเช่น:
var wee = document.createElement('wee');
console.log(wee.toString()); //[object HTMLUnknownElement]
(ฉันแน่ใจว่านี่จะวาดเปลวไฟ แต่มี 2 เซนต์ของฉัน)