De site van H.J. de Boer

Homepage van H.J. de Boer > Frontpage

Over Internet Explorer 7, CSS 2.1 en bugs


Update 24 februari 2006: zie in dit verband ook "IE7 en compatibiliteit met oude CSS-hacks".


Internet en Firefox in worstelingIn "We've come to it at last... IE7 in voorbereiding" schreef ik nogal sarcastisch over de aankondiging van de nieuwe versie van Internet Explorer. Ik noemde een lijstje op met zaken die grondig aangepakt zouden moeten worden, maar waar de ontwikkelaars bij de eerste aankondiging met geen woord over repten. Het enige waar zij de mond over vol hadden, waren de veiligheidsaspecten. Ook belangrijk... maar als je nou toch een featurerelease gaat doen, neem dan ook meteen even een degelijke render-engine in je lijstje mee, zo denk ik dan. Inmiddels zijn we een dik half jaar verder en zijn de eerste bèta-versies van het programma verschenen. Ook wordt de wereld op de hoogte gehouden van de vorderingen door middel van het weblog van het ontwikkelteam.

Nu de security issues voldoende lijken te zijn getackled door de ontwikkelaars, komt met nu aan de volgende zaken toe. Voor velen onverwacht worden er ineens blogs gepubliceerd over IE en CSS en IE en XHTML. De ontwikkelaars verzekeren ons dat zij heus wel meelezen op sites als Position is everything en Quirksmode en dat zij de aanbevelingen daar echt wel ter harte nemen. Als gevolg daarvan is er al een hele serie bekende bugs gefixt. Dit zal dan in bèta 2 zichtbaar moeten zijn. Het gaat om:

Met het fixen van de Peekaboo bug is het probleem van naar beneden verschuivende content opgelost, zoals ik dat beschreef in "Weg met Internet Explorer - deel 2: de italicbug". Voor zover ik kan zien is de italicbug, die óók voortreffelijk beschreven staat bij Position is everything, niet opgelost; hij is althans helaas niet terug te vinden in het bovenstaande lijstje. Of dat een bewuste keuze is geweest, of het nog moet gebeuren, of dat ze er geen oplossing voor weten... blijft in het midden. Gelukkig zijn daar dus wel degelijke CSS-hacks voor, maar dat blijven hacks die een workaround vormen voor een bug. Geen ideale situatie dus. Blijft het feit dat dit een indrukwekkende lijst van fixes is, en dat het IE7 een heel wat acceptabeler user agent maakt om rekening mee te houden, dan IE6. Hopelijk upgraden de verstokte IE-gebruikers dan ook snel na het uitkomen van de nieuwe versie. (Overstappen naar Firefox zou uiteraard beter zijn. :+)

Het blijft echter niet bij die bugfixes. Er worden ook nog wat features toegevoegd:

