15.11.2009 HTML5
HTML5 on HTML/XHTML:n seuraava versio, joka sisältää joukon sivujen kehitystä helpottavia ominaisuuksia sekä uusia semanttisempia merkintätapoja dokumentin rakenteelle. HTML5 tekee merkkauksesta yksinkertaisempaa. Joitakin vanhoja HTML4:n ulkoasuun viittaavia ominaisuuksia on pudotettu pois.
Doctype
HTML5:n doctype on kaikessa yksinkertaisuudessaan seuraavanlainen:
<!DOCTYPE html>
Rakenteelliset uudistukset
HTML5 vie semantiikan hieman pidemmälle. Jokainen dokumentin osa on saanut oman elementtinsä, joiden on tarkoitus korvata <div id=”header”></div> tyyppinen merkkaus.
- header
Dokumentin header-osion sisältö. - nav
Sivuston navigaatiot sijoitetaan nav-elementin sisään. - section
Yleiskäyttöinen elementti. Käyttötarkoitus on vastaava kuin <div> elementillä. - article
Article-elementti sisältää yleensä sivun pääsisällön, esimerkiksi blogikirjoituksen. - aside
Tämä on sivuston sisältöön liittyvä elementti, joka voi sisältää esimerkiksi tagipilven tai aiheeseen liittyviä artikkeleita. - footer
Header- ja footer-elementtejä voi käyttää myös section- tai article-elementin sisällä.
Uusia ominaisuuksia
HTML5 sisältää muitakin mielenkiintoisia uusia ominaisuuksia, joiden avulla erilaisten toimintojen tekeminen yksinkertaistuu. Esimerkiksi video- ja audio-tiedostojen upottamiseen ei tarvita enää Flashia tai muita kolmannen osapuolen liitännäisiä.
- Canvas
Elementti, jonka avulla voi piirtää erilaisia kuvioita. - Datan varastointi (Web Storage)
HTML5 sallii tiedon tallentamisen lokaalisti samaan tapaan kuin evästeillä. Erona on se, että nyt tietoa voi tallentaa huomattavasti enemmän ja käyttömahdollisuudet ovat monipuolisemmat. - Video & Audio
Video- ja audioelementtien liittäminen sivustolle yksinkertaistuu: <video width=”500″ height=”450″ src=”video.mp4″></video> - Maantieteellinen sijainti (Geolocation API)
Käyttäjän maantieteellisen sijainnin selvittäminen helpottuu. - Raahaa & pudota -toiminto
Natiivi tuki raahaa & pudota -toiminnolle. QuirksMode-blogin kirjoituksessa ominaisuus ei tosin kerää kovinkaan paljon kehuja: “HTML5 drag and drop module is not just a disaster, it’s a fucking disaster”. - Muokattavat sisällöt
Attribuutti contenteditable=”true” muuntaa minkä tahansa elementin sisällön muokattavaksi. - Viestien lähettäminen eri domainien välillä
PostMessage API mahdollistaa viestien lähettämisen ikkunasta toiseen, välittämättä siitä missä domainissa vastaanottaja sijaitsee.
Lomakkeet
Lomakkeisiin on tulossa helpotusta kenttien validointiin. Kentät voi määritellä pakollisiksi sekä tietyn tyyppisiksi (email, URL, puhelin, päivämäärä jne.), jolloin selain tarkistaa automaattisesti, että sisältö on oikeassa muodossa. Tämä ei tietenkään poista datan validoinnin tarvetta palvelimen puolella, mutta helpottaa tarkistusten tekemistä selaimessa.
Koska sitä voi käyttää?
Teoriassa HTML5:n voi ottaa käyttöön vaikka heti, ainakin perusominaisuuksien osalta. Yllätys yllätys, IE-selaimet tuottavat kuitenkin taas vaikeuksia. Pienellä Javascript-koodinpätkällä saadaan kuitenkin IE:kin tottelemaan uutta merkkausta. Javascriptin pakollisuuden takia kannattaa kuitenkin vielä hetki odottaa ennen kuin HTML5:n todella ottaa käyttöön.
<script>
document.createElement('header');
document.createElement('footer');
document.createElement('section');
document.createElement('aside');
document.createElement('nav');
document.createElement('article');
</script>
Huomaa, että Javascript ei tarvitse enää type=”text/javascript” määritystä, vaan kaikkien script-elementtien oletetaan olevan tyyppiä “text/javascript” oletuksena. HTML5 hyväksyy itsensä sulkevat tagit, joten XHTML-merkkauksen muuttaminen HTML5:ksi käy helpommin.
Katso HTML5-testisivu (testattu toimivaksi IE6-8, Firefox 3.5, Opera 9.64, Google Chrome 3, Safari for Windows 3.1.2 selaimilla).
W3 validaattorikin ymmärtää nykyään HTML5-merkkausta, joten validointikaan ei tuota ongelmia.
Resursseja ja lisätietoa
- HTML5 cheat sheet (Smashing Magazine)
- HTML5 specification (W3)
- Compatibility tables for features in HTML5, CSS3, SVG and other upcoming web technologies (deveria.com)
- HTML5 Doctor
- WHATWG-yhteisö
