HTML5język znaczników wykorzystywany do tworzenia i prezentowania stron internetowych www. Jest rozwinięciem języka HTML 4 i jego XML-owej odmiany (XHTML 1), opracowywane w ramach prac grupy roboczej WHATWG (Web Hypertext Application Technology Working Group) i W3C[1].

HTML 5
Ikona formatu
ilustracja
Rozszerzenia pliku

.html, .htm

Typ MIME

text/html

Producent

W3C oraz WHATWG

Ostatnia wersja

1.4938

Typ

język znaczników

Strona internetowa

Jest to konkurencyjna specyfikacja w stosunku do specyfikacji XHTML 2[2], której rozwój został porzucony 2 lipca 2009 roku – wsparcie wszystkich środowisk i producentów przeglądarek ukierunkowane jest na HTML 5[3]. Nazwę można zapisywać jako HTML 5 – jako wersję lub HTML5 – jako nazwę. Prace nad specyfikacją zostały ukończone w 2014 roku – 28 października standard został oficjalnie wydany jako rekomendacja W3C[4]. Dwa lata później – 1 listopada 2016 roku – została wydana wersja HTML 5.1 jako oficjalna rekomendacja W3C[5]. Został wówczas także zaprezentowany szkic standardu HTML 5.2[6][7].

Główna różnica pomiędzy HTML 5 a XHTML 2 polega na tym, że HTML 5 jest pisane z myślą o kompatybilności wstecznej, podczas gdy XHTML 2 zrywało z kompatybilnością.

HTML5 poza dodaniem nowych elementów, usprawniających tworzenie serwisów i aplikacji internetowych, doprecyzowuje wiele niejasności w specyfikacji HTML 4, dotyczących przede wszystkim sposobu obsługi błędów. Niejasności co do sposobu, w jaki przeglądarki powinny obsługiwać błędy w kodzie HTML są jedną z podstawowych przyczyn, dla której wiele serwisów internetowych, napisanych z naruszeniem specyfikacji, w różnych przeglądarkach działa w inny sposób – w niektórych działając, w innych nie. Dzięki HTML-owi 5 obsługa błędów ma być ta sama we wszystkich przeglądarkach, czyli zły element będzie działać w każdej przeglądarce albo żadnej.

HTML5 także stawia na semantykę. Element <div> traci na znaczeniu na rzecz <header> <main> <article> <aside> <footer> <nav>, a dodane zostają m.in. <canvas> <figure> <details> <summary>. Element <span> ma być mniej używany na rzecz <mark> <output> <var> <u> <s> (ostatnie dwa znaczniki były w HTML4 przestarzałe – deprecated).

Grupa pracująca nad HTML5 przyjęła inny sposób myślenia. Na przykład podkreślenie i przekreślenie podczas tworzenia HTML 4 uznano za elementy czysto prezentacyjne i przestarzałe – miały zostać usunięte w HTML5. Nawet kursywę i pogrubienie często próbowano zastąpić emfazą. W myśl tego nowe znaczniki liniowe nie powinny powstać. Gdyby sposób myślenia W3C się nie zmienił, nie powstałoby też kilka innych znaczników np. <progress>

HTML5 wysyłany jako XML to XHTML5.

Niektóre różnice w stosunku do HTML 4 edytuj

  • Nowe tagi: section, article, header, footer, nav, main, aside, video, audio, mark, progress, ...
  • Nowe typy pól "input": tel, search, url, email, datetime, date, month, week, time, datetime-local, number, range, color.
  • Nowe atrybuty elementów formularzy: autofocus, required, autocomplete, min, max, multiple, pattern, step, ...
  • W poprzednich wersjach HTML, tag <meta> nie miał atrybutu charset, który definiuje standardowe kodowanie znaków dla strony internetowej. Ten atrybut został dodany w HTML5.
  • Możliwość osadzenia MathML i SVG bezpośrednio w dokumencie, zupełnie jak w XHTML
  • HTML 5 nie zawiera żadnych elementów prezentacyjnych
  • HTML 5 nie jest podzielone na żadne tryby – nie ma elementów przestarzałych.

Nowości w API edytuj

W3C zaproponowało większy nacisk na modułowość, określając specyficzne cechy oraz rozwój ich jako oddzielnych specyfikacji. Niektóre technologie, które zostały pierwotnie zdefiniowane w samym HTML5 są obecnie określone w odrębnych specyfikacjach:

  • Rysowanie 2D z nowym elementem canvas,
  • WebGL (port OpenGL dla przeglądarek),
  • API dla odtwarzania audio i video,
  • API dla aplikacji offline,
  • API, pozwalające zarejestrować aplikację WEB jako protokół lub media_type,
  • API edycji z atrybutem contenteditable,
  • API przeciągnij i upuść, z atrybutem draggable,
  • API do obsługi przycisku wstecz (History API),
  • API pamięci (storage) pozwalające na przechowywanie danych pomiędzy przeładowaniami strony[8],
  • Microdata – przechowywanie danych w atrybutach (prefix: data-),
  • Geolokalizacja,
  • Web Sockets (dwukierunkowa komunikacja z serwerem),
  • Komunikacja między stronami (np. można wysyłać informację do strony znajdującej się w ramce).
  • Nowa wersja XMLHttpRequest umożliwiająca upload plików oraz monitorowanie postępu
  • File API – dostęp do systemu plików po stronie klienta
  • Baza danych SQL

