Det fleste av dagens websider er basert på oppmerkingsspråket
HTML (HyperText Markup Language). Men dagens HTML-versjon, HTML 4.01, ble utgitt så tidlig som julaften 1999. Mye har skjedd på weben siden den tid, og mange mener at tiden er overmoden for å fornye spesifikasjonen.
Blant dem som tidlig kom til denne konklusjonen, var personer i Apple, Mozilla og Opera. Allerede i 2004 dannet disse menneskene arbeidsgruppen Web Hypertext Application Technology Working Group (WHATWG), som senere har utgitt flere forslag til utvidelser av HTML og DOM , blant annet Web Forms 2.0 og Web Applications 1.0, også kalt HTML5.
I mars i fjor ble det klart at også W3C, som står bak de fleste webstandardene, også mener at HTML, samt det relaterte XHTML-språket, bør fornyes. Et par måneder senere ble det kjent at det videre arbeidet skulle baseres på HTML5-spesifikasjonen til WHATWG, men også at den nye versjonen av HTML skulle få versjonsnummeret 5.
Det første utkastet til
HTML 5-spesifikasjonen ble utgitt i januar i år, og denne uken ble
et nytt arbeidsutkast publisert.
Selv om HTML 5-spesifikasjonen fortsatt bare et utkast, kan man ganske trygt gå ut fra at det meste som står der, vil bli med i en endelig utgave av standarden. Derfor kan det være fornuftig allerede nå å sette seg inn i de viktigste endringene i forhold til dagens HTML-spesifikasjon.
For endringene er mange. En rekke elementer og attributter forsvinner, en rekke nye tagger og attributter innføres. I tillegg kommer det en håndfull nye programmeringsgrensesnitt (API-er).
HTML 5 støtter en egen HTML-syntaks som er kompatibel med HTML 4 og XHTML 1. I tillegg kan XML benyttes som syntaks for HTML 5.
HTML 5 på dagens stadium inkluderer en rekke nye elementer, blant annet en serie elementer, for eksempel
section,
header,
footer og
nav, som kan brukes til strukturere HTML-dokumenet i ulike typer seksjoner.
Det er også blitt laget egne elementer for spesielle typer innhold, slik som
time,
datagrid,
datalist,
audio og
video. Dessuten er
canvas-elementet en del av HTML 5. Dette støttes allerede av enkelte nettlesere som benyttes til å lage dynamisk punktgrafikk, for eksempel kurver og spill.
Skjemaene i HTML blir mer fleksible ved å at input-elementet støtter flere ulike typer. Dette inkluderer
datetime,
week,
number,
range,
email og
url.
En rekke av elementene knyttet til skjemaer, slik som
input,
select,
textarea og
button, får nå en ny attributt som kalles
form. Denne gjør det gjør det mulig for kontroller å bli assosiert med mer enn et enkelt skjema.
Script-elementet har fått et nytt attributt som kalles
async. Den skal kunne påvirke lastingen og kjøringen av skripts. I tillegg kommer det en del nye, globale attributter, blant annet
draggable, som kan brukes sammen med det nye programmeringsgrensesnittet for dra- og slipp-funksjonalitet.
En rekke elementer forsvinner med HTML 5. Det betyr ikke at nettlesere skal slutte å støtte dem, men at utviklere som tar i bruk HTML 5 skal begynner å benytte bedre metoder for presentasjonen av innholdet, for eksempel stilsett (CSS).
Dette inkluderer elementer som
center,
font,
strike og
u. I tillegg er alle støtte for rammer (frames) fjernet, bortsett fra iframe-elementet. Det betyr at elementene
frame,
frameset og
noframes ikke lenger skal benyttes. Årsaken til dette er at man mener bruken av disse elementene påvirker brukervennligheten og tilgjengeligheten for sluttbrukerne på en negativ måte.
Bruken av en mengde attributter reduseres med HTML 5, i mange tilfeller fordi man kan gjøre det samme med CSS. Dette gjelder blant annet flere tilfeller av
border,
height,
width,
bgcolor,
background,
align,
valign,
type og
size.
Dessuten skal man ikke lenger benytte
name-attributtet sammen med elementene
img,
form og
a. I stedet bør man bruke
id-attributtet.
HTML 5 inkluderer en rekke nye API-er, blant annet ett for å lage 2D-grafikk sammen med det nevnte
canvas-elementet og et for å spille av video og lyd sammen med de nye
video- og
audio-elementene.
Nytt er også API-et for lokal lagring av data. Dette støtter både en SQL-database og oppslag basert på nøkkel og verdi. Relatert til dette er et API for offline webappikasjoner.
Inkludert er også et API som lar webapplikasjoner registrere seg selv for visse protokoller eller MIME-typer, et API for redigering av innhold i kombinasjon med den nye, globale
contenteditable-attributten og det nevnte API-et for dra- og slipp-funksjonalitet.
Dessuten skal det blant annet gjøres mulig å sende meldinger på tvers av dokumenter og å varsle brukeren om ny informasjon, for eksempel om nye e-postmeldinger i en e-postapplikasjon.
Dessuten inkluderer HTML 5 et eget API for nettverksstøtte og et API for å lese av og legge til sider i historikken, slik at ikke funksjonaliteten til tilbake-knappen ødelegges. Dette krever dog visse sikkerhetsrestriksjoner.
HTML 5 har også utvidet HMTLDocument-grensesnittet fra DOM Level 2 HTML på en rekke områder. Det er nå mulig å velge elementer etter klassenavn gjennom
getElementsByClassName()-metoden, det lenge benyttede
innerHTML er nå en del av standarden,
activeElement og
hasFocus kan brukes til henholdsvis å bestemme hvilket element som for øyeblikket er fokusert og om dokumentet har fokus.
Også HTMLElement-grensesnittet har HTML 5 fått støtte for
getElementsByClassName() og
innerHTML. Den sistenevnte er også definert for å fungere i en XML-kontekst.
classList returnerer et objekt som gir tilgang til metoder for å manipulere klassene til et element. Tilsvarende har elementene a, area og link et tilsvarende attributt som kalles
relList, som tilbyr den samme funksjonaliteten til
rel-attributten.
W3C har på
denne siden publisert en oppdatert oversikt over disse og en rekke andre forskjeller mellom HTML 4 og HTML 5.
Det er ikke blitt offentliggjort noen tidsplan for når HTML 5 skal bli ferdig. Og selv om enkelte nettleserprodusenter allerede har begynt å implementere deler av utkastet til HTML 5-spesifikasjonen, viser historikken at det kan ta mange år før alle de viktigste nettleserne kan vise til god støtte av nye standarder. Enda lenger tid vil det ta dersom man også skal ta hensyn til at svært mange nettleserbrukere ikke er så opptatt av å benytte en oppdatert nettleser.