وضع التوافق

في مجال الحوسبة ، يُعدّ وضع التوافق مع الإصدارات السابقة أسلوبًا تستخدمه متصفحات الويب للحفاظ على التوافق مع صفحات الويب المصممة للمتصفحات القديمة، بدلاً من الالتزام الصارم بمعايير الويب في وضع المعايير . وقد تمّ تقنين هذا السلوك لاحقًا، لذا يُشار الآن إلى ما كان يُعرف سابقًا بوضع المعايير ببساطة باسم وضع عدم التوافق مع الإصدارات السابقة .

ملخص

يتم وصف بنية ومظهر صفحة الويب من خلال مزيج من لغتين معياريتين:

  • لغة HTML ، وهي لغة ترميز مصممة للاستخدام على الويب، وتصف بنية ومحتوى الصفحة؛ و
  • CSS ، وهي لغة نمطية عامة ، تحدد كيفية عرض الصفحة في وسائط مختلفة (أنماط مرئية لعرض الشاشة، وأنماط طباعة لاستخدامها عند طباعة الصفحة، وأنماط صوتية لاستخدامها عند قراءة الصفحة بصوت عالٍ بواسطة قارئ الشاشة ، وما إلى ذلك).

مع ذلك، فإن معظم متصفحات الويب القديمة إما لم تُطبّق مواصفات هذه اللغات بشكل كامل، أو طُوّرت قبل وضع الصيغة النهائية للمواصفات ( على سبيل المثال، كان متصفح مايكروسوفت إنترنت إكسبلورر الإصدار 5.0 لمنصة ماكنتوش ، الذي صدر عام 2000، أول متصفح ويب رئيسي يدعم CSS المستوى 1 بشكل كامل). [ 1 ] ونتيجةً لذلك، بُنيت العديد من صفحات الويب القديمة بالاعتماد على تطبيقات غير مكتملة أو غير صحيحة من قِبل المتصفحات القديمة، ولن تُعرض بالشكل المطلوب إلا عند معالجتها بواسطة متصفح من هذا النوع.

ازداد دعم معايير HTML وCSS في متصفحات الويب الرئيسية بشكل ملحوظ، إلا أن الكم الهائل من المستندات القديمة التي تعتمد على خصائص المتصفحات القديمة يُمثل عائقًا أمام مطوري المتصفحات، الذين يرغبون في تحسين دعمهم لمعايير HTML وCSS، مع الحفاظ في الوقت نفسه على التوافق مع الصفحات القديمة غير المتوافقة مع المعايير. إضافةً إلى ذلك، لا تزال العديد من صفحات الويب الجديدة تُنشأ بالطريقة القديمة، نظرًا لأن حلول التوافق التي يقدمها مطورو المتصفحات تجعل فهم المعايير ليس ضروريًا بالضرورة.

للحفاظ على التوافق مع أكبر عدد ممكن من صفحات الويب، تُطوَّر متصفحات الويب الحديثة عادةً بأنماط عرض متعددة: في "نمط عدم وجود غرائب"، تُعرض الصفحات وفقًا لمواصفات HTML وCSS، بينما في "نمط الغرائب"، تُبذل محاولات لمحاكاة سلوك المتصفحات القديمة. بعض المتصفحات (مثل تلك المبنية على محرك عرض Gecko من Mozilla ، أو Internet Explorer 8 في الوضع الصارم ) تستخدم أيضًا نمط "شبه قياسي" يحاول التوفيق بين النمطين، حيث يُطبِّق إحدى الغرائب ​​المتعلقة بحجم خلايا الجدول مع الالتزام بالمواصفات الأخرى. [ 2 ]

اختلافات الوضع وأمثلة عليها

يُعدّ التعامل مع خطأ نموذج الصندوق في متصفح إنترنت إكسبلورر أحد أبرز الفروقات بين وضعَي التوافق وعدم التوافق . فقبل الإصدار السادس، كان إنترنت إكسبلورر يستخدم خوارزمية لتحديد عرض صندوق العنصر تتعارض مع الخوارزمية الموضحة في مواصفات CSS، ونظرًا لشعبية المتصفح، تم إنشاء العديد من الصفحات التي اعتمدت على هذه الخوارزمية غير القياسية. أما بدءًا من الإصدار السادس، فيستخدم إنترنت إكسبلورر خوارزمية مواصفات CSS عند العرض في وضع عدم التوافق، بينما يستخدم الخوارزمية السابقة غير القياسية عند العرض في وضع التوافق.

