Język HTML 5

Nowy standard - w budowie

HTML 5 jest tworzony jako nowa wersja języka znaczników, która docelowo zastąpi zarówno HTML 4.01 jak i XHTML 1.0 (1.1). Pomimo wielu różnic w stosunku do tych wersji, w specyfikacji HTML 5 przyjęto założenie wstecznej kompatybilności - zarówno z istniejącymi przeglądarkami, jak i istniejącymi zasobami. Zostało to osiągnięte przez zdefiniowanie osobnych wymagań zgodności dla autorów i dla przeglądarek. Autorzy nowych dokumentów otrzymują język wzbogacony o nowe elementy i możliwości, a jednocześnie pozbawiony niepożądanych zasobów naruszających semantykę dokumentu (głównie tych, jakie były dostępne w wersjach Transitional HTML 4.01 i XHTML 1.0). Jednocześnie zaleca się stosowanie (w miarę możliwości) nowych elementów w taki sposób, który nie powoduje nadmiernej degradacji zawartości dokumentu w starszych wersjach przeglądarek (zasada gracefully degradation). Dokumenty tworzone bez użycia nowych elementów są w pełni zgodne z możliwościami starszych przeglądarek. Twórców nowych wersji przeglądarek specyfikacja zobowiązuje do implementowania nowych zasobów języka i precyzyjnie definiuje sposób interpretacji wszystkich elementów HTML 5, a jednocześnie wymaga wspierania także i tych przestarzałych rozwiązań (deprecated w HTML 4,01 i XHTML 1.0), po prostu dlatego że są zastosowane w wielkiej ilości już istniejących dokumentów.

Inicjatywę opracowania nowej specyfikacji języka podjęła w 2004 roku organizacja WHATWG (Web Hypertext Application Technology Working Group), założona przez Apple Computer, Mozilla Foundation i Opera Software. Specyfikacja, nazwana Web Applications 1.0 jest w dalszym ciągu rozwijana, ale jej podstawowa część, jaką jest HTML 5, od roku 2007 jest opracowywana przez Grupę Roboczą HTML WWW Consortium (W3C HTML Working Group), we współpracy z WHATWG. Specyfikacja HTML 5 jest jeszcze daleka od ostatecznej postaci rekomendacji W3C, obecnie istnieje jako szkic roboczy (W3C Working Draft). Jest on dość często publikowany w nowej wersji, gdyż prace nad specyfikacją postępują stosunkowo szybko. W pracach Grupy Roboczej HTML biorą udział przedstawiciele praktycznie wszystkich firm i organizacji związanych ze środowiskiem WWW, w tym większość dostawców przeglądarek. W efekcie, pomimo tymczasowego charakteru specyfikacji, sporo zasobów HTML 5 zostało już zaimplementowanych w nowych wersjach najbardziej popularnych przeglądarek, więc standard HTML 5 w dość dużym zakresie może być praktycznie stosowany.

Warto pamiętać że HTML 5 docelowo ma zastąpić HTML 4.01, ale nie oznacza to wcale rezygnacji z właściwości i zalet języka XHTML 1.0. Specyfikacja HTML 5 definiuje uniwersalny słownik zasobów języka, który może zostać praktycznie wykorzystany w dwu postaciach różniących się składniowo (specyfikacja mówi o dwu rodzajach serializacji dokumentów). Dokument HTML 5 może być zapisany ze składnią HTML - w sposób podobny jak w HTML 4.01 (gdzie formalnie stosowana była składnia SGML), lub ze składnią XML, czyli musi być poprawnym składniowo dokumentem XML (jak XHTML 1.0). W tym drugi przypadku używa się też nazwy XHTML 5. Dokument HTML 5 serializowany jako HTML ma typ zawartości MIME text/html. Dokument serializowany jako XML musi mieć typ zawartości application/xhtml+xml lub application/xml.

Nowe elementy w języku HTML 5

Przeglądnij dokumenty, które w różny sposób charakteryzują powstającą specyfikację HTML 5, zasoby tego języka i możliwości jego wykorzystania. Niektóre artykuły nie są najnowsze, więc czasami zdarzają się informacje niezbyt aktualne gdyż specyfikacja ciągle się zmienia, chociaż w dużej części jest już stabilna. Ostatni jej stan jest zawsze zawarty w oficjalnym dokumencie HTML 5 - W3C Working Draft. W serwisie W3Schools bardzo przejrzyście przedstawiono zestawienia elementów HTML 5, standardowych atrybutów, oraz atrybutów zdarzeń.

Przykładowe pliki ilustrują możliwości wykorzystania kilku nowych elementów języka HTML 5. Sprawdź funkcjonowanie kolejnych przykładów. Przeanalizuj ich teksty źródłowe, wykorzystaj możliwości Firebuga do badania struktury dokumentów. W miarę możliwości przetestuj przykłady w przeglądarkach innych niż Firefox (Internet Explorer, Opera, Safari, Google Chrome). Pobierz Pliki Cw5 i w przykładowych dokumentach wprowadzaj dowolne modyfikacje i obserwuj rezultaty. Jeśli dokument jest kompletny, można sprawdzać jego poprawność przy pomocy walidatora HTML 5 (link (X)HTML5 Validator). Można to zrobić również (najwygodniej - z opcji Web Developera) przy pomocy walidatora W3C, który także potrafi sprawdzać dokumenty HTML 5.

Na razie trzeba ciągle brać pod uwagę możliwe zmiany w specyfikacji języka. Przykładem mogą tu być dokumenty test21.html oraz test22.html. W pierwszym zastosowano element <legend> zagłębiony w elemencie <figure>. Taka konstrukcja była przez dłuższy czas przewidziana w specyfikacji HTML 5 i Firefox interpretował to zgodnie z takim zamierzeniem, ale walidator zgłosi błąd związany z nieprawidłowym kontekstem elementu <legend>, ponieważ w wersji specyfikacji opublikowanej 4 marca 2010 nastapiła zmiana. Element <legend> może być tylko pierwszym elementem potomnym elementu <fieldset> (np. w formularzu), natomiast dla <figure> zamiast <legend> powinien być stosowany element <figcaption>.

Zadanie 5

Dostępna tutaj jeszcze raz (omawiana w poprzednich ćwiczeniach - Lab1) strona wybrane.html jest dokumentem napisanym w języku HTML 4.01 Transitional. Należy przebudować tę stronę tak, aby stała się poprawnym dokumentem w języku HTML 5, wyglądającym w oknie przeglądarki w sposób podobny jak pierwowzór. Struktura dokumentu oparta na tabelach powinna zostać zastąpiona strukturą opartą na innych elementach dostępnych w języku HTML 5, ale fragment dokumentu prezentujący "nowości" (obrazki i opisy) należy zachować w postaci tabeli, przyjmując że jest to prezentacja danych (bo jest!). Należy dążyć do tego, żeby tabela ta była zbudowana wyłącznie z "czystych" elementów (<table>, <tr>, itd.) bez atrybutów. Trzeba także zaprojektować możliwie optymalny arkusz stylów CSS. Element dźwiękowy należy osadzić na stronie w sposób właściwy dla HTML 5 (<audio>), wykorzystując dostępny tutaj plik Muse-Uprising.ogg.