Niektóre specyfikacje, które zostały pierwotnie opracowane zostały dostosowane jako rozszerzenie funkcji HTML5: SVG, MathML, WAI-ARIA.

Nowe metody DOM edytuj

  • getElementsByClassName
  • activeElement, hasFocus
  • getSelection
  • classList (wrapper dla className) z metodami: has(), add(), remove(), toggle()
  • relList dla elementu a
  • innerHTML dla window i document

Obsługa błędów edytuj

Przeglądarki obsługujące HTML5 będą dostosowane do obsługi błędów w składni. HTML5 został zaprojektowany tak, by starsze przeglądarki bez problemu mogły ignorować nowe konstrukcje. W przeciwieństwie do starszego HTML 4.01 specyfikacja tej wersji zawiera szczegółowe instrukcje jak postępować z niepoprawną składnią, przez co strony z błędami będą wyświetlane w ten sam sposób w różnych przeglądarkach.

Historia edytuj

Grupa robocza WHATWG rozpoczęła pracę nad nowym standardem w 2004 roku, jednocześnie HTML 4.01 nie było aktualizowane od 2000 roku. World Wide Web Consortium (W3C) koncentrowało się na przyszłych zmianach w XHTML 2.0. W 2009 roku W3C postanowiło, że XHTML 2.0 nie będzie już rozwijane. W3C oraz WHATWG obecnie pracują wspólnie nad rozwojem HTML5[9].

HTML5 jest często porównywany do Adobe Flash, jednak te dwie technologie są bardzo różne. Obie zawierają funkcje służące do odtwarzania plików audio i wideo na stronach internetowych, oraz stosują grafikę wektorową w formacie SVG. HTML5 sam nie może być jednak używany do animacji i interaktywności – musi być uzupełniony o CSS3 oraz JavaScript.

Mimo że HTML5 jest dobrze znany wśród programistów od lat, stał się tematem mediów głównego nurtu od około kwietnia 2010 roku[10][11][12] po tym, jak Steve Jobs, ówczesny CEO firmy Apple wystosował list publiczny zatytułowany „Rozważania na temat Flash’a”, w którym stwierdził, że „Flash nie jest już konieczny, aby obejrzeć film lub wyświetlać jakiekolwiek treści w internecie” oraz że „nowe, otwarte standardy stworzone w dobie urządzeń przenośnych, takich jak HTML5, wygrają”[13]. Wywołało to debatę w kręgach związanych z rozwojem sieci web. Niektórzy sugerowali, że deweloperzy muszą brać pod uwagę zmieniającą się obsługę przeglądarek, jak również inne różnice między HTML5 i Flash[14]. Na początku listopada 2011 roku Adobe ogłosiło, że zaprzestanie rozwoju Flasha dla urządzeń mobilnych oraz skupi swoje wysiłki w rozwijaniu narzędzi wykorzystujących HTML5[15].

Proces normalizacji edytuj

[1]Fundacja Mozilla i Opera Software przedstawiła swoje stanowisko na warsztatach W3C w czerwcu 2004 roku[16], koncentrując się na rozwoju technologii, które są kompatybilne wstecz z istniejącymi przeglądarkami[17]. Warsztat zakończył się głosowaniem: 8 za, 14 przeciw kontynuowaniu prac nad HTML[18]. W tym samym miesiącu praca oparta na tym stanowisku została przeniesiona do nowo utworzonej grupy roboczej WHATWG, a drugi projekt, Web 1.0, został również ogłoszony[19]. Obie specyfikacje zostały później połączone w HTML5[20]. Specyfikacja HTML5 została przyjęta jako punkt wyjścia do pracy z nowym HTML w 2007 roku.

Rok 2008 – Pierwszy publiczny projekt roboczy edytuj

WHATWG opublikował pierwszy projekt roboczy 22 stycznia 2008 roku[21]. Niektóre elementy HTML5 zostały zaimplementowane w przeglądarkach pomimo nieukończenia projektu.

Rok 2012 edytuj

W lipcu 2012 WHATWG oraz W3C zdecydowały się na separację. W3C kontynuowało prace nad specyfikacją HTML5, skupiając się na jednym, ostatecznym standardzie. Organizacja WHATWG kontynuowała pracę z HTML5 udoskonalając ciągle funkcje. Nowe funkcje mogły być dodawane, ale nie mogły zostać usunięte[22].

