De site van H.J. de Boer

Homepage van H.J. de Boer > Frontpage

De toekomst van HTML - HTML5 door het W3C


HTML krijgt een nieuwe toekomst. Het W3C is om. De HTML Working Group is nieuw leven ingeblazen, met als doel een nieuwe HTML-versie te maken, als opvolger van HTML 4.01. Succes of falen van de WHATWG? En wat moeten we verwachten van de nieuwe specificatie, het ei van Columbus of eenzelfde deceptie als XHTML2?

De ontwikkeling van HTML
HTML is een taal (geen programmeertaal) waarmee de structuur van webpagina's wordt geschreven. HTML maakt webpagina's zichtbaar. Het is de oudste specificatie van de standaardenorganisatie W3C. De Brit Tim Berners-Lee stond aan de wieg van HTML, welke taal hij in 1991 ontwikkelde op basis van het reeds bestaande SGML om wetenschappelijke documenten eenvoudiger toegankelijk te maken. Ook ontwikkelde hij de eerste webbrowser, met de naam WorldWideWeb. In 1993 werd de webbrowser Mosaic ontwikkeld door het NCSA (de eerste Windows-versie hiervan werd geschreven door Chris Wilson, de latere Platform Architect voor Internet Explorer bij Microsoft), die als eerste grafische elementen in HTML ondersteunde. Op diezelfde basis ontstond in 1994 Netscape Navigator. Door deze concurrentie en de bijbehorende ontwikkelingen werd het internet pas echt populair. Korte tijd later kwam Microsoft met een eigen browser, Internet Explorer. De verschillende browsers voegden ieder hun eigen elementen aan HTML toe.

HTML en het W3C
De eerste officiële specificatie van HTML van de hand van het W3C was HTML 2.0 in september 1995. Aardig is het om de summiere omschrijving van HTML in een W3C-document uit 1992 te zien. Tot de acceptatie van de laatste HTML recommendation in december 1999, versie 4.01, heeft er veel ontwikkeling plaatsgehad. Daarna is die ontwikkeling bij het W3C stilgelegd ten faveure van de ontwikkeling van XHTML-varianten. Waar de kracht van de eerdere HTML-specificaties mede heeft gelegen in backwards compatibility, werd koersgezet naar een recommendation die niet backwards compatible zou zijn: XHTML2. Na de browser war ontketende zich de standaardenoorlog tussen XHTML en HTML. Omdat het W3C vastbesloten was om XHTML2 door te zetten en HTML te laten voor wat het was, heeft een aantal belanghebbenden uit de industrie zich alweer enkele jaren geleden georganiseerd in de WHATWG teneinde een nieuwe specificatie te ontwikkelen om HTML aan de eisen van de tijd te laten voldoen, onder de titel Web Applications 1.0, in de volksmond ook wel genoemd HTML5 zoals ik eerder beschreef. Aldaar hield ik nog het volgende vurige pleidooi:
quote: http://hjdeboer.nl/archives/2006/02/html5
XHTML is dood, leve HTML5! Laten we nu alleen hopen dat het W3C terugkeert op zijn schreden en het wankele pad van XHTML verlaat. Laten we hopen dat het W3C afstapt van zijn koppigheid en inziet dat HTML inderdaad de toekomst heeft.

Meer dan een jaar geleden leek dat vrijwel ondenkbaar. Inmiddels is er veel gebeurd. Voornoemde uitvinder van HTML, Tim Berners-Lee, heeft in oktober 2006 uitgesproken op de hoogte te zijn van alle bezwaren en overwegingen bij browserfabrikanten en gebruikers tegen de ontwikkeling van XHTML en het gebrek aan ontwikkeling van HTML door het W3C. De aartsvader van het internet maakte in enkele zinnen korte metten met de koppigheid van het W3C:
quote: http://dig.csail.mit.edu/breadcrumbs/node/166
Some things are clearer with hindsight of several years. It is necessary to evolve HTML incrementally. The attempt to get the world to switch to XML, including quotes around attribute values and slashes in empty tags and namespaces all at once didn't work. The large HTML-generating public did not move, largely because the browsers didn't complain. Some large communities did shift and are enjoying the fruits of well-formed systems, but not all.

