HTML5

HTML5 (ראשי תיבות של: 5 HyperText Markup Language) היא שפת תגיות וטכנולוגיה מרכזית באינטרנט המשמשת לעיצוב המבנה והתצוגה של תוכן ברשת האינטרנט, והיא הגרסה החמישית של שפת התגיות HTML. נכון לאוקטובר 2014, זוהי הגרסה האחרונה והמלאה ביותר של HTML5, כפי שהוגדר על ידי W3C,‏[1] הארגון המרכזי העוסק בתקינה ברשת. הגרסה הקודמת, HTML 4, תוקננה ב-1997.

HTML5
HyperText Markup Language
סיומת קובץ.html
סוג מדיה באינטרנטtext/html
UTIindex.html
מפתחWorld Wide Web Consortium ו-WHATWG
תאריך השקה28 באוקטובר 2014 עריכת הנתון בוויקינתונים
גרסה אחרונהHTML 5
HTML 5.1 טיוטת עבודה
ב־28 באוקטובר 2014
סוגשפת סימון
הורחב לתקןXHTML5 (XML-serialized HTML5)
תקןW3C HTML5
W3C HTML 5.1
פורמט פתוח?כן
תוכנה נפוצהדפדפן
האתר הרשמי
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

השינויים המרכזיים נועדו לשיפור השפה בעזרת תמיכה במולטימדיה, תוך כדי שמירה על אופייה העקבי, הקריא והברור לבני אדם ולמחשבים (דפדפנים, מנתחי תוכן וכדומה). מטרתה של HTML5 היה לא רק להחליף את HTML 4, אלא גם את XHTML 1 ואת DOM רמה 2.[2]

אחרי הקודמים לה, HTML 4.01 ו-XHTML 1.1,‏ HTML5 היא הפתרון לכך ש-HTML ו-XHTML בשימוש הנפוץ ברשת האינטרנט הם ערבוב של תכולות שונות שנוצרו בתקנים שונים, יחד עם תכולות שנקבעו על ידי מוצרי תוכנה חיצוניים, כמו דפדפנים. HTML5 מנסה, בנוסף, להגדיר שפת סימון יחידה שיכולה להכתב גם כ-HTML וגם כ-XHTML, והתקן מכיל מידע מפורט שאמור לעודד מימושי תאימות. היא מרחיבה, משפרת והופכת את הסימונים הקיימים במסמכים להגיוניים, ומציעה דרכים נוחות לסימון וממשקי תכנות יישומים עבור יישומי אינטרנט מסובכים.[3] מסיבות אלו, HTML5 גם היא שפה חוצה-פלטפורמות במובייל. אפשרויות רבות ב-HTML5 נבנו תוך התחשבות ביכולת לרוץ על מכשירים חסכוניים בחשמל, כמו מחשבי לוח או טלפונים חכמים. בדצמבר 2011, קבוצת המחקר Strategy Analytics חזתה שעליות מכירות הטלפונים שתומכים ב-HTML תגיע למיליארד מכשירים ב-2013.[4]

HTML5 הוסיפה, בעיקר, מספר רב של תכונות תחביריות חדשות. תכונות אלו כוללות שימוש ב-MathGL לנוסחאות מתמטיות, וכן הוספת אלמנטים חדשים שהחליפו את תגי ה-<object> הרגילים, כמו <video>,‏ <audio>,‏ <canvas> יחד עם שילובם של Scalable Vector Graphics (SVG). אפשרויות אלו עוצבו על מנת לאפשר שילוב של מולטימדיה ותוכן גרפי באתר בקלות יחסית, מבלי שיהיה צורך לעשות שימוש ב-API או תוספים קנייניים. תגים חדשים שאחראיים על מבנה העמוד כוללים את <main>,‏ <section>,‏ <article>,‏ <header>,‏ <footer>,‏ <aside>,‏ <nav> ואת <figure>. הם עוצבו על מנת להעשיר את התחביר של תוכן המסמכים. מאפיינים חדשים הוספו עבור תגיות HTML, ואלמנטים ומאפיינים מסוימים הוסרו. אלמנטים מסוימים, כמו <cite>,‏ <a> ו-<menu> שונו, הוגדרו מחדש ותוקננו. ה-API וה-DOM כבר לא מהווים חלק משני, אלא ממש מהווים חלק בבניית היסודות והתקנון של HTML5.‏ HTML5 גם מגדיר בפירוט כיצד לעבד מסמכים לא תקניים, כך שטעויות התחביר יטופלו בצורה אחידה בכל הדפדפנים.