We wrześniu 2012 W3C zaproponowało[23], aby wypuścić stabilną wersję HTML5 do końca 2014 roku, oraz specyfikację HTML 5.1 do końca 2016 roku.

Rok 2014 edytuj

28 października 2014 r. specyfikacja HTML5 osiągnęła status rekomendacji W3C[4].

Nowe typy znaczników edytuj

Canvas edytuj

Osobny artykuł: HTML5 Canvas.

Canvas jest elementem HTML, który może być użyty do rysowania grafik przy użyciu skryptów (zazwyczaj JavaScript). Na przykład może być użyty do rysowania wykresów, tworzenia kompozycji fotografii lub do animacji.

Po raz pierwszy znacznik <canvas> został przedstawiony przez Apple dla Mac OS X Dashboard i później zaimplementowany w Safari. Przeglądarki oparte na silniku Gecko począwszy od wersji 1.8 (tj. Firefox 1.5 oraz późniejsze) obsługują ten nowy element. Jest również wspierany przez Operę oraz Internet Explorera 9.

Audio i wideo edytuj

Osobny artykuł: Audio i Video API.

Znaczniki <audio> i <video> dają możliwość odtwarzania na stronie dźwięku i klipów wideo bez użycia dodatkowych wtyczek. Problem stanowi brak porozumienia producentów przeglądarek co do użycia tych samych kodeków w swoich produktach.

Przykład edytuj

<!DOCTYPE html>
<html style="font-family: Segoe UI;">
<head>
    <title>Dokument</title>
</head>
<body>
    <h1>Przykład</h1>
    <hr size="1" width="96%" align="center">
    Wikipedia: <a href=https://www.pl.wikipedia.org>kliknij tutaj</a>
</body>
</html>

edytuj

W dniu 18 stycznia 2011 W3C wprowadziło logo HTML5. W przeciwieństwie do innych odznak wydanych wcześniej przez W3C, nie oznacza ono ważności lub zgodności z określonym standardem. Od 1 kwietnia 2011 roku jest to logo oficjalne[24].

Odbiór edytuj

Raport "Popularność HTML5 wśród firm Fortune 500" opublikowany w sierpniu 2013 roku wskazuje, że 153 koncerny z listy Fortune 500 stosują na swoich stronach HTML5[25].

Przypisy edytuj

  1. a b W3C HTML Media Extensions Working Group, www.w3.org [dostęp 2017-11-23] (ang.).
  2. Faq – Whatwg Wiki. [dostęp 2007-07-13]. [zarchiwizowane z tego adresu (2007-08-21)].
  3. Faq – Whatwg Wiki. [dostęp 2007-07-13]. [zarchiwizowane z tego adresu (2007-08-21)].
  4. a b HTML5 is a W3C Recommendation. 2014-10-28. [dostęp 2014-10-28]. (ang.).
  5. HTML 5.1 becomes W3C Recommendation, www.w3.org [dostęp 2017-02-26] (ang.).
  6. "W3C: HTML5 zostanie ukończony w 2014 roku, 5.1 w 2016"
  7. Plan 2014. World Wide Web Consortium. [dostęp 2014-03-10]. (ang.).
  8. Demo, przykład wykorzystania sessionStorage oraz localStorage.
  9. Frequently Asked Questions about the future of XHTML. (ang.).
  10. No Flash on the iPhone? Apple's Steve Jobs Finally Explains Why. (ang.).
  11. Steve Jobs: ‘Flash is No Longer Necessary’ and Other Musings. (ang.).
  12. Steve Jobs: Adobe's Flash is old PC history, open web is the future. (ang.).
  13. Thoughts on Flash. [zarchiwizowane z tego adresu]. (ang.).
  14. Is HTML5 replacing Flash?. (ang.).
  15. Flash to Focus on PC Browsing and Mobile Apps; Adobe to More Aggressively Contribute to HTML5. [zarchiwizowane z tego adresu (2014-10-06)]. (ang.).
  16. Position Paper for the W3C Workshop on Web Applications and Compound Documents. (ang.).
  17. W3C Workshop on Web Applications and Compound Documents (Day 1) Jun 1, 2004. (ang.).
  18. W3C Workshop on Web Applications and Compound Documents (Day 2) Jun 2, 2004. (ang.).
  19. [whatwg WHAT open mailing list announcement]. (ang.).
  20. This Week in HTML 5 – Episode 5. (ang.).
  21. A vocabulary and associated APIs for HTML and XHTML. (ang.).
  22. A vocabulary and associated APIs for HTML and XHTML. (ang.).
  23. Plan 2014. (ang.).
  24. W3C HTML5 Logo FAQ. (ang.).
  25. "HTML5 Popularity Among Fortune 500 Companies". INCORE. Pobrano 11 września 2013.

Linki zewnętrzne edytuj