על ההבדל בין HTML ל-XHTML

על ההבדל המהותי בין XHTML ל-HTML ועל הכשלון העצוב של XHTML במימוש הפוטנציאל שלו.

בעקבות המאמר על HTML 5, שאלו אותי על ההבדל המהותי בין HTML ל-XHTML ולמה XHTML נחשב יותר. במאמר זה אסביר על ההבדל ולמה בעצם XHTML לא נחשב יותר (אך עדיין מומלץ מאד להשתמש בו).

על מנת להבין את מקור ה-XHTML, כדאי שנחזור אחורה בזמן לשנת 1999, עולם הטכנולוגיה כמרקחה כאשר ה-XML יוצא לאוויר העולם. היתה תחושה שהכל אפשרי, תקן ה-XHTML יצא על מנת לאפשר למפתחי אינטרנט לכתוב XML שיתאים לדפי אינטרנט וכן שיוכל לשלב אפליקציות אינטרנט בקלות באמצעות תגיות גמישות שכל אחד יכול לכתוב ולאפיין בהתאם לצרכים שלו. באמצעות XHTML אפשר לכתוב דפי אינטרנט שישלבו מידע מאפליקציות שונות בקלות מדהימה, לכתוב אתרי אינטרנט שיראו מעולה בכל סוג דפדפן שהוא שיש בו xml parser ולתת חירות מדהימה עבור כל מפתח אינטרנט – לכתוב תגיות משלו עם התנהגות משלו.

מבנה ה-XHTML לעומת ה-HTML

מבנה ה-XHTML לפיכך מאד דומה למבנה XML – הוא אינו מכיל תגיות פתוחות ועל כל תגית בודדת (כמו img למשל) להסגר. צריך להקפיד על קינון מתאים ועל סדר היררכי וכו'. בנוסף, מסמך XHTML לא אמור לעבור SGML parsing.

HTML לעומת זאת לא מתנהג כמו XML, אפשר בהחלט לכתוב תגיות ולא לסגור אותן. למען האמת סגירה שלהן נחשבת כטעות וכל הדפדפנים לא יתייחסו אליה, לא חייבים להקיף כל דבר במרכאות ובתגיות סוגרות. כך למשל li לא חייב להסגר.

מה אפשר לעשות ב-XHTML ואי אפשר לעשות ב-HTML ?

כל נושא התגיות הגמישות והשילוב של ה-XML הוא יתרון אדיר. החסרון של HTML הוא שהוא יכול להשתמש רק בתגיות של HTML בעוד שהיתרון של XHTML שהוא יכול להשתמש בכל תגית שהיא לשילוב כל מידע שמגיע מ-XML.

הכשלון העצוב של ה-XHTML

בגדול, ה-XHTML נכשל. למה הוא נכשל? בגלל שבטח כל מה שאמרתי בפסקה הקודמת על תגיות גמישות באפליקצית אינטרנט נשמע כמו סינית וכמו איזו שטות. מעט מאד מפתחי אינטרנט בעולם משתמשים ב-XHTML כמו שצריך להשתמש בו, ולמה?

מסיבות שונות ומשונות, מיקרוסופט לא תומכים (וגם לא יתמכו) ב-XHTML או יותר נכון ב application/xhtml+xml MIME type באינטרנט אקספלורר על שלל גרסאותיו. כיוון שמדובר בדפדפן האינטרנט הנפוץ בעולם, שום מפתח אינטרנט לא יפתח ב-XHTML אמיתי.

במקום application/xhtml+xml MIME type אנו בדרך כלל מורים לדפדפן לעשות parsing לדף האינטרנט כ-HTML. ומה שרוב המפתחים מכירים כ-XHTML הוא בעצם XML שמשתמש אך ורק בתגיות HTML, סוג של XHTML מסורס שאין כל הבדל בינו לבין HTML 4.01 מבחינת יכולות. הוא עובר parsing ב-SGML ואנו מורים לדפדפן האינטרנט להעביר אותו parsing כזה.

אז למה כן להשתמש ב XHTML?

למרות שסביר מאד להניח שתקן ה-XHTML לא ימריא בשנים הקרובות ולא ימלא את הציפיות הגבוהות שתלו בו, חשוב להקפיד שאתר האינטרנט כן יהיה בתקן XHTML מהסיבות הבאות:

  • תקן XHTML דומה הרבה יותר לתקן HTML 5 העתידי מאשר HTML 4.01 ולפיכך ידרוש התאמות מעטות יותר לתקן זה.
  • תקן XHTML על המבנה ההיררכי הנוקשה שלו ידידותי הרבה יותר למנועי חיפוש.
  • המבנה ההיררכי והמסודר של דף XHTML נוח יותר למתכנתים ולאנשי JavaScript מאשר HTML 4.01.

תקן HTML 4 מכיל את כל היכולות של XHTML מבחינת HTML. אך אין לשכוח את התרומה העצומה למודעות לתקן XHTML ולמחשבה הרווחת בציבור המפתחים ש-XHTML טוב יותר להתפתחות אתרי האינטרנט – מאתרי אינטרנט טבלאיים מיושנים לאתרי אינטרנט מעוצבים בגמישות והפרדה ברורה בין תוכן, עיצוב והתנהגות.

תקן XHTML 2 לעומת תקן HTML 5

ב-WC3 עובדים על תקן XHTML 2 שהוא הרבה יותר קרוב ל-XML מאשר XHTML 1.1. בשנת 2009 אמורה לצאת הטיוטא התשיעית של התקן אך לאור השימוש המועט מאד ב-XHTML עתידו של התקן לא ברור ולא ברור אם מישהו יישם אותו.

XHTML 5 יצא במקביל ל-HTML 5 ויכיל את אותם מאפיינים של HTML 5 בנוסף למבנה ההיררכי הקשיח של XML שאנו מכירים כיום. כיוון שהתקן הסופי אמור לצאת בשנת 2012, כל מה שנותר לנו זה לחכות ואולי לקוות שמתישהו ההבטחה שהיתה טמונה ב-XHTML תתממש.

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

המנעו מהעלאת source control לשרת פומבי

לא תאמינו כמה אתרים מעלים את ה-source control שלהם לשרת. ככה תמצאו אותם וגם הסבר למה זה רעיון רע.

תמונה מצוירת של רובוט שמנקה HTML
יסודות בתכנות

סניטציה – למה זה חשוב

הסבר על טכניקה פשוטה וידועה מאד שאנו מפעילים על מידע לפני שאנחנו מציגים אותו ב-HTML באפליקציה או באתר.

גלילה לראש העמוד