HTML5

czwartek, 24 stycznia 2008

Oficjalnie, wg W3C, HTML4 miał być ostatnią wersją standardu opartego o język SGML. W przyszłości miał zostać zastąpiony językiem XHTML opracowanym na bazie XML. Pierwsza wersja XHTML była z założenia prawie identyczna z HTML, natomiast druga miała być nieomal nowym językiem.

Niestety, XHTML 2.0 spotkał się z krytyką ze strony projektantów przeglądarek internetowych. Nowe cechy języka wymagały poważnych zmian w oprogramowaniu, bez których wyświetlenie dokumentu mogło być niemożliwe. W ciągu lat zmieniły się również wymagania stawiane językowi HTML/XHTML. Dotychczasowe standardy koncentrowały się na opisie dokumentu tekstowego, podczas gdy strony internetowe stawały się coraz częściej interfejsem do zaawansowanych aplikacji.

W efekcie w ramach WHATWG rozpoczęto prace nad HTML5. Nowy projekt miał odmienne założenia, duży nacisk położono na ewolucyjny rozwój standardu, wsteczną zgodność i co najważniejsze, na lepsze wsparcie istniejących zastosowań . Bardzo ważne było też to, że od samego początku dokument opisujący nowy standard był publicznie dostępny i każdy mógł mieć wpływ na jego wygląd,

Niepokój budziły obawy o rozłam, jednak nie potrzebnie. Pomimo odmiennych założeń i wynikających z tego dyskusji wszystkim stronom przyświecał ten sam cel - stworzenie jednolitych standardów.

Kilka dni temu na stronach W3 pojawił się pierwszy szkic nowego standardu HTML5 opracowywanego przez WHATWG:
http://www.w3.org/TR/html5/

Osobom które znają standardy, lecz nie miały wcześniej do czynienia z pracami WHATWG, polecam drugi odnośnik, opisujący zmiany względem wcześniejszych standardów:
http://www.w3.org/TR/2008/WD-html5-diff-20080122/

.. oraz założenia projektowe:
http://www.w3.org/TR/html-design-principles/

Prościej

Oto przykładowy poprawny dokument HTML5:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Example document</title>
  </head>
  <body>
    <p>Example paragraph</p>
  </body>
</html>

Uwagę zwracają krótsze nagłówki, sekcja doctype zamiast dotychczasowych 90 znaków (w przypadku html strict) zawiera tylko jeden wyraz. Również kodowanie strony zostało określone w prosty i łatwy do zapamiętania sposób. Edycja dokumentów HTML zazwyczaj oznaczała konieczność kopiowania "magicznych" sekwencji znaków, nowy standard wreszcie kończy z tą nieszczęsną praktyką.

Brak DTD w sekcji doctype ma bardzo poważne konsekwencje: Dokument HTML5, nie jest dokumentem SGML. Sekcja ta istnieje wyłącznie, aby wymusić na przeglądarkach wyświetlanie dokumentu w trybie zgodności ze standardami.

Warto także pamiętać że specyfikacja wspomina o dwóch formatach zapisu dokumentu, określanych jako HTML5 i XHTML5. Ten drugi format, ma liczne zalety. Wykorzystując przestrzenie nazw, możliwe jest na przykład dodanie grafiki SVG wprost do dokumentu.

Czytelniej

Nowa specyfikacja kładzie większy nacisk na strukturę dokumentu. Dotychczas jego zawartość była zbiorem luźno powiązanych nagłówków i paragrafów. HTML5, wzorem formatu DocBook wprowadza pojęcie sekcji (section), spinającej razem logicznie powiązane elementy. Aby poprawić czytelność pojawiły się różne rodzaje sekcji takie jak article, header, footer, nav, aside itp. Oznacza to początek końca anonimowych elementów div. W przyszłości przeglądarka, oraz wyszukiwarka, będą w stanie z łatwością odróżnić treść dokumentu od menu nawigacyjnych, oraz wszelkich ozdobników, które obecnie wypełniają strony z najróżniejszych powodów.

Przeglądarki Safari i Opera prawidłowo rozpoznają i wyświetlają nowe typy węzłów już teraz.

