HTML เป็นภาษาทั่วไปสำหรับการเผยแพร่ไฮเปอร์เท็กซ์บนเวิลด์ไวด์เว็บ [1] จากปี 1982 Tim Berners-LEE ทำให้คำจำกัดความดั้งเดิมของ SGML ง่ายขึ้นถึงการเปิดตัวข้อมูลจำเพาะ XHTML1.1 ในปี 2544 HTML ได้กลายเป็นมาตรฐานสากลที่มีหลายเวอร์ชัน [2] ข้อมูลจำเพาะของแต่ละรุ่นถูกกำหนดไว้ในภาษาที่อ่านได้ซึ่งอธิบายโครงสร้างทางกฎหมายองค์ประกอบและแอตทริบิวต์ซึ่งเป็นคำจำกัดความประเภทเอกสารเรียกว่า DTD
บทความที่เกี่ยวข้อง: การเรียนรู้รหัส HTML: ตัวย่อของ doctype
DTD อธิบายการประกาศประเภทเอกสาร (การประกาศ DTD เรียกว่า Doctype [3]) ที่ด้านหน้าของเอกสาร HTML มันเป็นเอกสารติดต่อและคำสั่ง DTD ตัวอย่างเช่น doctype ของ html4.01 เข้มงวดคือ:
<!doctype html public -//w3c//dtd html 4.01//en http://www.w3.org/tr/html4/strict.dtd>มันระบุเอกสารเวอร์ชัน HTML ซึ่งเป็นข้อมูลที่จำเป็นมากที่สุดเมื่อเครื่องมือเช่นเบราว์เซอร์แยกวิเคราะห์เอกสาร ตัวอย่างเช่นเครื่องมือตรวจสอบ W3C สามารถตรวจสอบไวยากรณ์และชี้ให้เห็นข้อผิดพลาดตาม
การดำเนินการตามมาตรฐานของเบราว์เซอร์ในช่วงต้นของมาตรฐานส่วนขยายส่วนตัวจำนวนมากความสับสนของมาตรฐานต้นเอง ฯลฯ นำไปสู่เอกสารในเวลานั้นทั้ง doctype หรือการอ้างอิงโดยตรงไปยัง DTD และทำให้ยากสำหรับมาตรฐานใหม่ที่จะนำไปใช้และเป็นที่นิยมเพราะเบราว์เซอร์ เพื่อจัดการกับหน้าเว็บที่สร้างขึ้นตามมาตรฐานเว็บและหน้าเว็บที่สร้างขึ้นตามแนวทางปฏิบัติที่ล้าสมัยทอดด์ฟาห์ร์เนอร์เสนอวิธีการสลับในปี 1998 ซึ่งช่วยให้เบราว์เซอร์สามารถจัดทำโหมดการแสดงผลสองชุด: นั่นคือมีเอกสารที่สมบูรณ์แบบ
วิธีนี้ใช้งานได้ง่ายและเรียบง่ายและมีประสิทธิภาพ สองปีต่อมาครั้งแรกที่ใช้ในเวอร์ชัน MAC ของ IE และในไม่ช้าผู้ผลิตเบราว์เซอร์รายอื่นก็นำมาใช้ซึ่งให้กำเนิดการดมกลิ่น Doctype (การดมกลิ่น Doctype หรือการสลับ doctype) เบราว์เซอร์ใช้เพื่อตัดสินใจว่าเครื่องยนต์ควรใช้โหมดมาตรฐานโหมดกึ่งมาตรฐานหรือโหมด quirk ซึ่งจะมีผลกระทบอย่างมากต่อการแยกวิเคราะห์ HTML และ CSS ซึ่งเป็นเค้าโครงของ CSS และ JavaScript สคริปต์ [5] ไม่ต้องสงสัยเลยว่าเราควรใช้โมเดลมาตรฐานให้มากที่สุด
แม้ว่า HTML5 จะยังคงอยู่ในร่างเบราว์เซอร์ล่าสุด Firefox3.5, Chrome2, Safari4 และ IE8 ได้เริ่มสนับสนุนคุณสมบัติบางอย่างโดยเฉพาะอย่างยิ่งการเปิดตัว Google Wave ได้กำหนดจุดสุดยอดใหม่ในการส่งเสริมการฝึก HTML5 HTML5 ไม่ได้ขึ้นอยู่กับ SGML และไม่มี DTD แต่สำหรับความเข้ากันได้ไปข้างหน้ามันยอมรับความจริงที่ว่าการดอง doctype การกำหนดว่า doctype เป็นคำประกาศการแปลงโหมดเดียวในข้อความ/HTML ยกเว้นว่าไม่มีการใช้งาน doctype ของมันกระชับมาก: <! doctype html> [6]
เป็นเรื่องที่ควรค่าแก่การกล่าวถึงว่าเพื่อแก้ปัญหาความเข้ากันได้ไปข้างหน้า IE8 ใช้การประกาศที่เข้ากันได้กับ X-UA [7] ซึ่งนำไปสู่โหมดการเรนเดอร์ของเบราว์เซอร์ใน IE8 ที่ไม่เพียง แต่ขึ้นอยู่กับการดมกลิ่น Doctype เท่านั้น สิ่งนี้ไม่เพียง แต่นำไปสู่การตัดสินรูปแบบที่ซับซ้อนมากขึ้น [8] แต่ยังเป็นการละเมิดแนวคิดการปรับปรุงแบบก้าวหน้าของการออกแบบเว็บ [9]
บนถนนสู่มาตรฐานเว็บเราไม่เพียง แต่ต้องส่งต่อความเข้ากันได้กับความสมจริงเท่านั้น แต่ยังรวมถึงความเข้ากันได้ย้อนหลังกับอุดมคติ นี่คือความหวังที่จะทำให้แน่ใจว่าเว็บของเราสามารถทำงานได้ตามปกติในอนาคต ด้วยแนวคิดของมาตรฐานความเรียบง่ายและการปรับปรุงค่อยๆทางออกที่ดีที่สุดสำหรับหน้าของเราตอนนี้อาจจะ:
<!doctype html>…<meta http-equiv=x-ua-compatible content=ie=edge>…หมายเหตุ: