Opera Software kunngjorde i går at selskapet nå tilbyr en testversjon av Opera 11 med en helt ny versjon HTML-parser. En parser er en syntaksanalysator. I nettlesere er en HTML-parser den komponenten som tolker innholdet som står i HTML-dokumentene og gjør dette om til DOM-trær (Document Object Model). Blant oppgavene er også å håndtere feil bruk av HTML-taggene.
Dagens HTML4-spesifikasjon definerer ifølge Opera hva som skal gjøres med korrekt formatering, men ikke hva som skal gjøres med feilaktig formatering. De fleste nettlesere forsøker å gjette hvordan formateringen burde ha vært og produserer DOM på bakgrunn av dette.
Men så lenge det ikke er en enkelt standard for hvordan dette skal gjøres, håndterer ulike nettlesere slike feil på forskjellig måte. Dette kan føre til at det produseres ulik DOM i ulike nettlesere, noe som ikke minst gjør det vanskelig dersom en utvikler ønsker å manipulere DOM med JavaScript.
Den kommende HTML5-spesifikasjonen løser dette ved at den spesifiserer hvordan alle deler av parsingen skal gjøres gjennom det som kalles for HTML5 Parsing-algoritmen. Den skal sikre at også feilaktig formatering i HTML-dokumenter håndteres likt av de ulike nettleserne. Det vil si nettlesere som har implementert algoritmen.
«Ragnarök» er navnet på Opera første nye HTML-parser på 15 år og implementerer HTML5 Parsing-algoritmen. Den gamle parseren har stort sett fungert på samme måte i alle år, men har blitt modifisert en rekke ganger for å håndtere nye måter for feil bruk av webstandardene.
– Etter alle endringene her og der begynte koden virkelig å ligne på et overpyntet juletre, og å legge til mer uten å velge treet, ble stadig vanskeligere, skriver Operas Bruce Lawson og Stig Halvorsen i dette blogginnlegget, som også inneholder nedlastingslenker til Opera 11 med Ragnarök.
Ved å skrive om hele parseren, skal utviklerne også ha fått ryddet opp betydelig opp i designen. Selv i dagens ikke-optimaliserte utgave har dette ført til noen mindre ytelsesforbedringer, men også noe mer bruk av minne. Lawson og Halvorson skriver at man håper å forbedre begge deler innen Ragnarök er ferdigutviklet.
Opera Software har laget en testsuite basert på html5lib-testene, og Ragnarök består så godt som alle testene. Resten skal fikses innen parseren anses som ferdig. Da vil selskapet også gjøre testsuiten offentlig tilgjengelig, slik at alle kan sammenligne Opera med andre nettlesere. En mindre omfattende parsing-test finnes allerede her.
Google Chrome 7 var etter alt å dømme den første av de fem vanlige nettleserne som fikk støtte HTML5 Parsing-algoritmen. Den stadig mer forsinkede Firefox 4 implementerer også algoritmen. Det vil trolig også neste versjon av Safari gjøre, siden WebKit-prosjektet var godt i gang med dette allerede tidlig i fjor høst.
Mer uklart er det med Internet Explorer 9. Den skal ha bedre HTML5-parsing enn forgjengerne, men digi.no har så langt ikke funnet noen konkret informasjon om at denne delen av spesifikasjonen er hundre prosent implementert. IE9 Platform Preview 8 som ble gitt ut samtidig med IE9 RC den 10. februar, greier bare ett av elleve poeng i deltesten «Parsing rules» på The HTML5 Test-siden. Dette tilsvarer det standardutgaven av Opera 11 og Firefox 3.6 greier. Både Chrome og Opera 11 med Ragnarök får 13 poeng, hvorav to er bonuspoeng for parsing av integrert SVG og MathML i HTML5.
Opera Software understreker at denne testen ikke er særlig omfattende og at resultatene derfor er ganske villedende.
Digi.no har sendt Microsoft en forespørsel om implementeringen av HTML5 Parsing-algoritmen i IE9 og vil oppdatere saken når vi får et svar på dette.