היסטוריה

Web Hypertext Application Technology Working Group ‏(WHATWG) התחילו לעבוד על התקן החדש בשנת 2004. באותה תקופה, HTML 4.01 לא עודכן מאז שנת 2000,[5] וה-World Wide Web Consortium (הידוע גם בתור W3C) התמקד ביצירת פיתוחים עתידיים עבור XHTML 2.0. בשנת 2009, ה-W3C הרשו לקבוצה שעבדה על XHTML 2.0 להחליט שלא לחדש אותו. כיום, W3C ו-WHATWG עובדים יחדיו על הפיתוח של HTML5.[6]

אף על פי שתכולות מסוימות ב-HTML5 מושוות לעיתים קרובות ל-Adobe Flash, שתי הטכנולוגיות שונות מאוד. שתיהן מאפשרות לנגן שמע ווידאו מתוך דפי אינטרנט, וכן להשתמש ב-SVG.‏ HTML5 בעצמה לא יכולה בעצמה לשמש להנפשה – חובה להשתמש גם ב-CSS או ב-JavaScript. ישנן יכולות רבות של Flash שאינן קיימות ישירות ב-HTML5.

אף על פי ש-HTML5 מוכר בקרב המפתחים כבר שנים, היכולות האינטראקטיביות שלו פרצו לתודעת הציבור והמדיה רק בסביבות אפריל 2010,[7][8][9][10] אחרי שמנכ"ל חברת אפל דאז, סטיב ג'ובס, הוציא מכתב פומבי שכותרתו הייתה "מחשבות על Flash", בו הוא הסיק ש"Flash אינה נדרשת יותר כדי לצפות בסרטונים או לצרוך כל סוג של תוכן ברשת", וש"סטנדרטים חדשים שנוצרים בעידן הטלפונים הניידים, כמו HTML5, ינצחו".[11] התבטאות זו עוררה מחלוקת בקרב מפתחי ה-Web, בה חלקם הזכירו שבזמן ש-HTML5 מציעה יכולת משופרת, מפתחים חייבים להתחשב בתמיכה בדפדפנים השונים כמו גם בשוני בין האפשרויות הקיימות ב-Flash לבין אלו הקיימות ב-HTML5.[12] בתחילת נובמבר 2011, חברת Adobe הודיעה שתפסיק את הפיתוח של Flash למכשירים הניידים ותתעל את המאמצים שלה לטובת פיתוח כלים בעזרת HTML5.[13]

בשנת 2013 שוחררה ספרייה חינמית H5P.

הליך התקינה

Mozilla Foundation ו-Opera Software הציגו נייר עמדה בסדנה של W3C ביוני 2004,[14] המתמקד בפיתוח טכנולוגיות עם תאימות לאחור עבור דפדפנים קיימים,[15] כולל טיוטה ראשונית של Web Forms 2.0. הסדנה נסגרה בהצבעה שתוצאותיה היו 8 בעד ו-14 נגד על המשך העבודה על HTML.[16] מיד לאחר הסדנה, WHATWG נוצרה והתחילה לעבוד בהתאם לנייר העמדה, וטיוטה שנייה, Web Applications 1.0, הוכרזה גם היא.[17] כעבור זמן, שתי ההצעות אוחדו ומהן נוצר HTML5.[18] תקן ה-HTML5 אומץ כנקודת פתיחה של קבוצת העבודה על HTML מטעם W3C בשנת 2007.

2008 – הטיוטה הראשונה

