Syntaks
Doctype
Følgende er en syntaktisk riktig HTML5 side og validere uten feil hos W3C [1]
<!DOCTYPE html> <html> <head> <title>mypage</title> <meta charset="UTF-8" /> </head> <body> <p> hello</p> </body> </html>
Vi ser at mønsteret er akkurat det samme som når vi skriver en XML-side, bortsett fra at vi mangler en første linje (med encodingsinformasjon):
<?xml version="1.0" encoding="utf-8"?>
En fil med denne XML-linja ville ikke passere HTML5 validatoren uten feil.
Elementformat
På den annen side ville følgende også være en syntaktisk riktig og validerbar HTML5 side:
<!DOCTYPE html> <html> <head> <title>mypage</title> <meta charset="UTF-8"> </head> <body> <p> hello</p> </body> </html>
altså uten å lukke meta-elementet.
Dette er gjennomgående i tillatt HTML5-syntaks. Vi kan skrive en rekke elementer uten å avslutte dem, typisk <br>, <hr>, <img src="a.png" alt="a">. Dette gjelder tagger som ikke forventer noe eksplisitt innhold. Hvis vi imidlertid går inn og inspiserer den dynamiske DOM'en slik den presenteres i utviklingsverktøy i nettleseren, ser vi at elementet er beskrevet med en eksplisitt slutt-tag: <br> </br> .
Alle de tre formene <br> </br> , <br> og <br/> vil validere. Jeg bruker systematisk <br/> for å opprettholde en enkelt parsbar form på kildefilene mine slik at jeg kan bruke mitt CMS1 Content Management System-verktøy for å bygge sider.
En del andre elementer i HTML5 er litt mer problematiske. Vi kan f.eks skrive:
<p contenteditable >hallo</p>
Vi bruker altså en attributt uten verdi. Dette er et klart brudd på XML-syntaksen, men godkjennes altså som HTML5. Uansett hva vi skriver
<p contenteditable >hallo</p> <p contenteditable="true" >hallo</p> <p contenteditable="false" >hallo</p> <p contenteditable="" >hallo</p>
så vil tilstedeværelsen av contenteditable angi at paragrafen kan editeres. Igjen vil vi se at den dynamiske DOM'en i nettleserverktøyet viser elementet som den siste versjonen ovenfor, altså som korrekt XML. Når jeg har ambisjoner om å skrive vellformet HTML5 bruker jeg denne formen i kildekoden. Og det validerer.
- Content Management System