Over Internet Explorer 7, CSS 2.1 en bugs
Permalink · Geplaatst op 19 September 2005 om 18:55
Update 24 februari 2006: zie in dit verband ook "IE7 en compatibiliteit met oude CSS-hacks".
In "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:
- Peekaboo bug
- Guillotine bug
- Duplicate Character bug
- Border Chaos
- No Scroll bug
- 3 Pixel Text Jog
- Magic Creeping Text bug
- Bottom Margin bug on Hover
- Losing the ability to highlight text under the top border
- IE/Win Line-height
- Doubled Float Margin
- Quirky Percentages in IE
- Duplicate indent
- Moving viewport scrollbar outside HTML borders
- 1 px border style
- Disappearing List-background
- Fix width:auto
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:
- HTML 4.01 ABBR tag
- Improved (though not yet perfect) <object> fallback
- CSS 2.1 Selector support (child, adjacent, attribute, first-child etc.)
- CSS 2.1 Fixed positioning
- Alpha channel in PNG images
- Fix :hover on all elements
- Background-attachment: fixed on all elements not just body
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.
[...]
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.
Als je niet oppast gaat het nog een mooie wereld worden ook. Nu wordt Internet Explorer standards compliant, volgend jaar de wereldvrede tot stand brengen? 
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.