Przegląd możliwości języka HTML 5

W skrócie:
Internet jest stale rozwijany, każdego dnia widzimy tworzone nowe i coraz lepsze strony WWW, wykorzystujące możliwości HTML-a do granic możliwości. Język HTML 4 istnieje już niespełna dekadę i programiści poszukujący co raz to nowszych rozwiązań rozwoju Sieci, są blokowani przez ograniczenia języka oraz przeglądarek.

Aby dać twórcom stron większe pole manewru i możliwości, oraz uaktywnić bardziej interaktywne i pasjonujące strony internetowe oraz aplikacje – HTML 5 wprowadza i zwiększa tym samym możliwości pisania WWW.

Pracę nad piątą wersją HTML-a rozpoczęto w 2004 r. i na dzień dzisiejszy obecnie jest realizowany wspólnie przez W3C HTML WG oraz WHATWG. Wiele bardzo ważnych firm uczestniczy projektach w W3C (włączając w to przedstawicieli czterech głównych producentów przeglądarek: Microsoft, Mozillę, Operę i Apple) oraz wiele różnych organizacji i firm o różnym profilu działania.

Zauważyć jednak należy, że specyfikacja jest wciąż opracowywana i jeszcze długa droga przed do przebycia, aby ją ukończyć. Być może omówione za chwilę możliwości w tym artykule – będą mogły zostać zmienione. Artykuł ten stanowi krótkie wprowadzenie do istniejących głównych możliwości – takimi jakimi one są w bieżącym szkicu specyfikacji.

Struktura
HTML 5 wprowadza cały zestaw nowych elementów, które robią strukturę strony o wiele prostszą. Wiele stron w HTML 4 zawierają pospolitą strukturę (m.in. nagłówki, stopki i kolumny). Na dzień dzisiejszy zawieramy je w znacznik/elementy div wraz z nadanymi identyfikatorami (id) lub klasami (class).

structure-div.gif
Diagram ilustrujący typowy dwu kolumnowy układ strony przy użyciu znaczników div wraz z atrybutami id i class. Zawiera nagłówek, stopkę, poziomy pasek menu poniżej nagłówka. Głowna zawartość zawiera artykuł i pasek boczny po prawej stronie.

Użycie elementów div jest tak duże, ponieważ w bieżącej wersji HTML 4 jest brak niezbędnej i dokładnej semantyki dla opisu tych części. W języku HTML 5 zajęto się tym poprzez wprowadzenie nowych elementów, które reprezentują różne sekcje strony.

structure-html5.gif
Elementy div zostały zastąpione poprzez nowe elementy: header, nav, section, article, aside i footer.

Znaczniki strony powinny wyglądać podobnie jak w przykładzie poniżej:

<body>
  <header>...</header>
  <nav>...</nav>
  <article>
    <section>
      ...
    </section>
  </article>
  <aside>...</aside>
  <footer>...</footer>
</body>

Jest wiele korzyści z używania tych elementów. Kiedy używamy w połączeniu z elementami nagłówka (h1 do h6), wszystkie dostarczone w ten sposób znaczniki są zagnieżdżone na odpowiednim poziomie nagłówka, wyłączając sześć poziomów możliwych z poprzedniej wersji języka HTML. Specyfikacja zawiera szczegółowy algorytm do generowania zarysu, który uwzględnia strukturę tych elementów i nadal pozostaje kompatybilny wstecz z poprzednimi wersjami. Użyte może być poprzez autorskie narzędzia lub przeglądarki do generowania zawartości, aby pomóc użytkownikowi poruszać się po dokumencie.

Na przykład, następujący znacznik struktury wraz z zagnieżdżonymi elementami section i h1:

<section>
  <h1>Poziom 1</h1>
  <section>
    <h1>Poziom 2</h1>
    <section>
      <h1>Poziom 3</h1>
    </section>
  </section>
</section>

Zwróćcie uwagę, że dla lepszej kompatybilności z bieżącymi przeglądarkami, jest także możliwe zrobienie użytku z innych elementów nagłówka (h2 do h6) stosując odpowiednio w miejsce elementów h1.

