Firefox slaagt ook voor Acid2-test

Nadat eerder al Safari, iCab, Konqueror en Opera in staat waren om de Acid2-test correct te renderen, kan nu ook Firefox aan dit rijtje toegevoegd worden. Op het weblog van Zbigniew Braniecki, een Poolse Mozilla-developer, is namelijk een screenshot te vinden van een Acid2-rendering in een Firefox-build. Gezien de titel van de webpagina op het screenshot gaat het hier echt om de rendering zelf en niet om de reference rendering. Ondanks dit mooie succes zal het nog wel enige tijd duren voordat deze code zelf in de Gecko-renderengine zal komen. Firefox 2.0 zal namelijk, evenals Firefox 1.5, gebaseerd zijn op Gecko 1.8. Weliswaar is het een nieuwere versie van de renderengine, maar Acid2-support zal er niet inzitten. De reden daarvoor is dat er gewerkt wordt aan Gecko 1.9.

Een van de grote veranderingen in die release van de renderengine is de manier waarop elementen op webpagina's gepositioneerd en van afmetingen voorzien worden. Op dit moment is die code erg moeilijk onderhoudbaar en is het oplossen van bugs en het toevoegen van nieuwe features dan ook vrijwel onmogelijk. Om alle problemen op dit gebied, met name op het gebied van de complexiteit van CSS, op te lossen is daarom besloten de code te refactoren en 'future proof' te maken. Dit ontwikkelproces is nog lang niet afgerond, maar de eerste resultaten zijn dus in de vorm van een renderende Acid2-test wel zichtbaar aan het worden. Als het goed is zal deze verbeterde code onderdeel worden van Gecko-versie 1.9 en daardoor opgaan in Firefox 3.0, dat in Q1 2007 moet verschijnen.

Acid2 in Firefox/Gecko/Mozilla

Door Harm Hilvers

Freelance nieuwsposter

12-04-2006 • 22:42

56

Bron: stream of thoughts

Reacties (56)

56
52
33
16
5
6
Wijzig sortering
Anoniem: 170345 13 april 2006 00:21
Safari was niet de eerste. Opera TP2 build 8249 was de eerste die het goed deed. (dus zonder scroll bar, maar wel scrollbaar)

Build 8249 is nooit ge-released, maar de opvolgers wel, die naar mijn weten allen slagen voor de Acid2-test: build 8265, build 8303, build 8321, build 8326, build 8333, build 8348, build 8359 en build 8367.
Die build van Opera was de tweede die goed renderde. Safari was zeker wel de eerste, en deed dit al flink wat maanden voor de nieuwe Merlin engine van O9 dit deed.
Sommigen beweren echter dat Konqueror en iCab nog voor O9 kwamen, maar deze bevatten nog de scrollbar-fout.
Anoniem: 168910 12 april 2006 23:07
Iedereen gaat voorbij aan wat er hier daadwerkelijk getest wordt. Hoe met fouten in een html-document (dat zich dus niet netjes aan de standaarden houdt) omgegaan wordt.

Zodat zelfs _foutieve_ sites identiek gerendert zullen worden.
Ik kan me voorstellen dat dit geen prioriteit heeft voor de meeste browsers. Er zijn prima tools die je vertellen wat en waar er mis is met je html-code waardoor het niet standaards-compliance is.

Dat dingen als <b >> hello world! <</b> er verschillend uit zien op browsers is not a big issue for web developpers. De mensen die html-code met de hand schrijven weten wel hoe ze hun code moeten checken en diegene die WYSYWYG tools gebruiken zullen dit soort syntax fouten niet scheppen.

Dus het gaat om gestandaardiseerde fall-back behaviour en dit is niet eens onderdeel van de huidige gangbare standaarden. Ik zou ook prima met het alternatief kunnen leven dat een browser gewoon keihard weigert de pagina te renderen als er fouten op zitten! Dat zou dan meteen _de_ browser van web-developpers worden.
Ik zou ook prima met het alternatief kunnen leven dat een browser gewoon keihard weigert de pagina te renderen als er fouten op zitten! Dat zou dan meteen _de_ browser van web-developpers worden.
Ik ook wel, alleen het zou ook gelijk *niet* de browser van gebruikers worden.. dus echt veel schiet je er niet mee op.