WHATWG פרסמה את טיוטת העבודה הראשונה הפומבית ב-22 בינואר 2008.[19] חלקים מ-HTML5 כבר מומשו בדפדפנים אף על פי שלא התקבלה החלטה שנותנת המלצה על התקן.

2011 – קריאה אחרונה

ב-14 בפברואר 2011, גוף התקינה W3C האריך את תקופת העבודה של קבוצת העבודה על HTML, יחד עם יעדים ברורים עבור HTML5. במאי 2011 קבוצת העבודה קידמה את HTML5 ל"קריאה אחרונה", הזמנה לקהילות מחוץ ומבית לאשר את התקינות הטכנית של המפרט. W3C פיתחו סדרת בדיקות מקיפה על מנת להגיע לתאימות רחבה עד לתקינה מלאה ב-2014, תאריך יעד להמלצה על התקן.[20] בינואר 2011, שינו ה-WHATWG את שם התקן שלהם ל-"HTML". ה-W3C לעומת זאת המשיכה את הפרויקט לשחרור HTML5.[21]

2012 – המלצה כמועמד

ביולי 2012, ה-WHATWG וה-W3C החליטו על הפרדה. ה-W3C ימשיך את העבודה על HTML5, תוך שהוא מתמקד בתקן סופי ומקיף, שנחשב על ידי WHATWG "תמונת מצב". ארגון ה-WHATWG ימשיך לפתח את HTML5 כ"תקן חי". התפיסה של תקן חי אומרת שהתקן לעולם לא מושלם והוא תמיד מעודכן ומשופר. ניתן להוסיף תכולות חדשות, אך לא מוחקים שימושיות.[22]

בדצמבר 2012, W3C ייעד את HTML5 להמלצה כמועמד.[23] המדד להתקדמות להמלצה של W3C היא "שני מימושים שמושלמים ב-100% ומקיימים תפעוליות בינית מלאה".[24][25]

2014 – הצעה להמלצה והמלצה

בספטמבר 2011,‏ W3C העביר את HTML5 למצב "מועמד להמלצה".[26]

ב-28 באוקטובר 2014,‏ HTML5 שוחרר כמומלץ ספוית על ידי W3C, ומשמעו שתהליך העבודה על התקינה הושלם.[27]

תוכניות לעתיד

בספטמבר 2012, ה-W3C הציעו תוכנית[28] לשחרר המלצה סופית על HTML5 עד סוף 2014 (ההמלצה שוחררה באוקטובר), והמלצה סופית על התקן של HTML 5.1 עד סוף 2016.

תקינת HTML מרכזית

אלו הם הזמנים עבור HTML 5.0, HTML 5.1 ו-HTML 5.2:

20122013201420152016
HTML 5.0מועמד להמלצהקריאה לסקירההמלצה
HTML 5.1טיוטת עבודה ראשונהקריאה אחרונהמועמד להמלצההמלצה
HTML 5.2[28]טיוטת עבודה ראשונה
תכולות ו-API

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

  • HTML Working Group – HTML Canvas 2D Context
  • Web Apps WG – Web Messaging, Web Workers, Web Storage, WebSocket API, Server-Sent Events
  • IETF HyBi WG – WebSocket Protocol
  • WebRTC WG – WebRTC
  • W3C Web Media Text Tracks CG – WebVTT

אחרי קבלתו של HTML5 כתקן באוקטובר 2014,[29] תכולות הליבה מורחבות בארבע דרכים.[30] חלקים מסוימים מתקינת ה-HTML5 המקורית מתוקננים בנפרד כמודולים (APIים) כמו Microdata ו-Canvas. תקינות שהוצגו כתוספות ל-HTML5 כמו סימון רב לשוני (Polyglot Markup) עוברים הליך תיקנון בנפרד כמודולים. חלק מהתקנים של W3C שבמקור הופרדו, מוחזרים ל-HTML5 כתוספות או תכולות, לדוגמה, SVG. התכולות שיאטו את התיקנון של HTML5 יעברו הליך תקינה בנפרד ב-HTML 5.1 או ב-HTML 5.2. העבודה על HTML 5.1 אמורה להסתיים ב-2016, והיא כרגע נמצאת במסלול התיקנון של W3C.