W3C - CSS 2.1De toevoeging van ondersteuning voor abbr is vanuit semantisch oogpunt een goede winst. Ondersteuning voor de CSS 2.1 selectors en fixed positioning is een uitkomst en daar ben ik heel erg blij mee. Het betekent heel wat meer kans op valid style sheets, omdat het aantal benodigde hacks af zal nemen. Transparantie van *.png-afbeeldingen is ook iets waar veel webdevelopers erg blij mee zullen zijn. Het gebrek aan support hiervoor in IE is velen jarenlang een doorn in het oog geweest. Ik heb het dan ook genoemd als een van de redenen om op een andere browser over te stappen in "Weg met Internet Explorer! Firefox to the people!". Toevoeging van ondersteuning voor de pseudo-class :hover op alle elementen is iets dat al lang geïmplementeerd had moeten zijn; dat Microsoft het zo lang beperkt heeft gelaten tot het a-element is natuurlijk waardeloos. De nieuwe ondersteuning maakt bijvoorbeeld pure CSS-uitklapmenuutjes zonder hulp van Javascript mogelijk (zoals dat nu al op deze site werkt voor Firefox en Opera). Heerlijk. In Standards and CSS meldt lead developer Chris Wilson dat zijn team vastbesloten is om IE standards compliant te maken uiteindelijk:
quote:
I want to be clear that our intent is to build a platform that fully complies with the appropriate web standards, in particular CSS 2 ( 2.1, once it's been Recommended). I think we will make a lot of progress against that in IE7 through our goal of removing the worst painful bugs that make our platform difficult to use for web developers.
[...]
I do want to be clear that I believe the Web Standards Project and my team has a common goal of making the lives of web developers better by improving standards support, and I'm excited that we're working together to that end.

Logo WaSP - Web Standards ProjectAls je niet oppast gaat het nog een mooie wereld worden ook. Nu wordt Internet Explorer standards compliant, volgend jaar de wereldvrede tot stand brengen? :P
Zonder dollen, dit zijn natuurlijk goede initiatieven, ondanks dat ze helaas rijkelijk laat zijn ingezet. Het zal echt een hoop schelen voor de gemiddelde websitebouwer wanneer dit soort zaken allemaal zo worden geïmplementeerd als er nu beloofd wordt. Daarmee zeg ik niet dat je niet meer over zou moeten stappen op Firefox, want Firefox ligt alweer drie straatlengtes voor met de implementatie van bijvoorbeeld CSS3 selectors hoewel ze zich daarmee natuurlijk op glad ijs begeven zolang dat document nog een Candidate Recommendation is! Oók dat zou kunnen leiden tot een incompatible web, wanneer developers nu al vooruitlopend op die Recommendation gebruik maken van reeds in Firefox geïmplementeerde features, die het uiteindelijk misschien niet halen in de specificatie van de standaard. Dat echter terzijde; Mozilla loopt momenteel voorop in de ondersteuning van standaarden en dat is belangrijk voor de ontwikkeling en acceptatie daarvan.

Blijft er nog één onderdeel over waar ik het nog niet over gehad heb: Internet Explorer en XHTML; ofwel: het gebrek aan ondersteuning daarvan. De reden waarom ik bijna een jaar geleden pleitte voor het boycotten van IE door webdevelopers, gewoonweg door hun pagina's in XHTML 1.1 op te maken, zodat deze sites volgens de specificatie niet als text/html naar clients mogen worden gestuurd, die het application/xhtml+xml MIME-type niet ondersteunen. Ikzelf heb die stap echter nog steeds niet gemaakt, en in tegendeel juist een geavanceerder vorm van content negotiation geïmplementeerd dan ik daar beschreef; nu serveer ik aan IE valid HTML 4.01 als text/html en aan browsers die wél XHTML aankunnen serveer ik dat ook daadwerkelijk als application/xhtml+xml. In deze situatie zal niet snel verandering komen, nu blijkt dat ook IE7 geen ondersteuning zal hebben voor het XHTML MIME-type. De reden die door Chris Wilson hiervoor geeft, is het feit dat hij XHTML op lange termijn succesvol wil laten zijn.

Volgens Wilson heeft XHTML de potentie om zeer goed interoperabel te zijn, maar dan moet het wel goed geïmplementeerd zijn. Nu de grootste inspanning door het ontwikkelteam wordt gestoken in achtereenvolgens veiligheid en oplossen van renderbugs en uitbreiden van CSS-ondersteuning, zou de tijd ontbreken om een degelijke XHTML-implementatie te verzorgen. Het zou er op uitgekomen zijn dat de huidige HTML-parser voorzien zou worden van een aantal XML-toevoegingen. Wilson betwijfelt of dat tot een goede support van XHTML zou leiden. Veeleer denkt hij dat het nieuwe fouten op zou leveren, die niet op tijd opgemerkt zouden worden, waardoor ook hier stilzwijgend invalid gevallen 'ondersteund' zouden kunnen worden door de browser. Hierdoor zou weer een compleet nieuwe serie van compatibiliteitsproblemen gecreëerd worden, wat later een groot probleem zou worden wegens de strikte foutafhandeling die het parsen van XML in beginsel vereist. Dan zou eenzelfde probleem ontstaan als nu met de foutafhandeling van HTML, die gelegen is in de compatibiliteit met legacy browsers. Wilson neemt daar persoonlijk de verantwoordelijkheid voor en stelt dat dat niet zozeer aan IE te wijten is. Hij stelt liever ná de release van IE7 goed de tijd te nemen voor een integraal juiste implementatie van XHTML, dan nu een halfbakken product af te leveren dat bovengenoemde problemen kan veroorzaken.

In het licht van de aanstaande verbeteringen op HTML- en CSS-gebied, die ontzettend hard nodig zijn, en bovendien in aanmerking genomen dat het inderdaad belangrijker is dat een XHTML-implementatie standards compliant is en alle test cases juist doorstaat, dan dat deze binnen nu en een paar maanden gereleast wordt, mag dit standpunt als juist en lovenswaardig aangemerkt worden. Met een slag om de arm hoe alle beloofde features uiteindelijk uitgevoerd worden, moet toegegeven worden dat het IE-developers team onverwacht serieus werk lijkt te gaan maken van implementatie van standaarden. Tenzij hier natuurlijk weer een eigen interpretatie aan gegeven wordt en de toevoegingen van proprietary elementen de goede bedoelingen weer vertroebelen. Vooralsnog zie ik het echter wel positief in met de toekomst van Internet Explorer.