Maar goed, firefox doet dit toch al met xhtml 1.1?
Alleen als je het netjes als application/xhtml+xml serveert - iets waar IE niet mee kan, ondanks dat IE6 */* als accept-header meestuurt.

Maar dan nog, feitelijk de enige confirmatie die je dan hebt, is dat je XHTML well formed is. Valid is weer wat anders.
Anoniem: 155508 12 april 2006 22:48
kan iemand mij uitleggen wat een acid 2 test inhoud :?
ACID 2 is niets meer dan een verzameling van verkeerde en illigale CSS. om een html pagina op te maken.
De browser moet deze op de juiste manier afhandelen, echter wordt dit vaak gezien als "niet nuttig" omdat er vanuit wordt gegaan dat html pagina's aan "de standaard" voldoen.

Echter weten we allemaal dat dit bijna nooit het geval is.

edit @ hertog
Nee dat is nu juist het punt, van de acid website:
CSS parsing — Acid2 includes a number of illegal CSS statements that should be ignored by a compliant browser.

@prodoc

ja, maar de browsers vallen vooral over het feit dat er illigale css in zit, de andere features kunnen ze wel aan en zijn zoals ik al zei "volgens de regels".
De reden waarom MS vertikt om het te verbeteren is omdat het geen verkeerde css wil interpeteren, of soms wel gewoon wil interperteren om misschien downwards compatiable te blijven of weet ik veel wat voor smoesen ze nog meer hebben :)

ps: overbodig?
Dit is niet helemaal correct, 'illegal CSS statements' is een onderdeel van de totale test.

Kort samengevat bevat de test het testen van de browser ondersteuning op de volgende ondelen:
- Transparent PNGs
- The object element
- Absolute, relative and fixed positioning
- Box model
- CSS tables
- Margins
- Generated content
- CSS parsing (incl. CSS fouten)
- Paint order
- Line heights
- Hovering effects

Voor een uitgebreide beschrijving kun je hier terecht: http://webstandards.org/files/acid2/guide.html
Hoezo verkeerd en illegaal, het is toch juist geheel volgens de standaarden opgebouwd, maar dan met zo veel mogelijk standaarden die ergens niet gebruikt worden erin?
In Acid2 zit bewust een hoop foute code. De standaard kent regels over hoe fouten afgehandeld moet worden, en met deze test kan geprobeerd worden of dat ook daadwerkelijk zo gebeurt.
In Opera ziet ie er ook best goed uit
Version 8.51
Build 7712
hier op't werk :)

Ah ik zie het al waarom ie zo gaar is, verouderde versie :(

* Noxious pokes office automation
Wat mij betreft is dit geen echt "slagen". Dat is pas het geval als een gereleaste versie ook echt slaagt voor de test.
Het zal me echt mijn reet roesten of een browser een of andere obscure test met opzettelijke fouten goed kan renderen, zolang die browser maar netjes mijn correcte CSS1 en CSS2 weergeeft.
Maar ACID2 is volledig correcte CSS2. CSS2 definieert namelijk allerlei regels over hoe met onbekende code moet worden omgegaan, alsook hoe bepaalde tegenstrijdige code elkaar overruled.

body {
blaat-setting: 123;
}

Dit is prima CSS2. Als de browser toevallig geen support heeft voor blaat-setting, dan hoort hij deze te negeren.

Edit: [code][/code] verwijderd
Anoniem: 66468 12 april 2006 23:11
Hoe maak je een test als je het niet kan testen in een browser?
Door middel van de CSS standaard, dan kun je bepalen wat de test zou moeten doen.
Anoniem: 168910 12 april 2006 23:13
Check ook de comments in de source van de acid-test:

/* should have no effect, since parent has top&bottom borders, so this margin doesn't collapse */