תכולות

תגיות

HTML5 מאפשרת תכונות ואלמנטים חדשים שמשקפים את השימוש באתרים עכשוויים. חלק מהם מהווים החלפה סמנטית לאלמנטים שמאגדים תוכן בבלוק (<div>) או בשורה (<span>), באלמנטים סמנטיים יותר, כמו <nav> (בלוק לניווט באתר), <footer> (בדרך-כלל נפוץ בתחתית האתר או בשורות האחרונות של קוד ה-HTML) או <audio> ו-<video> במקום <object>.[31][32][33]חלק מהאלמנטים שהוצאו משימוש ב-HTML 4.01 ננטשו, כולל אלמנטים הקשורים בתצוגה בלבד, כמו <font>, <center>, שיכולותיהם כבר מזמן הוחלפו מזמן על ידי CSS, שהוא בעל יכולות עשירות יותר. ישנה גם שימת דגש מחודשת על החשיבות של DOM scripting (לדוגמה, JavaScript) ברשת האינטרנט.

התחביר של HTML5 כבר לא מבוסס על SGML‏[34][35] אף על פי הדמיון בצורת הסימון. למרות זאת, HTML5 עוצב כך שתהיה תאימות לאחור בעיבוד הגרסאות הנפוצות הקודמות של HTML. השפה הציגה שורת פתיחה חדשה הדומה ל-הצהרת סוג המסמך של SGML,‏ <!DOCTYPE HTML>, שמפעילה מצב העיבוד שתואם לתקן.[36] מאז 5 בינואר 2009, HTML5 מכיל גם את Web Forms 2.0, תקינה שהייתה בעבר תקינה נפרדת של WHATWG.[37][38]

API חדש

ב-HTML5 נוספו ממשקי תכנות נתונים (API) שבהם ניתן להשתמש באמצעות JavaScript.[39] ממשקי Document Object Model‏ (DOM) קיימים מורחבים ומתועדים. ישנם גם API נוספים חדשים:

APIs של HTML5[40]
  • אלמנט ה-Canvas עבור ציור בדו-מימד במצב מיידי, שנמצא תחת Canvas 2D API Specification 1.0.[41]
  • השמעת מדיה מתוזמנת[42]
  • יישומי רשת לא מקוונים[43]
  • עריכת מסמכים[44]
  • גרור ושחרר[45]
  • Cross-document messaging[46]
  • ניהול היסטוריית הדפדפן[47]
  • MIME type ורישום פרוטוקולים[48][49]
  • Microdata[50]
  • Web Storage, תשתית אחסון בצורת צמד של מפתח-לערך המספקת התנהגות דומה לעוגיות אך עם שטח אחסון גדול יותר ו-API משופר.[51]

לא כל הטכנולוגיות שהופיעו מעלה נכללות בתקן HTML5 של W3C, אלא שחלקן נכללות בתקן ה-HTML של WHATWG.[52] טכנולוגיות דומות שאינן חלק מתקן ה-HTML5 של W3C וגם אינן חלק מתקן ה-HTML של WHATWG מופיעות להלן. ה-W3C מפרסם את התקנים האלו בנפרד:

  • גאולוקיישן באמצעות API מתאים של W3C.
  • Web SQL Database, מסד נתונים המופעל באמצעות SQL (כבר לא מתוחזק).[53]
  • Indexed Database API, אחסון היררכי מאונדקס המאחסן נתונים בצורת מפתח-לערך (בעבר נקרא WebSimpleDB).[54]
  • HTML5 File API,[55] שמטפל בהעלאת קבצים ובשינוי קבצים.[56]
  • קבצים ומערכת, API שנועד לספק אחסון בצד לקוח במקרים שבהם מסדי נתונים לא מתאימים לצורך.[57]
  • כותבי קבצים, API לכתיבת קבצים מתוך יישומי רשת.[58]
  • Web Audio API,[59]‏ API עילי ב-JavaScript לעיבוד וניתוח קול דרך יישומי רשת.
  • ClassList API‏[60]