ثمة اختلاف ملحوظ آخر يتمثل في المحاذاة الرأسية لأنواع معينة من المحتوى المضمن؛ إذ كانت العديد من المتصفحات القديمة تحاذي الصور إلى الحافة السفلية للصندوق الحاوي لها، على الرغم من أن مواصفات CSS تشترط محاذاتها إلى خط الأساس للنص داخل الصندوق. في وضع "بدون توافق"، تحاذي المتصفحات المبنية على Gecko الصور إلى خط الأساس، بينما في وضع "التوافق"، تحاذيها إلى الأسفل. [ 3 ]

بالإضافة إلى ذلك، لم تُفعّل العديد من المتصفحات القديمة خاصية توريث أنماط الخطوط داخل الجداول؛ ونتيجةً لذلك، كان لا بد من تحديد أنماط الخطوط مرةً واحدةً للمستند ككل، ومرةً أخرى للجدول، على الرغم من أن مواصفات CSS تشترط توريث أنماط الخطوط إلى الجدول. إذا تم تحديد أحجام الخطوط باستخدام وحدات نسبية، فإن المتصفح المتوافق مع المعايير سيرث حجم الخط الأساسي، ثم يُطبّق حجم الخط النسبي داخل الجدول: على سبيل المثال، صفحةٌ تُعلن عن حجم خط أساسي 80% وحجم خط جدول 80% (لضمان حجم 80% في المتصفحات التي لا ترث أحجام الخطوط بشكل صحيح) ستعرض، في متصفح متوافق مع المعايير، جداول بحجم خط 64% (80% من 80%). ونتيجةً لذلك، لا ترث المتصفحات عادةً أحجام الخطوط إلى الجداول في وضع التوافق. [ 4 ]

وضع الميزات المحدودة

تم تطبيق وضع توافق ثالث يُعرف باسم "وضع الغرائب ​​المحدودة" (سابقًا، "وضع المعايير شبه الكاملة" أو "الوضع الصارم")، والذي يحافظ على الحجم الرأسي "التقليدي" لخلايا الجدول وفقًا لمواصفات CSS2 ، في هذه المتصفحات: Safari و Opera 7.5 (والإصدارات الأحدث) وجميع المتصفحات المستندة إلى Gecko منذ الإصدار 1.0.1 (مثل Firefox ) و Internet Explorer 8. [ 2 ]

يُطابق وضع العرض "شبه القياسي" وضع العرض "القياسي" في جميع التفاصيل باستثناء تفصيل واحد. يتم التعامل مع تخطيط الصور داخل خلايا الجدول بنفس طريقة عمل وضع "التوافق"، وهو ما يتوافق إلى حد كبير مع المتصفحات القديمة مثل إنترنت إكسبلورر 7 (والإصدارات الأقدم). هذا يعني أن تخطيطات الصور المقسمة داخل الجداول أقل عرضة للتشويش في المتصفحات عند استخدام وضع "التوافق" أو وضع "شبه القياسي"، مقارنةً بوضع "القياسي". [ 5 ]

تفعيل أوضاع عرض مختلفة

في أغلب الأحيان، تحدد المتصفحات وضع العرض المناسب بناءً على وجود تعريف نوع المستند (DOCTYPE) في الصفحة؛ فإذا كان تعريف نوع المستند (DOCTYPE) موجودًا بالكامل، سيستخدم المتصفح وضع العرض المتوافق (no-quirks mode)، وإذا لم يكن موجودًا، فسيستخدم وضع العرض المتوافق (quirks mode). على سبيل المثال، صفحة ويب تبدأ بتعريف نوع المستند (DOCTYPE) التالي ستؤدي إلى تفعيل وضع العرض المتوافق (no-quirks mode):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