Poprzez identyfikację celu danej sekcji na stronie, przy zastosowaniu określonych elementów podziału strony, technologia wspierająca może być pomocna użytkownikowi do łatwego przechodzenia po stronie. Na przykład, w prosty sposób można przeskoczyć nad sekcją menu lub szybko przeskoczyć z jednego artykułu do drugiego bez potrzeby wprowadzania przez autora odpowiedniego odnośnika. Autorzy również korzystają ponieważ zastępując wiele elementów div w dokumencie z jednym z kilku oddzielnych elementów, może pomóc w robieniu kodu źródłowego czystszym łatwiejszym dla autora.

Element header przedstawia nagłówek sekcji. Nagłówki mogą zawierać więcej, niż tylko sekcje przykładu dla nagłówka, to rozsądnie byłoby header obejmować pod nagłówkami.

<header>
  <h1>Podgląd HTML 5</h1>
  <p class="byline">By Lachlan Hunt</p>
</header>

<header>
  <h1>Przykładowy blog</h1>
  <h2>Wstaw znaczniki liniowe.</h2>
</header>

Element footer reprezentuje stopkę dla sekcji, to stosującej. Stopka zwykle zawiera informacje o swojej sekcji, takie jak kto napisał stronę, odnośniki do powiązanych dokumentów, prawo autorskie, i podobne.

<footer>© 2007 Przykład Inc.</footer>

Element nav reprezentuje sekcję odnośników nawigacji/menu. Jest on odpowiedni dla każdej nawigacji strony lub zawartości tabeli.

<nav>
  <ul>
    <li><a href="/">Home</a></li>
    <li><a href="/products">Products</a></li>
    <li><a href="/services">Services</a></li>
    <li><a href="/about">About</a></li>
  </ul>
</nav>

Element aside, który jest zawartością styczną do zawartości strony i jest zazwyczaj wykorzystywany do oznaczenia pasków bocznych.

<aside>
  <h1>Archives</h1>
  <ul>
    <li><a href="/2007/09/">September 2007</a></li>
    <li><a href="/2007/08/">August 2007</a></li>
    <li><a href="/2007/07/">July 2007</a></li>
  </ul>
</aside>

Element section przedstawia ogólny fragment dokumentu albo aplikacji, taki jak rozdział, na przykład:

<section>
  <h1>Chapter 1: The Period</h1>
  <p>It was the best of times, it was the worst of times,
     it was the age of wisdom, it was the age of foolishness,
     it was the epoch of belief, it was the epoch of incredulity,
     it was the season of Light, it was the season of Darkness,
     ...</p>
</section>

Element article przedstawia niezależny fragment dokumentu, strony albo miejsca. Jest to odpowiednie dla zawartości takich jak wiadomości albo artykuły na blogu, postu na forum albo indywidualnych komentarzy.

<article id="comment-2">
  <header>
    <h4><a href="#comment-2" rel="bookmark">Comment #2</a>
        by <a href="http://example.com/">Jack O'Niell</a></h4>
    <p><time datetime="2007-08-29T13:58Z">August 29th, 2007 at 13:58</time>
  </header>
  <p>Kolejny wspaniały artykuł!</p>
</article>

Audio i wideo
W ostatnich latach, wideo i audio w Internecie stały się coraz bardziej widoczne i witryny jak YouTube, Viddler, Revver, MySpace oraz tuzin innych – czynią je łatwymi dla każdego, kto chce opublikować swoje wideo i audio. Jednakże, od bieżącego języka HTML nie otrzymujemy koniecznego sposobu, aby z powodzeniem zagnieździć i kontrolować multimedia, funkcjonalność wielu takich witryn opiera się na technologii Flash. Pomimo, że można wbudować multimedia używając różnych wtyczek (takich jak QuickTime, Windows Media, itd.), Flash jest obecnie tylko powszechnie rozpowszechnioną stosowaną wtyczką, która dostarcza kompatybilne rozwiązanie z odpowiednim API dla programistów.

