HTML هي اللغة المشتركة لنشر النص التشعبي على شبكة الويب العالمية [1]. من عام 1982 ، قام تيم بيرنرز لي بتبسيط التعريف الأصلي لـ SGML إلى إصدار مواصفات XHTML1.1 في عام 2001 ، أصبح HTML معيارًا دوليًا مع إصدارات متعددة [2]. يتم تعريف مواصفات كل إصدار بلغة قابلة للقراءة الآلي تصف الهياكل والعناصر والسمات القانونية ، وهو تعريف نوع المستند ، المشار إليه باسم DTD.
المقالات ذات الصلة: HTML Code Learning: اختصار 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 ، وجعلت من الصعب أيضًا تطبيق معايير جديدة وتعميمها لأن المتصفحات لا يمكن أن تميزها. من أجل التعامل مع صفحات الويب التي تم إنشاؤها وفقًا لمعايير الويب وصفحات الويب التي تم إنشاؤها وفقًا للممارسات التي عفا عليها الزمن ، اقترح Todd Fahrner الخروج إلى طريقة تبديل في عام 1998 ، والتي تسمح للمتصفح بتوفير مجموعتين من أوضاع التقديم: أي ، هناك وثيقة Doctype كاملة المستخدمة في استخدام معيار W3C ، وإلا يتم تمزيقها في الطريق القديم.
هذه الطريقة عملية وبسيطة وفعالة. بعد ذلك بعامين ، في المرة الأولى التي تم فيها استخدامها على نسخة Mac من IE ، وسرعان ما تبنتها مصنعو المتصفح الأخرى ، والتي أنجبت استنشاق Doctype (Sctype Sniffing أو Doctype Switching). يستخدمه المتصفح لتحديد ما إذا كان يجب على محركه تبني الوضع القياسي أو الوضع شبه العادي أو وضع 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 ولكن أيضًا على إعلان X-UA المتوافق. هذا لا يؤدي فقط إلى أحكام أنماط أكثر تعقيدًا [8] ، ولكنها تنتهك أيضًا فكرة التحسين التدريجي لتصميم الويب [9].
على الطريق إلى معايير الويب ، لا نحتاج فقط إلى توافق إلى الأمام مع الواقعية ، ولكن أيضًا التوافق المتخلف مع المثالية. هذا هو الأمل في التأكد من أن شبكةنا يمكن أن تعمل بشكل طبيعي في المستقبل. مع فكرة القياسية والبساطة والتعزيز تدريجيا ، فإن أفضل حل لصفحتنا الآن هو:
<!doctype html>…<meta http-equiv=x-ua-compatible content=ie=edge>…ملحوظات: