Dit document is een Nederlandse vertaling van een Engelstalig document: |
De W3C Stijl pagina omvat een <blink> onderdeel. <blink> is geen HTML onderdeel en toch is de pagina geldig volgens sommige HTML controleurs. Wat is de truc?
Feitelijk is de pagina syntactisch gezien geldig, omdat het onderdeel beschreven wordt in het document. Zolang als onderdelen juist beschreven worden, is de pagina geldig volgens de strekking van SGML/XML.
Maar de pagina is semantisch gezien niet geldig. Het is een SGML document, maar geen HTML document. Er is geen officiële richtlijn die definieert wat <blink> betekent. De W3C Stijl pagina gebruikt een niet-standaard onderdeel als een grap. Als je de geschiedenis kent van CSS dan kun je je mischien herinneren dat CSS juist bedoeld was om te vermijden dat elke browser zijn eigen niet-standaard onderdelen uitvond, zoals <blink>.
Technisch gezien wordt het toevoegen van niet-standaard onderdelen gedaan door het schrijven van een “gebruikerspecifieke DTD” en ingevoegd in de eerste regel van het document (de DOCTYPE regel). Een gebruikerspecifieke DTD kan bijvoorbeeld gemaakt worden door de HTML4 DTD te kopiëren en te veranderen.
Doe dit niet! Documenten dienen zowel een betekenis te hebben als een correcte syntax. SGML en XML definiëren slechts syntax. HTML en XHTML definiëren betekenis. Als je onderdelen toevoegt die niet gedefinieerd worden door een richtlijn, dan weet alleen jij wat zij betekenen. En over 20 of 50 jaar kan het zo zijn dat zelfs jij het niet meer weet…..
Natuurlijk kun je experimenteren door bijvoorbeeld te werken aan toekomstige web opmaak, maar in andere gevallen zou je geen eigen onderdelen moeten gebruiken.