Jak świadczony przez różnych opartych o Flash odtwarzaczach medialnych, autorzy interesują się dostarczaniem własnych zaprojektowanych interfejsów użytkownika, które ogólnie pozwalają użytkownikom na odtwarzanie, przerywanie, zatrzymywanie oraz na regulację głosu. Planowane jest dostarczenie podobnej funkcjonalności w przeglądarkach poprzez dodanie natywnej obsługi dla zagnieżdżonych audio i video oraz dostarczeniu API DOM skryptom do kontroli nagrania.

Nowe elementy video i audio czynią to prostymi. Zarówno Opera i WebKit posiadają swe finalne wersję wraz z częściową obsługą elementu video.

Najprostszy sposób, aby zagnieździć video jest zastosowanie elementu video i pozwolić przeglądarce dostarczyć domyślny interfejs użytkownika. Atrybut controls jest typem logicznym, który określa gdzie chcielibyśmy lub nie chcielibyśmy włączyć lub wyłączyć domyślny UI.

<video src="video.ogv" controls poster="poster.jpg"
width="320" height="240">
    <a href="video.ogv">Pobierz film</a>
</video>

Opcjonalny atrybut poster służy do określenia obrazka, który będzie wyświetlony w miejsce video przed tym jak zacznie być odtwarzane. Jest więcej formatów, które obsługują własną ramkę zdjęcia, takie jak MPEG-4, który to dostarcza alternatywnego rozwiązanie, które może pracować indywidualnie z formatu video.

To jest właśnie proste osadzić audio do strony używającej element audio. Większość z atrybutów jest wspólna między elementami video, a audio, pomimo że z oczywistych względów, elementowi audio brakuje width, height i atrybutów poster.

<audio src="music.oga" controls>
    <a href="music.oga">Pobierz piosenkę</a>
</audio>

HTML 5 dostarcza element source dla określenia alternatywnego pliku audio lub video, które ma wybrać przeglądarka opierając się na jego typie lub obsłudze kodeka. Atrybut media możemy użyć do określenia wartości atrybutu, który może opierać się na jakiś ograniczeniach urządzenia oraz atrybucie type dla określenia typu. Zwróć uwagę, że kiedyś używasz elementu source, atrybut src musi zostać pominięty w ich elemencie rodzica video lub audio lub alternatywne elementy source zostaną zignorowane.

<video poster="poster.jpg">
    <source src="video.3gp" type="video/3gpp"
    media="handheld">
    <source src="video.ogv" type="video/ogg;
    codecs=theora, vorbis">
    <source src="video.mp4" type="video/mp4">
</video>
<audio>
  <source src="music.oga" type="audio/ogg">
  <source src="music.mp3" type="audio/mpeg">
</audio>

Dla twórców, którzy chcą odrobinę więcej kontroli nad interfejsem użytkownika, tak że oni mogą sprawiać, że to pasuje do ogólnego projektu strony internetowej, rozległe API dostarcza kilku metod oraz zdarzeń pozwalającym skryptów kontrolować odgrywane media. Najprostsze metody do wykorzystania są to play(), pause() i ustawiając currentTime, aby przewinąć do początku. Następujący przykład ilustruje wykorzystanie tego.

<video src="video.ogg" id="video"></video>
<script>
  var video = document.getElementById("video");
</script>
<p><button type="button" onclick="video.play();">Play</button>
   <button type="button" onclick="video.pause();">Pause</button>
   <button type="button" onclick="video.currentTime = 0;">
   << Rewind</button>

Dłuższy opis atrybutów znajduje się w aktualnej wersji specyfikacji.

Dokument
To co zapewne wszystkich ciekawi najbardziej to możliwości jakie da nam nowy język HTML 5, który posiada składnię kompatybilną z językiem HTML 4 i dokumentami XHTML1 opublikowanymi w Sieci. Dokumenty stosujące wspomnianą składnie muszą być podawane przeglądarce jako text/html.

HTML 5 szczegółowo definiuje reguły parsowania składni (wraz z obsługą błędów), które są bardziej kompatybilne z popularnymi implementacjami. User Agent będzie postępował według tych reguł z zasobami, które posiadają Typ MIME text/html.

