xhtml strict is mij te streng
Webstandaards zijn er om te worden gevolgd. Het door Tim Bernes-Lee opgerichtte W3C is de belangrijkste organisatie wat betreft het doen van aanbevelingen en het opstellen van internet standaards. Zo komen onder andere HTML, XML, XHTML en CSS uit de hoge hoed van het W3C.
Hiervan zijn de CSS en XHTML specificaties voor mij het meest interessant. Indien mogelijk probeer ik mijn markup- en stijlblad-code dan ook volgens de regels van de W3C specs te schrijven. Af en toe links en rechts in de spagaat vliegend om browserbugs of parse-eigenwijsheden van vooral Internet Explorer te omzeilen, maar dat terzijde.
Ik durf mezelf dus wel een trouwe volgeling te noemen. Maar ook
de richtlijnen van het W3C kunnen mij, brave borst die graag streng in de code
kloppende leer wil zijn, teveel worden. Een goed voorbeeld hiervan is de XHTML
doctype declaratie. Ik ben de eerste om het toe te geven: het is best opwindend
om door middel van een validator-linkje aan te kunnen tonen dat je pagina's
voldoen aan de XHTML standaard. Een dikke pluim op je hoed van het W3C, wie
gaat daar niet van glimmen? Overlopend van trots biedt je de W3C validator
een hapje code aan waarin het beest zich niet kan verslikken.
Maar verder als transitional ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
... wil ik voorlopig niet gaan.
Hoezo? In een aanval van clean coding woede besloot ik onlangs om één
van m’n speelweide-webjes eens om te bouwen naar strict ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
... Echter, al ras keerde ik op mijn schreden terug na het lezen van de voorwaarden
waaraan een xhtml strict document moet voldoen. Waarom die ommekeer? Nou,
het is naar mijn mening onverteerbaar om het target attribuut
van de anker tag in de ban te doen. Hiermee word ik beroofd van een stuk controle
over het openen van links. Want ik wil bijvoorbeeld niet dat externe links
in hetzelfde venster als het huidige laden. Voor je begint te sputteren dat
er alternatieve manieren zijn om dit te bewerkstelligen: dat is zeker waar.
Met javascript valt het doelvenster natuurlijk ook te sturen:
onclick="this.target=’_blank’;"
Alleen, ervan uitgaande dat een aantal mensen scripting zullen hebben uitgezet,
ben ik altijd erg huiverig om (kritische) functionaliteit op te hangen aan
clientside scripting. Javascript is voor mij in dit geval dan ook geen optie.
En ja, ik ben me ervan bewust dat een browser als Firefox door middel van
de tabbrowser preferences extensie in staat is om het openen van een link in
een nieuw venster te negeren. Ik ga er echter vanuit dat het een bewuste actie
is als een Firefox gebruiker pagina's met _blank als doelvenster
in een nieuw tabblad in plaats van een nieuw venster laadt. En dat hij/zij
gemakkelijk de weg terug naar mijn pagina's weet te vinden.
Ben je van mening dat ik hierboven uit mijn nek loop te kletsen? Laat het me weten via blah@quirkystuff.nl. Totdat iemand mij weet te bekeren, komen de verkondigers van het xhtml strict evangelie er bij mij nog niet in.
Update 07.07.2005:
Inmiddels is er enige tijd verstreken sinds het schrijven van het bovenstaande
en ben ik overstag gegaan. Hetgeen betekent dat ik, waar mogelijk, het XHTML
strict doctype zal gebruiken. Zoals bijvoorbeeld op deze website.