Ze gebruiken dus eigenschappen die volgens de standaard niet tezamen zouden moeten gebruikt worden. Dit document is dus niet standard-compliant!
Het document is misschien niet standaard compliant, maar wel wordt beschreven wat de reactie van de browser zal moeten zijn, wil deze aan de CSS1/CSS2 standaarden voldoen. Op die manier kan dus wel worden gekeken of de browser correct met een (wellicht) incorrect opgemaakte pagina omgaat.
Ja, dat is bekend, er staat toch ook dat ze op die plaats testen of er correct omgegaan wordt met de foutieve code ;)
Firefox slaagt helemaal nergens in. Ik snap de kop dan ook niet. Die zou eerder "Firefox zal in de toekomst slagen voor de Acid2-test" moeten zijn.
Eigenlijk:

Gecko development version slaagt voor ACID2
Minder pakkend, maar wel correct.
Gezien de titel van de webpagina op het screenshot gaat het hier echt om de rendering zelf en niet om de reference rendering. Ondanks dit mooie succes zal het nog wel enige tijd duren voordat deze code zelf in de Gecko-renderengine zal komen.
Ik vind het alleen vreemd als het om een echte test gaat dat er niks in de addres bar staat.
Je gebruikt alleen de verkeerde CSS versie. Die CSS validator gebruikt standaard CSS2, terwijl Acid2 CSS2.1 is.

Dit is de goede URL: http://jigsaw.w3.org/css-...file=css21&usermedium=all

Dan zie je dat er een stuk minder errors zijn en dat zijn parse errors die zijn opgetreden. Maar die errors zijn er opzettelijk ingestopt en moeten volgens de CSS2.1 specificaties afgehandeld worden.

Bijvoorbeeld regel 44: [class=second two] { background: red; } /* this should be ignored (invalid selector -- grammar says it only accepts IDENTs or STRINGs) */

class=second two zou class="second two" moeten zijn (dit is namelijk een string en een 'string' is in CSS een blok tekst die opgeven wordt door enkele of dubbele aanhalingstekens (respectievelijk ' en ")). Als gevolg van die syntaxfout zegt de CSS- specificatie dat dat hele blok niet geparsed moet worden.

Dus ja, het ís foute code, maar dat is juist om te kijken of de foutafhandeling van een webbrowser geschiedt volgens de documentatie.
Het lijkt alsof Acid2 een doel is geworden, ik dacht dat het meer een soort van test was..

Fat chance dat Microsoft met IE dit ook ooit gaat halen, gezien de troep die ze zelf produceren met frontpage en word ..
Het IE team heeft op hun blog al aangegeven dat de ACID test geen doel is.
Bovendien is het definitieve rendering niveau voor IE7 al bereikt en dat kan de de ACID2 test niet correct vertonen.

Op zich is het ook niet nodig. De ACID test bevat beijvoorbeeld conflicterende code waarvan je dus een interpretatie moet maken hoe die te renderen. Je kunt dus in theorie 100% aan de CSS 2.1 standaards voldoen (wat overigens geen enkele browser doet) en toch de ACID2 test niet kunnen renderen zoals de makers daarvan het willen.
Wie zegt dat het een doel is?
Omdat Word tientallen output mogelijkheden heeft, waaronder html, wilt dat nog niet zeggen dat Word gebouwt is om websites te maken :?
Nee, maar aangezien veel "webbouwers" de inhoud middels een office document krijgen is de verleiding groot om de gemakkelijkste weg te kiezen....
Het lijkt alsof Acid2 een doel is geworden, ik dacht dat het meer een soort van test was..
Als het het doel was dan waren ze nu dus klaar geweest met ontwikkelen. Het is nu eerder een belangrijke mijlpaal om aan te geven dat het herschrijven van de gecko engine op de goede weg zit.
acid2 bestaat al een tijdje hoor.. dan is ms wel erg laat met die counter-test :)

Op dit item kan niet meer gereageerd worden.