Przykład dokumentu podporządkowującego się składni HTML:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Przykładowy dokument</title>
  </head>
  <body>
    <p>Przykładowy paragraf</p>
  </body>
</html>

XML jest inną składnią jaka może być stosowana dla języka HTML 5. Składnia ta jest kompatybilna z dokumentami XHTML1. Dokumenty stosujące tą składnię powinny być/wymagają podawane przeglądarce wraz z typem MIME XML oraz wymagają umieszczenia w przestrzeni nazw http://www.w3.org/1999/xhtml.
Poniżej mamy przykład dokumentu HTML 5 podporządkowującego się składni XML. Zwracamy szczególną uwagę, że dokumenty XML muszą posiadać typ MIME XML, czyli takie jak: application/xhtml+xml lub application/xml.

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Przykładowy dokument</title>
  </head>
  <body>
    <p>Przykładowy paragraf</p>
  </body>
</html>

Wpis powstał w oparciu o artykuł "A Preview of HTML 5" ze strony A List Apart. We wpisie wykorzystałem dwie zawarte grafiki, które pomagają opisać nowe elementy HTML 5

Różnice pomiędzy językami HTML 4 oraz HTML 5 – cz. II

Na początek: jest to dalsza część wczorajszego opisywania różnic pomiędzy językami HTML 4 oraz HTML 5 :)

Nieobecne elementy:
Poniższych elementów nie ma w HTML 5, ponieważ efekt ich działania dotyczy wyglądu aplikacji (prezentacji) i lepiej jest je wyświetlać za pomocą języka CSS:

  • basefont
  • big
  • center
  • font
  • s
  • strike
  • tt
  • u

Poniższych elementów nie także ma w języku HTML 5, ponieważ ich stosowanie miało zły wpływ na usability i dostępność aplikacji dla użytkownika końcowego.

  • frame
  • frameset
  • noframes

Poniższe elementy nie są dołączone, ponieważ były wykorzystywane bardzo rzadko, tworząc zamieszanie lub mogą zostać zastąpione przez inne podobne elementy:

  • acronym – nie został dołączony ponieważ tworzy on zbyt wiele nieporozumień. Można w zamian stosować abbr dla skrótów (ang. abbreviations).
  • applet – stał się przestarzały względem object.
  • isindex
  • dir – stał się przestarzały względem ul.

Brakujące atrybuty:
Niektóre atrybuty języka HTML 4 nigdy więcej nie będą dostępne w wersji piątej.

  • atrybut accesskey w a, area, button, input, label, legend i textarea.
  • atrybuty rev i charset w link i a.
  • atrybuty shape i coords w a.
  • atrybut longdesc w img i iframe.
  • atrybut target w link.
  • atrybut nohref w area.
  • atrybut profile w head.
  • atrybut version w html.
  • atrybut name w map, img, object, form, iframe, a (w zamian można zastosować id).
  • atrybut scheme w meta.
  • atrybuty archive, classid, codebase, codetype, declare i standby w object.
  • atrybuty valuetype i type w param.
  • atrybuty charset i language w script.
  • atrybut summary w table.
  • atrybuty headers, axis i abbr w td i th.
  • atrybut scope w td.

W dodatku, HTML 5 nie posiada atrybutów odpowiedzialnych za wygląd na stronie (prezentacji), które były w wersji 4. Zostały one przeniesione do arkusza CSS, będącego właściwym miejscem na definiowanie wyglądu strony:

  • atrybut align w caption, iframe, img, input, object, legend, table, hr, div, h1, h2, h3, h4, h5, h6, p, col, colgroup, tbody, td, tfoot, th, thead, tr i body.
  • atrybuty alink, link, text i vlink w body.
  • atrybut background w body.
  • atrybut bgcolor w table, tr, td, th i body.
  • atrybut border w table, img i object.
  • atrybuty cellpadding i cellspacing w table.
  • atrybuty char i charoff w col, colgroup, tbody, td, tfoot, th, thead i tr.
  • atrybut clear w br.
  • atrybut compact w dl, menu, ol i ul.
  • atrybut frame w table.
  • atrybut frameborder w iframe.
  • atrybut height w iframe, td i th.
  • atrybuty hspace i vspace w img i object.
  • atrybuty marginheight i marginwidth w iframe.
  • atrybut noshade w hr.
  • atrybut nowrap w td i th.
  • atrybut rules w table.
  • atrybut scrolling w iframe.
  • atrybut size w hr, input i select.
  • atrybut style we wszystkich elementach z wyjątkiem font.
  • atrybut type w li, ol i ul.
  • atrybut valign w col, colgroup, tbody, td, tfoot, th, thead i tr.
  • atrybut width w hr, table, td, th, col, colgroup, iframe i pre.