Na dziś w przeglądarce Firefox sekcji można używać wyłącznie gdy korzystamy XHTML. W przypadku dokumentu typu text/html, parser automatycznie zamyka nieznane węzły po napotkaniu elementów blokowych. Przyczyną takiego zachowania jest składnia HTML, która dopuszcza pominięcie znacznika zamykającego w niektórych przypadkach, na przykład dla paragrafu.

Internet Explorer bez zastosowania karkołomnych sztuczek, nie pozwala na przypisanie stylu nie znanym typom węzłów.

Z myślą o aplikacjach

Dotychczas specyfikacja HTML obejmowała wyłącznie strukturę dokumentu. HTML5 jest pierwszą, która koncentruje się na aplikacjach działających na przeglądarce.

Aby ułatwić modyfikowanie dokumentów, wprowadzono do standardu nową właściwość innerHTML, znaną z przeglądarki Internet Explorer i używaną powszechnie przez wszystkich już od pewnego czasu.

Ponieważ współczesne aplikacje webowe daleko wykraczają poza funkcjonalność prostych formularzy, wprowadzono możliwość edycji dowolnego elementu strony, poprzez zastosowanie atrybutu contentEditable. Dzięki temu mechanizmowi zbudowanie aplikacji zdolnej do edycji złożonych dokumentów staje się względnie prostym zadaniem.

Wprowadzony został element canvas, który po raz pierwszy pojawił się w przeglądarce Safari, oraz API umożliwiające tworzenie grafiki 2D, a w przyszłości prawdopodobnie również 3D.

Rozbudowano obsługę zdarzeń o obsługę technik takich jak Drag&Drop. Daje to szansę na budowę aplikacji, które nie różnią się funkcjonalnością od ich biurkowych odpowiedników.

Dzisiejsze aplikacje korzystające z modelu Ajax, często mają problemy z przyciskiem wstecz. Dotychczasowe rozwiązania problemu były dalekie od doskonałości i nie działały na wszystkich przeglądarkach. Nowa specyfikacja, rozszerza obsługę historii przeglądarki, pozwalając aplikacjom na zapisywanie ich stanu wewnątrz obiektu history. Dzięki temu przycisk wstecz przestaje być kłopotliwą niedogodnością.

Jednym ze sposobów na poprawę responsywności aplikacji jest przechowywanie istotnych informacji w przeglądarce i ograniczenie komunikacji do minimum. Obiekty sessionStorage i globalStorage, służą do przechowywania informacji, na zasadzie klucz/wartość. Ponieważ w przypadku bardziej zaawansowanej aplikacji, takie rozwiązanie może być niewystarczające, podążając za rozwiązaniem zaproponowanym przez Google (Google Gears), wprowadzono API umożliwiające korzystanie z baz danych i języka SQL.

Wspomniane techniki, umożliwiają tworzenie aplikacji działających bez połączenia z serwerem. W tym celu rozszerzono model zdarzeń o powiadamianie o przejściu do stanu offline. Wraz z możliwością kontroli cache przeglądarki, otwiera to drogę ku zupełnie nowej metodzie dystrybucji oprogramowania.

Do niedawna możliwości komunikacji aplikacji webowych były ograniczone do serwera z których pochodziły. Wygląda na to że ma się to zmienić. Specyfikacja zawiera niedokończony opis API pozwalającego na komunikację sieciową, uwzględniając nawet komunikację P2P.

.. i multimediach

Wprowadzono nowe elementy takie jak video i audio. Dzięki czemu możliwe stanie się odtwarzanie materiałów multimedialnych bez konieczności instalowania dodatkowych plug'inów.

Kiedy?

Jak wspomniałem na początku, HTML5 jest odpowiedzią na potrzeby rynku. Oznacza to że nie trzeba czekać latami na jego implementację. Wiele elementów standardu pojawiło się początkowo jako API specyficzne dla konkretnej przeglądarki, następnie zostało zaadaptowane przez konkurencję. Poligonem doświadczalnym są tu testowe wydania powszechnie znanych programów takich jak Mozilla Firefox, Opera czy Safari. Nowy standard odzwierciedla możliwości tych programów, a także potrzeby twórców stron i aplikacji webowych.

Znajdujący się na stronach WHATWG opis zawiera informacje o stanie implementacji danego rozwiązania w poszczególnych przeglądarkach.

Etykiety:

Red 11:07

Komentarze

Prześlij komentarz

Archiwum

Subskrybuj

RSS / Atom