تعريف نوع المستند التالي غير صحيح نحويًا، إذ يحتوي على الكلمة المفتاحية "PUBLIC" للتعريف العام، ولكنه لا يحتوي على مُعرّف عام (يشير إلى اسم إصدار HTML المُستخدم)، ولا يحتوي على عنوان URL لمعرّف النظام لتعريف نوع مستند HTML . سيؤدي هذا إلى تفعيل وضع التوافق.

<!DOCTYPE html PUBLIC>

بالإضافة إلى ذلك، سيتم عرض صفحة الويب التي لا تتضمن تعريف نوع المستند (DOCTYPE) على الإطلاق في وضع التوافق.

يُعدّ متصفح إنترنت إكسبلورر 6 من مايكروسوفت استثناءً بارزًا لهذه القاعدة ، حيث يعرض الصفحة في وضع التوافق إذا سبق تعريف نوع المستند (DOCTYPE) مقدمة XML ، بغض النظر عما إذا تم تحديد تعريف نوع المستند بالكامل أم لا. وبالتالي، فإن صفحة XHTML التي تبدأ بالتعليمات البرمجية التالية سيتم عرضها في وضع التوافق بواسطة إنترنت إكسبلورر 6:

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

ما سبق مفيد إلى حد ما لأنه يمكن استخدامه لتشغيل وضع التوافق فقط في متصفح إنترنت إكسبلورر 6.

سيتم تفعيل وضع التوافق في أي إصدار من متصفح إنترنت إكسبلورر إذا سبق أي شيء تعريف نوع المستند (DOCTYPE). على سبيل المثال، إذا احتوى مستند نصي تشعبي على تعليق أو مسافة أو أي وسم قبل تعريف نوع المستند، فسيستخدم إنترنت إكسبلورر وضع التوافق.

<!-- سيضع هذا التعليق متصفحات إنترنت إكسبلورر 6 و7 و8 و9 في وضع التوافق --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

تم إصلاح مشكلة تعريف XML في الإصدار السابع من متصفح إنترنت إكسبلورر، حيث يتم تجاهل مقدمة XML ببساطة. [ 6 ] ومع ذلك، ولتحقيق أقصى قدر من التوافق مع متصفحات الويب الحالية والقديمة، يقترح اتحاد شبكة الويب العالمية (W3C )، المسؤول عن صيانة مواصفات XHTML، أن يفكر مؤلفو مستندات XHTML في حذف تعريف XML. [ 7 ]

مقارنة أنواع المستندات

قام هنري سيفونين بتجميع قائمة بأنواع المستندات المختلفة وكيفية معالجتها في المتصفحات الأكثر شيوعًا، موضحًا ما إذا كانت الصفحات تُعرض في وضع التوافق (Quirks)، أو الوضع القياسي ( Standards )، أو الوضع شبه القياسي (Almost standards). ويُعتمد في تحديد "الوضع شبه القياسي" على عرض ارتفاع خلايا الجدول غير القياسي. ينطبق هذا الجدول على المحتوى المُقدّم بنوع المحتوى text/html. أما المحتوى المُقدّم بنوع المحتوى application/xhtml+xml فيُعرض في الوضع القياسي في متصفحات Chrome وFirefox وInternet Explorer 9 وSafari وOpera. ولا يدعم Internet Explorer 6 و7 و8 نوع المحتوى application/xhtml+xml. [ 2 ]

