Hoewel HTML en XHTML grote overeenkomsten hebben, kan het gebruik van XHTML tot complicaties leiden. Webontwikkelaars die overwegen XHTML te gebruiken voor websites, wordt aangeraden dit onderdeel aandachtig te lezen.

Inhoudsopgave


HTML, XML en XHTML

HTML is een markup taal volgens de regels van een veel omvangrijkere en oudere taal, SGML (Standard Generalized Markup Language). XML (Extensible Markup Language) is ook een taal afkomstig van SGML, maar één die is gericht is op het gemak van implementatie in diverse applicaties (niet alleen webbrowsers), vanwege de transparantie en uitbreidbaarheid. XML is een markup taal voor het beschrijven van markup talen; XML biedt ontwikkelaars de mogelijkheid nieuwe markup talen te schrijven. XHTML is zo’n ‘nieuwe’ markup taal.

Naar boven

Wat is XHTML

XHTML (Extensible Hyper Text Markup Language) is een herformulering van HTML volgens de regels van XML (Extensible Markup Language). XHTML wordt wel de opvolger van HTML genoemd. In feite is XHTML niet echt nieuw, omdat het grotendeels HTML is. De manier waarop het is opgebouwd en door applicaties wordt verwerkt is echter anders.

Vergelijk HTML met een kantoorpand dat gebouwd is in baksteen. Omdat omstandigheden, toepassingen en voorschriften veranderen, wordt er besloten het pand te slopen en te herbouwen in glas en beton: XHTML. Het is hetzelfde pand, alleen anders opgebouwd.

Verschillen tussen HTML en XHTML

De verschillen tussen HTML en XHTML zijn klein. Omdat de regels van XHTML gebaseerd zijn op die van XML, geldt dezelfde bijzondere striktheid in het hanteren van die regels als bij XML. Hier volgen de belangrijkste verschillen.

  • XHTML documenten moeten starten met een XHTML DocType declaratie.
  • Alle elementen moeten afgesloten worden: ook de elementen die volgens de HTML 4.01-specificatie optioneel zijn om af te sluiten. Elementen als <br> en <img> waarvoor geen eindtag bestaat, moeten worden afgesloten met een / (forward slash); dus <br /> en <img />.
  • Alle markup moet onderkast (lowercase, kleine letters) worden geschreven.
  • Alle attribuutwaarden moeten omsloten worden door aanhalingstekens (double quotes).

Links en referenties

Drie varianten

XHTML 1.0 heeft, net als HTML 4.01, drie varianten: Transitional, Strict en Frameset. Voor uitleg over deze varianten en het gebruik ervan, wordt verwezen naar R-pd.2.1: Gebruik HTML 4.01 of XHTML 1.0 volgens de W3C specificaties voor de markup van websites.

XHTML 1.1

XHTML 1.1 heeft deze driedeling niet; het gebruik van XHTML 1.1 voor websites wordt echter niet aangeraden vanwege de strikte kenmerken van deze standaard en de problemen met ondersteuning door webbrowsers.

Naar boven

Voor- en nadelen van XHTML

Het gebruik van goede, structurele markup volgens de regels van HTML 4.01 is al een hele opgave voor webontwikkelaars. Het gebruik van markup volgens de regels van XHTML gaat nog een paar stappen verder. Om tot een afgewogen keuze te komen tussen het gebruik van HTML of XHTML, volgen hier enkele voor- en nadelen van XHTML.

Voordelen

  • Duurzaamheid.

    Toepassingen op het Web bewegen richting XML. Het nu al gebruiken van XHTML in plaats van HTML maakt een eventuele toekomstige overgang van een website eenvoudiger.
  • Uitbreidbaarheid.

    Vanwege de uitbreidbaarheid (‘extensibility’) van XML, kunnen XHTML documenten via namespaces aangevuld worden met andere vormen van markup, zoals MathML (Math Markup Language) en SVG (Scalable Vector Graphics), of eigen markup varianten. Browsers die dergelijke toepassingen ondersteunen, zijn echter dungezaaid.
  • Uitwisselbaarheid.

    Omdat XHTML documenten geschreven zijn volgens de regels van XML, kost het XML verwerkende programma’s weinig moeite om een XHTML-bestand naar een bestand van een ander formaat (bijvoorbeeld PDF, RSS of RTF) om te zetten.
  • Efficiëntie van verwerkende applicaties.

    Wanneer browsers ondersteuning bieden voor XHTML-documenten en de strikte regels van XML, kunnen ze sneller worden vanwege kortere foutafhandelingsroutines. Op dit moment nog gaat een groot deel van de verwerkingskracht van een browser op aan liberale foutafhandeling van documenten die misvormde HTML-markup bevatten. Dit is de erfenis van een snel, maar chaotisch groeiend internet.