De nieuwe HTML-werkgroep
Vervolgens werd het plan uitgewerkt om de HTML WG opnieuw aan het werk te zetten, met nieuwe uitgangspunten en een nieuwe opdracht. Een en ander leidde tot de presentatie van de nieuwe HTML WG, nu bijna een maand geleden. Buitengewoon mooi dat het W3C er nu ook van doordrongen is, dat het internet gediend is met een nieuwe toekomst voor HTML en dat XHTML niet de heilige graal van het internet in de eerste decaden van deze eeuw zal worden. Hoera voor de nieuwe HTML-werkgroep dus. Maar wat gaat deze club dan precies doen? We hebben nu uiteindelijk de WHATWG al, die hetzelfde beoogt buiten het W3C. Hoe moeten we de verhouding tussen die twee zien? Gaat de nieuwe specificatie van het W3C ook HTML5 heten? Mag de WHATWG de term HTML5 nu nog wel gebruiken? In willekeurige volgorde zal ik hieronder op een aantal van deze vragen proberen een antwoord te krijgen.

Chris Wilson, hierboven al even genoemd, is enkele dagen geleden toegetreden tot de werkgroep als vice-voorzitter, namens Microsoft. Zijn standpunt met betrekking tot het bovenstaande heeft hij vrij puntig uiteengezet toen in januari sprake was van zijn betrokkenheid bij de werkgroep:
quote: http://blogs.msdn.com/cwilso/archive/2007/01/10/you-me-and-the-w3c-aka-reinventing-html.aspx
I believe as initial chair of the HTML WG, it would be my personal responsibility to be the glue between the W3C and the WHAT-WG, and I would hope in the eventuality of time the WHAT-WG would simply dissolve because it’s no longer necessary. I don’t question that the W3C is not what it needs to be today to allow that to happen; in fact, that’s why I personally pushed to do something drastic about the HTML WG. I do want to be clear though, that in my opinion HTML is not in the hands of the WHAT-WG and never has been, despite calling a spec or set of specs "HTML 5"?; it belongs to the W3C. Their stewardship of it over the last few years has been wanting, but that’s the point of the (new) HTML WG.

Nut en toekomst van de WHATWG
Volgens Wilson hoort het HTML bij het W3C en kan de WHATWG uiteindelijk met vriendelijke dank voor de gedane arbeid (en het beheer) ontbonden worden. Met andere woorden, de WHATWG heeft nuttige dingen op papier gezet en heeft met Web Applications 1.0 een aardige voorzet voor de nieuwe HTML-versie van het W3C gegeven, maar blijkt uiteindelijk vooral nut gehad te hebben als breekijzer. Het W3C is weer wakkergeschud en is op koers getrokken. Dat lijkt vrij sneu voor de WHATWG, maar is denk ik wel juist. Zo lovend als ik vorig jaar over het initatief van de WHATWG was, ben ik nog steeds en ik wil niets afdoen aan de verrichte werkzaamheden. Terugkijkend kan ik me ergens ook niet aan de indruk onttrekken dat de WHATWG nooit heel veel meer heeft wíllen zijn dan dat breekijzer: de leden van die werkgroep hebben een eigen initiatief ontplooid bij gebrek aan activiteit van de zijde van het W3C. Niet uit op eigen roem, maar uit armoede geboren. Natuurlijk is het begrijpelijk dat de leden van de WHATWG niet ogenblikkelijk hun werkzaamheden stopzetten, nog voor de contouren van de nieuwe W3C-werkgroep duidelijk zijn en het stof is opgetrokken.