API
HTML 5 wprowadza kilka API, które pomagają w tworzeniu aplikacji internetowych. Mogą być one stosowane razem z nowymi elementami wprowadzonymi do aplikacji:

Rozszerzenia do HTMLDocument

HTML 5 poszerzył interfejs HTMLDocument z DOM Level 2 HTML. Interfejs jest teraz zaimplementowany na wszystkich obiektach implementujących interfejs Document.

  • getElementsByClassName() – aby wybrać elementy poprzez ich nazwę klasy. Sposób w jaki jest zdefiniowana ta metoda pozwala jej na pracę z jakąkolwiek zawartością z atrybutami class i obiektem Document, taki jak SVG i MathML.
  • innerHTML
  • activeElement oraz hasFocus
  • getSelection()
  • designMode i execCommand(), które są często stosowane do edycji dokumentów.

Rozszerzenia do HTMLElement

Interfejs HTMLElement posiada także kilka dostępnych rozszerzeń w języku HTML 5:

  • getElementsByClassName()
  • innerHTML
  • classList
Dzisiejszy post jest dokończeniem poprzedniego wpisu.

Czytaj także:

Różnice pomiędzy językami HTML 4 oraz HTML 5

Jak już wspomniałem post wcześniej, w3c wydało specyfikację języka HTML 5 (WD). Artykuł poniżej porównuje wersje 4 i 5 języka HTML. Porównanie zostało opracowane na podstawie dokumentu Konsorcjum W3C.

UWAGA: HTML 5 jest wciąż szkicem roboczym specyfikacji!

Kompatybilność wstecz!
Pierwszym dużym plusem języka HTML 5 jest to, że jest zdefiniowany w sposób umożliwiający kompatybilność wstecz.

Składnia:
To co zapewne wszystkich ciekawi najbardziej to możliwości jakie da nam nowy język HTML 5, który posiada składnię kompatybilną z językiem HTML 4 i dokumentami XHTML1 opublikowanymi w Sieci. Dokumenty stosujące wspomnianą składnie muszą być podawane przeglądarce jako text/html.

HTML 5 szczegółowo definiuje reguły parsowania składni (wraz z obsługą błędów), które są bardziej kompatybilne z popularnymi implementacjami. User Agent będzie postępował według tych reguł z zasobami, które posiadają Typ MIME text/html.

Przykład dokumentu podporządkowującego się składni HTML:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Przykładowy dokument</title>
  </head>
  <body>
    <p>Przykładowy paragraf</p>
  </body>
</html>

XML jest inną składnią jaka może być stosowana dla języka HTML 5. Składnia ta jest kompatybilna z dokumentami XHTML1. Dokumenty stosujące tą składnię powinny być/wymagają podawane przeglądarce wraz z typem MIME XML oraz wymagają umieszczenia w przestrzeni nazw http://www.w3.org/1999/xhtml.
Poniżej mamy przykład dokumentu HTML 5 podporządkowującego się składni XML. Zwracamy szczególną uwagę, że dokumenty XML muszą posiadać typ MIME XML, czyli takie jak: application/xhtml+xml lub application/xml.

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Przykładowy dokument</title>
  </head>
  <body>
    <p>Przykładowy paragraf</p>
  </body>
</html>

Kodowanie znaków
W kwestii kodowania mamy ważne trzy główne ustawienia:

  • Sposób przesłania. Na przykład; poprzez użycie nagłówka HTTP o zawartości Content-Type.
  • Użycie BOM
  • Użycie elementów meta z określonym atrybutem charset, który określa kodowanie jako pierwszy potomny elementu head. <meta charset="UTF-8"> może być stosowany do określenia kodowania UTF-8. Ten fragment kodu zastąpił nam: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Element DOCTYPE
