1 februari 2008
Microsoft wil IE8 voorzien van een switch waarmee kan worden aangegeven voor welke browser-versie een website is gebouwd. Wordt deze switch weggelaten, dan rendert IE8 websites in de inferieure IE7-modus. Het idee erachter — websites koppelen aan browser-versies — is slecht doordat het het web fragmenteert.
Microsoft's advies tot en met IE6
Tot en met IE6 raadde Microsoft web developers aan websites te bouwen volgens de W3C-standaarden. Met conditional comments moesten zij om bugs in de verschillende IE-versies heen werken.
Dit advies ging uit van de W3C-standaarden. IE zat fout, en moest met extra stylesheets en dergelijke in het gareel worden gehouden. Dat werkt goed: websites kunnen volgens de standaarden worden gebouwd, en IE kan accuraat worden bijgestuurd zonder het HTML-document inhoudelijk aan te passen.
Microsoft's advies voor IE8
De opt-in switch voor IE8 ziet er als volgt uit.
<meta http-equiv="X-UA-Compatible" content="IE=8">
HTML-documenten kunnen worden vastgezet op specifieke browser-versies, met IE7 als standaard render mode in IE8. Met andere woorden, IE7 wordt in IE verheven tot standaard render mode voor websites.
Gevolgen van denken in browser-versies
Competente web developers ondervinden weinig last van deze opt-in switch: zij geven aan altijd de meest standards compliant render mode te gebruiken, de zogenaamde Edge mode. Het enige nadeel is dan, dat een extra META-element moet worden toegevoegd. Maar het web zelf blijft intact.
Maar ook incompetente mensen bouwen websites. Zij kopiëren stukken code zonder te weten wat er precies gebeurt. De IE7-switch wordt dus onbedoeld meegenomen. De website werkt in IE7 mode, en wordt online gezet met het idee dat deze volgens de standaarden is gebouwd. Hij doet 't toch?
Het web raakt dus gefragmenteerd, met aan de ene kant websites volgens de W3C-standaarden, en aan de andere kant websites volgens de IE7-standaard.
Doordat IE in toekomstige versies deze modi blijft ondersteunen, valt voor incompetente web developers de prikkel weg hun websites de W3C-standaarden te laten volgen. Gevolg is, dat er over honderd jaar nog websites zijn die afhankelijk zijn van de render modus van IE7. Zonder deze render modus is het web dus verminderd toegankelijk. Door de dominante markpositie van IE zal het gaan om een significant aantal website; IE bepaalt grotendeels de de facto standaard op het web.
Browser vendors als Opera en Mozilla worden daardoor gedwongen het gedrag van IE7 te reverse engineeren. Dit kost tijd en maakt web browsers nodeloos ingewikkeld. Erger nog, het maakt de drempel hoger voor nieuwe browsers om de markt te betreden.
IE Tab als voorbeeldoplossing
De Firefox-entensie IE Tab stelt gebruikers met één druk op de knop in staat een website in IE6 render mode te bekijken. De standaard engine van Firefox is standards compliant, terwijl website die afhankelijk zijn van IE6 ook gebruikt kunnen worden.
Dat lijkt mij de oplossing voor het probleem met websites die afhankelijk zijn van IE6. Microsoft moet de render engines loskoppelen en naast elkaar in IE8 zetten. Standaard wordt de standards compliant mode gebruikt. Een knop laat gebruikers indien nodig wisselen tussen de verschillende modi.
Problem solved?