HTML5 לא יכול לספק הנפשה של דפי אינטרנט, ונדרשות תכונות נוספות של CSS3 ושל JavaScript כדי להנפיש אלמנטים של HTML. ניתן לעשות הנפשה גם באמצעות JavaScript ו-HTML 4‏,[61] ובאמצעות אלמנטים של SVG דרך SMIL.

XHTML5

מסמכי XML חייבים להיות מוגשים תחת סוג מדיה (לעיתים נקרא גם "MIME Type") של XML, כמו application/xhtml+xml או application/xml,[62] וחייבים לציית לתחביר המדויק והנוקשה של XML.‏ XHTML5 הוא בעקרון מידע שנכתב כ-HTML5, מיוצג בצורת XML (לדוגמה, ללא תגיות לא סגורות) ונשלח עם אחד מסוגי המדיה של XML.‏ HTML שנכתב כך שיתאים גם עבור תקן ה-HTML וגם עבור תקן ה-XML, וכזה שעיבוד שלו יצור את אותו עץ DOM בין אם נקרא בצורת HTML ובין אם נקרא בצורת XML, מכונה סימון רב לשוני ("Polyglot markup").‏[63]

טיפול בשגיאות

HTML5 עוצב כך שדפדפנים ישנים יוכלו להתעלם בבטחה מהמבנה החדש של HTML5.‏[3] בניגוד ל-HTML 4.01, התקן של HTML5 נותן מידע מפורט באשר לביצוע העיבוד הלשוני, מתוך כוונה שדפדפנים שונים ייצרו את אותה התוצאה במקרה של תחביר שגוי.[64] אף על פי שמוגדרת כיום התנהגות אחידה גם במקרים של מסמכים שכתובים באופן שגוי, מסמכים אלו עדיין לא ייחשבו כעומדים בתקן של HTML5.[64]

פופולריות

לפי דו"ח מ-30 בספטמבר 2011, 34 מתוך 100 האתרים הגדולים ביותר בעולם משתמשים ב-HTML5. אימוץ התקן הונע בעיקר על ידי מנועי חיפוש ורשתות חברתיות.[65] דו"ח אחר שפורסם באוגוסט 2013 מראה ש-153 מתוך 500 החברות המובילות בדירוג החברות של כתב העת Fortune בארצות הברית מימשו את אתר החברה שלהן בעזרת HTML5.[66]

שוני מ-HTML 4.01 ומ-XHTML 1.x

הרשימה הבאה היא רשימה חלקית של הבדלים ודוגמאות ספציפיות:

  • חוקי ניתוח חדשים: תוך ניסיון ליצירת ניתוח גמיש ותאימות; לא מבוסס על SGML
  • יכולת להשתמש ב-SVG ו-MathML ב-text/html
  • אלמנטים חדשים של HTML:‏ <article>, <aside>, <audio>, <bdi>, <canvas>, <command>, <data>, <datalist>, <details>, <embed>, <figcaption>, <figure>, <footer>, <header>, <keygen>, <mark>, <meter>, <nav>, <output>, <progress>, <rp>, <rt>, <ruby>, <section>, <source>, <summary>, <time>, <track>, <video>, <wbr>
  • אפשרויות חדשות בניהול טפסים: תאריכים וזמנים, דואר אלקטרוני, כתובות אינטרנטיות, חיפוש, מספר, טווח, טלפון וצבע[67]
  • תכונות חדשות: charset (תחת meta),‏ async (תחת script)
  • תכונות כלליות: id, tabindex, hidden וכן data-* (תכונות מותאמות אישית)
  • אלמנטים ישנים שיצאו מהשפה: <acronym>, <applet>, <basefont>, <big>, <center>, <dir>, <font>, <frame>, <frameset>, <isindex>, <noframes>, <strike>, <tt>

dev.w3.org מספקים את 'טיוטת העורכים' המעודכנת ביותר באשר של "ההבדלים בין HTML5 ל-HTML 4",‏[68] המספק את קווי המתאר המלאים של תוספות, הסרות ושינויים בין HTML5 לבין HTML 4.