نوع المستندNS6موزيلا 0.9.5-1.0إنترنت إكسبلورر 8+، فايرفوكس، كروم، سفاري، أوبرا 7.5+، نتسكيب 7+، موزيلا 1.0.1+ ، كونك 3.5+، مواصفات HTML5إنترنت إكسبلورر 7، أوبرا 7.10إنترنت إكسبلورر 6، أوبرا 7.0ماك إنترنت إكسبلورر 5كونك 3.2
لا أحد
< html >
سؤالسؤالسؤالسؤالسؤالسؤالسؤال
HTML 2
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
سؤالسؤالسؤالسؤالسؤالسؤالسؤال
HTML 3
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//">
سؤالسؤالسؤالسؤالسؤالسؤالسؤال
HTML 3.2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
سؤالسؤالسؤالسؤالسؤالسؤالسؤال
HTML 4.01
حازممع مُعرّف النظام
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
SSSأأأأ
بدون مُعرّف النظام
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
SSSأأسؤالأ
مرحلة انتقاليةمع مُعرّف النظام
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
SSأأأأسؤال
بدون مُعرّف النظام
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
سؤالسؤالسؤالسؤالسؤالسؤالسؤال
HTML5
<!DOCTYPE html>
سؤالSSأأأ؟
أساسيات XHTML
مع مُعرّف النظام وبدون تعريف XML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
SSSأأأأ
XHTML 1.0
حازممع مُعرّف النظام وإعلان XML
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
SSSأسؤالأسؤال
مع مُعرّف النظام وبدون إعلان XML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
SSSأأأأ
بدون مُعرّف النظام وبدون إعلان XML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
SSSأأأ؟
مرحلة انتقاليةمع مُعرّف النظام ومع إعلان XML
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
SSأأسؤالأسؤال
مع مُعرّف النظام وبدون إعلان XML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
SSأأأأسؤال
بدون مُعرّف النظام وبدون إعلان XML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
SSأأأأ؟
XHTML 1.1
مع مُعرّف النظام وإعلان XML
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
SSSأسؤالأسؤال
مع مُعرّف النظام وبدون تعريف XML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
SSSأأأأ
نوع المستندNS6موزيلا 0.9.5-1.0إنترنت إكسبلورر 8+، فايرفوكس، كروم، سفاري، أوبرا 7.5+، نتسكيب 7+، موزيلا 1.0.1+ ، كونك 3.5+، مواصفات HTML5إنترنت إكسبلورر 7، أوبرا 7.10إنترنت إكسبلورر 6، أوبرا 7.0ماك إنترنت إكسبلورر 5كونك 3.2

التحقق من الوضع

في معظم المتصفحات، يشير امتداد نموذج كائن المستند (DOC) document.compatMode إلى وضع عرض الصفحة الحالية. في الوضع القياسي والوضع شبه القياسي، يحتوي document.compatMode على القيمة "CSS1Compat"، بينما في وضع التوافق يكون مساويًا لـ "BackCompat". [ 8 ]

بالإضافة إلى ذلك، في متصفحي Mozilla Firefox و Opera، يتم الإشارة إلى وضع العرض المستخدم لصفحة معينة في مربع المعلومات "معلومات الصفحة".

مراجع

  1. "أوراق الأنماط المتتالية: متصفحات CSS" . اتحاد شبكة الويب العالمية . 19 ديسمبر 2001. تم الاطلاع عليه بتاريخ 27 مايو 2007 .
  2. 1 2 3 سيفونين، هنري. "تفعيل أوضاع المتصفح باستخدام Doctype" . تم الاسترجاع في 15 مارس 2011 .
  3. "الصور والجداول والفجوات الغامضة" . مركز مطوري موزيلا. مؤرشف من الأصل في 22 مايو 2017. تم الاطلاع عليه في 27 مايو 2007 .
  4. "إصلاح مشكلة وراثة الجداول في وضع التوافق" . مركز مطوري موزيلا. مؤرشف من الأصل في 3 مارس 2016. تم الاطلاع عليه في 27 مايو 2007 .
  5. "وضع "شبه قياسي" في جيكو" . مركز مطوري موزيلا. مؤرشف من الأصل في 3 يونيو 2004. تم الاطلاع عليه في 27 مايو 2007 .
  6. ويلسون، كريس (15 أغسطس 2005). "مقدمة <?xml>، والوضع الصارم، وXHTML في متصفح إنترنت إكسبلورر" . مدونة إنترنت إكسبلورر . MSDN . تم الاطلاع عليه بتاريخ 27 مايو 2007 .
  7. "إرشادات توافق HTML" . XHTML 1.0 لغة ترميز النص التشعبي القابلة للتوسيع (الطبعة الثانية) . اتحاد شبكة الويب العالمية . 1 أغسطس 2002. تم الاطلاع عليه بتاريخ 14 فبراير 2009 .
  8. كوخ، بيتر-بول (2 فبراير 2009). "متفرقات" . توافق نموذج كائن المستند (DOM) التابع لاتحاد شبكة الويب العالمية - HTML . QuirksMode . تم الاسترجاع في 14 فبراير 2009 .