Het bestaan van de WHATWG als luis in de pels is misschien sowieso goed om druk op de ketel te houden en een vluchtweg open te houden. Desalniettemin denk ik dat het W3C uiteindelijk de beste voorwaarden kan scheppen voor een reïncarnatie van HTML, ondanks dat de afgelopen jaren een ander beeld te zien hebben gegeven. Ik mag aannemen dat de leden van de WHATWG dat zelf ook zo beschouwen. Hun initiatief is buitengewoon succesvol te noemen, al is het maar vanwege de invloed op het W3C. Nu echter Microsoft, als grootste browserboer, een vertegenwoordiger in de nieuwe HTML WG heeft, lijkt de W3C-club vanzelfsprekend meer potentie te hebben dan de WHATWG, waar Chris Wilson zijn naam niet aan wilde verbinden omdat de kwestie van intellectuele eigendom niet goed geregeld was en dus riskante gevolgen zou kunnen hebben (waarbij Wilson refereert aan de strijd rondom het Eolas-patent). Het W3C heeft een duidelijk patent beleid, waarmee gewaarborgd moet worden dat alle recommendations die onder deze policy tot stand komen, op een royalty-vrije basis kunnen worden geïmplementeerd. Andere grote deelnemers aan de nieuwe werkgroep zijn zijn momenteel AOL, Apple, Google, Mozilla, Nokia en Opera. Een breed gedragen initiatief dus, hetgeen op zijn minst een goed uitgangspunt vormt voor een project als dit.

Werkzaamheden van de HTML WG
Wat hebben we te verwachten van de HTML WG? Het handvest van de werkgroep geeft inzicht in de doelen en het tijdpad waarin een en ander zich af moet gaan spelen. Meer daarover staat te lezen in " Architectural vision for HTML/XHTML2/Forms Chartering":
quote: http://www.w3.org/2007/03/vision
Instead, the charter calls for two equivalent serializations to be developed by the HTML WG, corresponding to a single DOM (or infoset, though tag soup cannot be considered to have an infoset currently, while it can have a DOM). This ensures that decisions are not made which would preclude an XML serialization. It allows the two serializations to be inter-converted automatically. Having new language features, there is an incentive for content authors to use it; and having client-side implementations means that there is the possibility to really use it.

Er dienen twee serializations ontwikkeld te worden, waarschijnlijk vergelijkbaar met hetgeen de WHATWG voor ogen heeft: één specificatie, die voorziet in zowel een XML-syntax als een niet-XML-compatible (klassieke) HTML-variant. Het schijnt mij toe dat dat eenzelfde verhouding is als HTML 4.01 en XHTML 1.0: je kunt met een paar verwaarloosbare aanpassingen van je HTML-document een valid en wellformed XML-document maken. Zoals in het handvest staat te lezen zal de nieuwe HTML-werkgroep in een opvolger voor HTML voorzien, daarin mede begrepen de serie specifcicaties die als XHTML1 bekend staat. De Web Applications 1.0 specificatie van de WHATWG zal niet zonder meer als uitgangspunt genomen worden, maar uiteraard wordt gebruik gemaakt van reeds verzet denkwerk. Bij een goede samenwerking tussen de WHATWG en de HTML WG mag men verwachten dat de titel HTML5 ook gewoon door de HTML WG gebruikt gaat worden, al was het maar als werktitel.

Design Principles
Leidend hierbij zullen de Design Principles zijn, welke momenteel in wiki-vorm in ontwikkeling zijn op deze plaats. In dit overzicht worden in feite de ontwerp principes opgesomd die als basis hebben gediend voor HTML5. Gedefinieerd worden uitgangspunten op het gebied van compatibiliteit, bruikbaarheid en interoperabiliteit. Zo wordt de nadruk gelegd op het belang 'Don't Break The Web', dus de introductie van een nieuwe versie mag er niet voor zorgen dat oude documenten niet meer verwerkt kunnen worden. Verder worden als uitgangspunt genomen 'Don't Reinvent The Wheel', 'Pave The Cowpaths' en 'Evolution Not Revolution'. Met andere woorden: bestaande implementaties of veel gebruikte praktijken moeten in beginsel op die wijze gespecificeerd en gestandaardiseerd worden, in plaats van ze te verbieden en te menen een beter alternatief te moeten introduceren. Zeker gezien de misslagen met XHTML lijkt mij dat de juiste insteek voor een lichaam als het W3C. Als er al iets bestaat naar tevredenheid van gebruikers, dan maak je daar gebruik van in je specificatie, in plaats van tegen de hele wereld te zeggen dat dat fout is en dat het allemaal anders moet. Zo mogelijk dus codificatie in plaats van creatie.