לוגו

לוגו ה-HTML5 של W3C

ב-18 בינואר 2011, ה-W3C הציגו לוגו כדי לייצג את השימוש ואת ההתעניינות ב-HTML5. בניגוד לסמלים אחרים שהופקו בעבר על ידי W3C, הלוגו לא הדגיש את התקינות או את התאימות לתקן מסוים. ב-1 באפריל 2011, הלוגו הפך להיות רשמי.[69]

בפעם הראשונה שהוצג הלוגו לציבור, הצהירו ה-W3C על הלוגו ל-HTML5 שהוא "זהות ויזואלית לצרכים כלליים, עבור מגוון טכנולוגיות אינטרנט, כולל HTML5, גיליונות סגנון מדורגים, SVG, WOFF, ואחרות."[70] חלק מהגופים התומכים בבניית התקן, כולל The Web Standards Project, ביקרו את ההגדרה של HTML5 כמושג שמכליל בתוכו טכנולוגיות רבות, וציינו את הטשטוש במינוח ואת הסיכוי ששימוש במינוח כזה מחזק תפיסות מוטעות.[70] לאחר שלושה ימים, W3C הגיבו למישוב של הקהילה ושינו את הגדרת הלוגו, כשהם משמיטים את השמות של הטכנולוגיות הקשורות.[71] ה-W3C ציינו שהלוגו "מייצג את HTML5, אבן הפינה של יישומי הרשת המודרניים".[69]

ניהול זכויות דיגיטליות

נגנים תעשייתיים, הכוללים את אלו של BBC, גוגל, מיקרוסופט ו-נטפליקס שידלו להכליל תוספי מדיה מוצפנים (EME),[72][73][74][75][76] סוג של ניהול זכויות דיגיטלי (DRM), לתוך תקן ה-HTML5. בסוף שנת 2012 ובתחילת שנת 2013, ארגונים[77] כולל המוסד לתוכנה חופשית[78] התחילו קמפיין נגד הכללת ניהול זכויות דיגיטלי בתקן של HTML5.[79][80] למרות זאת, בסוף ספטמבר 2013, קבוצת העבודה על HTML של W3C החליטה שתוספי מדיה מוצפנים נמצאים ב"תחום העבודה" ושייתכן שיכללו בתקן של HTML 5.1.[81][82] "התקן החי" של WHATWG המשיך בהליך הפיתוח ללא הצעות לפיתוח תכולות של DRM.[82]

מנו ספורני, חבר ב-W3C, אמר שה-EME לא יפתור את הבעיות אותן הוא מתכוון לפתור.[83]המתנגדים טענו שה-EME עצמו הוא רק ארכיטקטורה למנגנון שמאפשר תוספות DRM.[84]

הראשונים שאיפשרו להשתמש ב-DRM ב-HTML5 הם גוגל[85] ומיקרוסופט.[86] בין התומכים היה אפשר למנות את חברת Adobe.[87] ב-14 במאי 2014, Mozilla הצהירו שהם מתכננים לתמוך ב-EME בתוכנת הדפדפן שלהם, Firefox. הם טענו שזה "צעד קשה ולא נוח",[88][89] ואנדרס גל ממוזילה הסביר שהגרסאות העתידיות של פיירפוקס יישארו בקוד פתוח, אך יופצו בתוך ארגז חול שיפענח תוכן באמצעות הרחבה שפותחה על ידי Adobe.[88] אף על פי שהבטיח "לעבוד על פתרונות חלופיים", מישל בקר הצהיר שסירוב מצד Mozilla לממש EME עבור הדפדפן שלהם לא ישיג הרבה יותר מאשר שכנוע של הרבה אנשים להחליף דפדפן.[89] החלטה זו גונתה על ידי קורי דוקטורוב ועל ידי המוסד לתוכנה חופשית.[90][91]

קישורים חיצוניים

מדיה וקבצים בנושא HTML5 בוויקישיתוף

הערות שוליים