Nadelen

  • Beperkt praktisch nut.

    Op dit moment zijn er vrijwel geen browsers die voordelen bieden bij het ontvangen en verwerken van XHTML documenten; de meest gebruikte browser (Microsoft Internet Explorer) ondersteunt zelfs geen XHTML.

Bovengenoemde voordelen zijn grotendeels theoretisch en in enkele gevallen praktisch van aard (bijvoorbeeld bij het verwerken aan de server-side van XHTML naar andere formaten of het testen van de markup op validiteit).

Naar boven

Ondersteuning van XHTML en de complicaties

Het huidige gebruik van HTML-markup doet zich voor in drie vormen. Lees meer over MIME types…

  1. HTML-documenten die geserveerd worden met MIME type text/html.

    Zo worden websites het meeste toegepast. Dit is de correcte manier voor HTML documenten.
  2. XHTML-documenten die geserveerd worden met MIME type text/html.

    Browsers zullen deze documenten niet interpreteren als XHTML, maar als HTML, omdat het MIME type dat zegt. De enkele XML-specifieke kenmerken van de markup zullen worden genegeerd (zoals een browser dat doet met alle markup die hij niet herkent). Omdat het document als HTML wordt geïnterpreteerd, komen eventuele praktische voordelen die het als XHTML-document zou hebben te vervallen.
  3. XHTML-documenten die geserveerd worden met MIME type application/xhtml+xml.

    Dit is de correcte wijze waarop XHTML-documenten worden geserveerd. Het is echter ook de minst voorkomende wijze, vanwege gebrekkige ondersteuning door sommige browsers voor dit MIME type en de onervarenheid van veel webontwikkelaars met MIME types in het algemeen.

De meest gebruikte webbrowser van dit moment – Microsoft Internet Explorer – ondersteunt geen XHTML volgens vorm 3. Als het document van de server wordt aangeboden als XHTML (MIME type: application/xhtml+xml), zal deze browser zich daarin verslikken door het niet als webpagina weer te geven. Daarom zorgen veel webontwikkelaars ervoor dat het document wordt aangeboden als HTML (MIME type: text/html), zoals in vorm 2. Browsers die wel XHTML ondersteunen, zullen echter het document daardoor niet interpreteren en behandelen als XML, maar als een HTML-document.

Browsers die op dit moment XHTML (vorm 3) ondersteunen, zullen het weergeven van het document onderbreken als er een fout in de markup wordt geconstateerd. Dit vormt een ernstig obstakel in de toegankelijkheid van het document. Fouten in de markup behoren uiteraard door webontwikkelaars vermeden te worden, maar deze fouten blijven realiteit.

Indien door webontwikkelaars gekozen wordt voor het gebruik van XHTML markup hoog ligt, wordt aangeraden om (voorlopig) het MIME type text/html te gebruiken voor XHTML bestanden (vorm 2), en vorm 3 alleen te gebruiken voor evaluatie- en testdoeleinden.

Naar boven

XHTML voor websites

Er wordt geadviseerd XHTML te gebruiken wanneer het plan bestaat om tevens intensief gebruik te maken van DOM (Document Object Model). Wanneer voor XHTML wordt gekozen, moet de webontwikkelaar zich uiteraard bewust zijn van de voor- en nadelen van het gebruik. Ook moet men zich houden aan de XHTML-specificatie, en de adviezen voor de drie bestaande varianten opvolgen.

Het gebruik van XML voor tekstdocumenten van de overheid wordt overigens aangeraden in Artikel 6-b van de Regeling geordende en toegankelijke staat archiefbescheiden. Valide XHTML voldoeet aan de XML-specificatie.

Het gebruik van XHTML 1.1 wordt vooralsnog niet geadviseerd, vanwege de zeer strikte kenmerken van deze standaard en problemen met ondersteuning door webbrowsers. XHTML 1.1 moet namelijk het MIME type application/xhtml +xml gebruiken, zoals in vorm 3. Dit heeft tot gevolg dat de meest gebruikte webbrowser Microsoft Internet Explorer deze documenten niet langer als webpagina’s herkent.

Naar boven