Een ander doel is 'Solve Real Problems'. Geen twijfel mogelijk. Er moet met de specificatie voorzien worden in de daadwerkelijke behoeften van de praktijk, in plaats van dat er op hoog en abstract niveau dingen verzonnen worden waar de praktijk niets mee kan, maar die theoretisch erg goed bedacht zijn. Het mag duidelijk zijn dat de nieuwe HTML WG, nog voordat er aan de specificatie gewerkt gaat worden, goede waarborgen wil hebben dat het niet op eenzelfde debacle uitloopt als XHTML2. Verder zijn interessante punten op het gebied van interoperabiliteit: 'Well-Defined Behavior' en 'Handle Errors'. Het doel is om verwacht gedrag van elementen nauwkeurig te definiëren en juist niet teveel over te laten aan de interpretatie van browsermakers, zoals in het verleden veel gebeurde. De specificatie lijkt aldus auteurgericht te gaan worden: een webdeveloper moet kunnen verwachten dat wat hij conform de specificaties maakt, zich in verschillende user-agents hetzelfde gedraagt. Een lovenswaardig uitgangspunt, zo lijkt mij, evenals het streven om tot een uniforme wijze van foutafhandeling te komen. Als ik slechte HTML schrijf probeert elke user-agent daar op zijn eigen wijze nog iets toonbaars van te brouwen, wat natuurlijk erg ondoorzichtig is. Uniformiteit is daar gewenst. In tegenstelling tot de keiharde XML parse errors bij een fout in een XHTML-document, moet de nieuwe HTML specificatie gaan voorzien in een vergevingsgezinde (dat is dus niet draconische) foutafhandeling, zodat gebruikers niet worden geconfronteerd met de fouten van de webdeveloper.

Mooi, wanneer is het klaar?
Het schrijven van een goede specificatie kost tijd en dat is helemaal niet erg, want als hij goed is kan en moet hij ook jaren mee. De huidige planning ziet er als volgt uit.
  • 2007 mrt: bijeenroeping HTML Working Group
  • 2007 jun: First Working Draft
  • 2008 Q2: Last Call Working Draft
  • 2008 Q3: Candidate Recommendation
  • 2010 Q2: Proposed Recommendation
  • 2010 Q3: Recommendation
Uiteraard zal die planning aan wijziging onderhevig zijn, maar het lijdt geen twijfel dat het een project van meerdere jaren is en dat de nieuwe HTML-recommendation waarschijnlijk niet binnen tien jaar na het verschijnen van de laatste versie gereed zal komen. Nu zeuren dat het W3C te laat is geweest met het oppakken van de kritische signalen heeft geen zin, het is constructiever om vast te stellen dat er perspectief is op nieuwe ontwikkelingen die aan de eisen van het hedendaagse internet tegemoet zullen komen. Zo blijft het web niet steken in de twintigste eeuw en die hoop maakt veel ergernis goed. Met een verbeterde interoperabiliteit en een goede compatibiliteit zal het schrijven van een website onder de nieuwe specificatie wellicht op minder tijdrovende onzinproblemen stuiten dan nu het geval is. Dat vind ik goede vooruitzichten. Ik zal de aanstaande ontwikkelingen in ieder geval uit hobbymatige interesse met bijzonder grote belangstelling volgen. Wellicht dat ik zo nu en dan op deze site een update doe van een en ander.