Deklaracją DOCTYPE jest <!DOCTYPE html> i jest on niezależny. Wcześniejsze wersje języka HTML zawierały długie elementy DOCTYPE, a to tylko dlatego, że był on oparty na języku SGML i żądał odniesienie do DTD. W HTML 5 DOCTYPE jest nam tylko potrzebny do ustawienia trybu standardów dla dokumentu napisanego za pomocą składni HTML.

Nowe elementy:
Następujące elementy wprowadzono dla polepszenia struktury:

  • section – przedstawia ogólny dokument. Może być stosowany wraz z h1-h6, aby określić strukturę dokumentu.
  • article - reprezentuje niezależny kawałek zawartości dokumentu, taki jak wprowadzenie wpis na blogu albo artykuł w gazecie.
  • aside – reprezentuje kawałek zawartości, która jest marginalnie powiązany z resztą strony.
  • header – reprezentuje nagłówek sekcji.
  • footer – reprezentuje stopkę sekcji i może zawierać pewne informacje o autorze, prawach autorskich itd.
  • nav – reprezentuje sekcję wewnątrz dokumentu służącą do nawigacji.
  • dialog – służy do wyróżnienia rozmowy, tak jak poniżej:
    <dialog>
           <dt> Costello
           <dd> Look, you gotta first baseman?
           <dt> Abbott
           <dd> Certainly.
           <dt> Costello
           <dd> Who's playing first?
           <dt> Abbott
           <dd> That's right.
           <dt> Costello
           <dd> When you pay off the first baseman...
           <dt> Abbott
           <dd> Every dollar of it.
    </dialog>
  • figure – służy do powiązania podpisu razem z jakąś zagnieżdżoną zawartością, taką jak grafika czy wideo:
    <figure>
           <video src=ogg>…</video>
           <legend>Przykład</legend>
    </figure>

Następnie mamy kilka innych nowych elementów:

  • audio i video dla multimedialnej zawartości. Obydwa dostarczają API więc autorzy aplikacji mogą wprowadzać swój własny interfejs. Elementy source są używane razem z tymi elementami jeśli jest dostępnych wiele strumieni różnych typów.
  • embed – jest stosowany do zagnieżdżania zawartości.
  • m – reprezentuje uruchomiony zaznaczony tekst.
  • meter – reprezentuje pomiar, taki jak użycie dysku.
  • time – reprezentuje datę i czas.
  • canvas – jest stosowany do renderowania dynamicznych grafik mapy bitowej w locie, m.in. wykresy, gry itd.
  • command – reprezentuje polecenie, na które ma wpływ użytkownik poprzez odwołanie się.
  • datagrid – reprezentuje interaktywne przedstawienie listy drzewa lub danych z tabeli.
  • details – reprezentuje dodatkowe informacje albo kontrolki, które użytkownik może uzyskać na żądanie.
  • datalist – razem z nowym atrybutem list użytego dla input, aby utworzyć pola rozwijane (comboboxes):
    <input list=browsers>
    <datalist id=browsers>
           <option value="Safari">
           <option value="Internet Explorer">
           <option value="Opera">
           <option value="Firefox">
    </datalist>
  • Elementy datatemplate, rule i nest dostarczają szablony mechanizmów dla HTML.
  • event-source – jest stosowany do “przechwycenia” zdarzenia wysłanego przez serwer.
  • output – reprezentuje jakiś typ wyjściowy, taki jak formularz kalkulacji wykonany poprzez skrypt.
  • progress – reprezentuje ukończenie zadania, takiego jak pobieranie lub wykonanie serii czasochłonnych operacji.

Atrybut type elementu input posiada teraz następujące nowe wartości:

  • datetime
  • datetime-local
  • date
  • month
  • week
  • time
  • number
  • range
  • email
  • url

Ideą nowych typów jest to, że user agent potrafi dostarczyć UI, takie jak okienko kalendarza lub może zintegrować się z książką adresową użytkownika. Daje to użytkownikowi więcej możliwości do wykorzystania.

Nowe atrybuty:
HTML 5 wprowadza kilka nowych atrybutów w różnych elementach, które aktualnie są częścią języka HTML 4:

  • Atrybut media w elementach a i area
  • Atrybut ping w elementach a i area. Atrybut powinien zawierać listę oddzielonych znakiem spacji identyfikatorów URI, do których ma zostać wysłane powiadomienie, gdy użytkownik kliknie odnośnik. Warto przeczytać…
  • Atrybuty hreflang i rel posiada teraz element area.
  • Element base posiada teraz atrybut target, natomiast z elementów a i area został on wycofany.
  • Atrybut value dla elementu li nie jest już dostępny. To samo dotyczy atrybutu start w elemencie ol.
  • Element meta posiada atrybut charset w krótszej i bardziej przyjaznej formie.
  • Nowy atrybut autofocus może być określony w elementach input (oprócz momentu gdy atrybut type ma wartość hidden), select, textarea i button.
  • Nowy atrybut form dla elementów input, output, select, textarea, button i fieldset pozwalający łączyć kontrolki w więcej, niż na jednym formularzu.
  • Elementy input, button i form posiadają nowy atrybut replace.
  • Elementy form i select (tak jak element datalist) posiadają atrybut data pozwalający automatycznie wypełnić kontrolki formularza.
  • Nowy atrybut required stosowany do elementów input (oprócz momentu, gdy atrybut type ma wartość hidden, image lub jakiś typ przycisku jest jako submit) i textarea. Określa, że użytkownik musi wypełnić wartości formularza.
  • Elementy input i textarea posiadają nowy atrybut inputmode, który wyznacza jakiego rodzaju jest oczekiwana zawartość pola wejściowego.
  • Atrybut disabled w elemencie fieldset, służący do jego całkowitego wyłączenia, co nie było możliwe w HTML 4.
  • Element input posiada kilka nowych atrybutów określonych przymusowo: autocomplete, min, max, pattern i step.
  • input i button także posiadają atrybut template, który zastosowano do szablonów powtórzających się.
  • Element menu ma trzy nowe atrybuty: type, label i autosubmit. Pozwalają na przerobienie menu tak, jak można znaleźć w typowych interfejsach tak samo jak dostarczanie dla menu kontekstowego połączenia z globalnym atrybutem contextmenu.
  • Element style posiada nowy atrybut scoped.
  • Element script posiada nowy atrybut async.
  • Element html posiada nowy atrybut manifest.

Kilka atrybutów z języka HTML 4, teraz zastosujemy do wszystkich elementów. Są one wywołane globalnie: class, dir, id, lang, tabindex i title.

Kilka nowych globalnych atrybutów:

  • Atrybut contenteditable określający, że element posiada obszar do edycji. Użytkownik może zmienić zawartość elementu poprzez manipulacje znacznikiem.
  • Atrybut contextmenu.
  • Atrybut draggable użyty razem z nowym API drag & drop.
  • Atrybut irrelevant określający, że element nie jest już stosowany.
Heh, nawet nie zauważyłem kiedy ten post zrobił się, aż tak długi :]. Aby nie zrobiła się z tego totalny artykuł bez końca - podzielę go na dwie części. W drugiej części znajdzie się pozostała część opisująca różnice między wersjami HTML 4 i 5. 

Przeczytaj również:

HTML 5 – FPWD – został opublikowany!

22 stycznia br. została opublikowany pierwszy publiczny Working Draft specyfikacji języka HTML w wersji 5-ej.

w3c-html5-2.png

Wraz z nią został także opublikowany dokument (posiadający także status WD) omawiający różnice jakie występują pomiędzy językami HTML 4 oraz HTML 5.

w3c-html5.png

  1. HTML 5 (W3C Working Draft 22 January 2008)
  2. HTML 5 differences from HTML 4 (W3C Working Draft 22 January 2008)

Nowe oblicze języka HTML zaczyna nabierać kolorów. To co zawierają ww. dokumenty jest efektem kilku lat pracy najlepszych programistów.