Internet Explorer 8 passa il test Acid2

Acid2 Dean Hachamovitch, General Manager per Internet Explorer in Microsoft, ha annunciato un’importante milestone per la versione 8 del proprio browser (correntemente in via di sviluppo). IE8 avrebbe infatti superato per la prima volta il test Acid2. L’annuncio del team arriva con un certo tempismo, quasi a voler rispondere in maniera forte e chiara all’appello/denuncia da parte di Opera Software (di cui abbiamo già parlato); ma superare un test del genere che conseguenze ha per gli sviluppatori e l’utente finale?

L’Acid2 è un test piuttosto complesso creato dal gruppo Web Standards Project per identificare possibili difetti nella visualizzazione dei contenuti da parte dei browser. Il test case è definito in modo tale da stressare alcune tra le più ostiche caratteristiche, definite nelle specifiche W3C per HTML e CSS, ma non ha la pretesa di essere completo. Solo le funzionalità più importanti per il futuro del web (secondo l’opinione degli autori del test) vengono messe alla prova per verificare la corretta generazione dello smiley che trovate in figura.

La complessità del codice è chiaramente visibile osservando il seguente snippet preso dal sorgente della pagina:

.eyes { position: absolute; top: 5em; left: 3em; margin: 0; padding: 0; background: red; }
#eyes-a { height: 0; line-height: 2em; text-align: right; } /* contents should paint top-most because they're inline */
#eyes-a object { display: inline; vertical-align: bottom; }
#eyes-a object[type] { width: 7.5em; height: 2.5em; } /* should have no effect since that object should fallback to being inline (height/width don't apply to inlines) */
#eyes-a object object object { border-right: solid 1em black; padding: 0 12px 0 11px; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAABnRSTlMAAAAAAABupgeRAAAABmJLR0QA%2FwD%2FAP%2BgvaeTAAAAEUlEQVR42mP4%2F58BCv7%2FZwAAHfAD%2FabwPj4AAAAASUVORK5CYII%3D) fixed 1px 0; }
#eyes-b { float: left; width: 10em; height: 2em; background: fixed url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAABnRSTlMAAAAAAABupgeRAAAABmJLR0QA%2FwD%2FAP%2BgvaeTAAAAEUlEQVR42mP4%2F58BCv7%2FZwAAHfAD%2FabwPj4AAAAASUVORK5CYII%3D); border-left: solid 1em black; border-right: solid 1em red; } /* should paint in the middle layer because it is a float */
#eyes-c { display: block; background: red; border-left: 2em solid yellow; width: 10em; height: 2em; } /* should paint bottom most because it is a block */

/* lines six to nine, with nose: auto margins */
.nose { float: left; margin: -2em 2em -1em; border: solid 1em black; border-top: 0; min-height: 80%; height: 60%; max-height: 3em; /* percentages become auto (see 10.5 and 10.7) and intrinsic height is more than 3em, so 3em wins */ padding: 0; width: 12em; }
.nose > div { padding: 1em 1em 3em; height: 0; background: yellow; }
.nose div div { width: 2em; height: 2em; background: red; margin: auto; }
.nose :hover div { border-color: blue; }
.nose div:hover :before { border-bottom-color: inherit; }
.nose div:hover :after { border-top-color: inherit; }
.nose div div:before { display: block; border-style: none solid solid; border-color: red yellow black yellow; border-width: 1em; content: ''; height: 0; }
.nose div :after { display: block; border-style: solid solid none; border-color: black yellow red yellow; border-width: 1em; content: ''; height: 0; }

Nonostante la sua importanza, è bene non sopravvalutare il test. Come diceva Edsger W. Dijkstra agli inizi degli anni settanta: «Program testing can be used to show the presence of bugs, but never to show their absence!». Il test rimane rilevante, nonostante la sua natura circoscritta, per via del fatto che i maggiori browser non lo superano ancora. Internet Explorer e Firefox 2 sono infatti i due browser più popolari al mondo e falliscono il test entrambi. Safari, Opera e Konqueror invece sono già in grado di mostrare l’Hello World e la faccina sorridente (di chi l’acid sempra averlo già preso) correttamente. Si sapeva inoltre da tempo che Firefox 3 (che si basa su Gecko 1.9 ed è ora in beta) supererà il test prima di essere rilasciato in versione stabile al grande pubblico. Finora dunque l’incognita era soltanto Internet Explorer, ed è stata proprio la mancanza di intenti chiari a spingere il CTO di Opera alla scrittura dell’ormai celebre lettera aperta agli sviluppatori web.

Quello di Microsoft è dunque un annuncio non di poco conto, che fa sperare in un futuro nel quale scrivere applicazioni web cross-browser, sarà possibile senza l’introduzione di workaround esoterici per accontentare gli utenti di IE. La ragione d’essere degli standard web è proprio questa: garantire a coloro che aderiscono alle convenzioni stabilite, che i risultati ottenuti saranno accettabili e, per quanto possibile, uniformi nei vari browser usati dagli utenti.

Rimane solo da sperare che Microsoft tenga fede a questo impegno per gli standard web e che si dedichi con altrettanta attenzione alle problematiche e i possibili bug non rilevati dall’Acid2. Non ci resta che aspettare la prima metà del 2008, periodo in cui è prevista l’uscita della beta di IE8.

About Antonio Cangiano

Antonio lavora come Software Engineer & Technical Evangelist presso la IBM in Canada. È inoltre il direttore di Stacktrace.it, un internet marketing strategist, imprenditore del web, serial blogger, e autore di un paio di libri in inglese (recentemente Technical Blogging.) Puoi dare un'occhiata ai suoi progetti sulla sua homepage e seguendolo su Twitter.

Comments

  1. Con una sincronia curiosa, in questi giorni il CSS-WG sta implodendo (la scintilla e’ stata la decisione di Opera)

    Alex Russel dice che Il W3C non ci puo’ salvare, nel senso che il tentativo di far definire standard futuri sulla carta imponendoli ai produttori di browser oltre che non funzionare puo richiare di frenare l’innovazione.
    Innovazione, che per forza di cose puo essere efficace solo rischiando ed “avventurandosi in territori inesplorati” (e quindi oltre quanto supportato dalla maggioranza degli altri).

    che ne pensate?

  2. sfig@tto says:

    Penso che…se usassimo le tabelle, almeno solo per la struttura…non serve piu uno standard che non ci faccia storpiare un sito a volte di qua e a volte di la..
    solo una, per il layout.
    (adoro il revival)

    scherzi a parte, credo che, essendo nel web2, poco importa se un sito si vede bene o benissimo o cosi cosi confrontandolo fra i vari browser, alla fine conta quello che ci trovo come informazioni, poi se una scritta si sovrappone di un millimetro ad un’altra..pazienza.
    Per le intranet uso moltissimo tabelle, dato appunto il fatto che devono essere gestite applicazioni che manipoolano dati, a mo’ di gestionale, che guarda caso sono pieni di griglie (tabelle), e l’unico modo di rappresentarli fedelmente è appunto quello di usare le medesime.

    cosa ne pensate?

  3. Vabbè ma se usi le tabelle per delle tabelle (…..) allora ha senso ed è giusto, il problema è se le usi per il layout che concettualmente non va più tanto bene…..

  4. @ sfig@tto: guarda che il W3C o qualsiasi guru mondiale degli standard del web, dell’usabilità e dell’accessibilità ha mai fatto una battaglia aperta alle tabelle in se, si vuole solo pressare gli sviluppatori ad utilizzare i tag per quello che sono stati creati, per il significato che impongono alla struttura semantica di un layout, David Siegel e “The web is dead and I killed it” insegnano. Quindi per l’uso che tu ne fai suppongo che sia un’ottima idea le tabelle, non lo sarebbe se ci realizzassi template ecc. ecc.

  5. Io con Opera/9.21 (Windows NT 5.1; U; it) la faccina dell’acid test non la vedo affatto bene, anzi!

    Comunque io rimango diffidente nei confronti di Microsoft.
    Mi auguro che questa sia la volta buona che fanno un browser dignitoso che non mi costringerà + a lavorare il doppio per fare un sito web.
    Già devo fare non pochi hack per explorer 6 ed explorer 7, figuriamoci se dovesse uscire una cagata8…

  6. Io ho anche (inutilmente, of course) commentato direttamente sul loro blog.

    Perché quando leggo:

    > so that IE8 (1) continues to work
    > with the billions of pages on the
    > web today that already work in IE6
    > and IE7
    

    Io traduco come: “IE8 sarà fallato come IE6 e IE7, in modo che rimanga compatibile”.

    E’ la stessa stronzata che han detto per IE7… e infatti si è visto il risultato.
    Contemporaneamente, c’è da dire che leggendo Sam Ruby il comportamento di MS nel confronto degli standard non è molto carino, per usare un eufemismo, e torna alla mente il bel concetto delle 3E: Embrace, Extend, Exterminate.

  7. @Nemesis: Grazie per avermi fatto notare che la tua installazione di Opera non passa il test. In effetti, su un’altra macchina, Opera 9.25 non lo supera. La cosa è alquanto strana e devono esserci altri fattori in gioco. In alcuni casi funziona (come riportato qui) e in altri no.

  8. Anche Firefox3.0 beta2 scaricato da PortableApps non mi visualizza correttamente il faccione (anche se di poco):
    http://mihd.net/e6ykdx
    WinXpSP2

Policy per i commenti: Apprezzo moltissimo i vostri commenti, critiche incluse. Per evitare spam e troll, e far rimanere il discorso civile, i commenti sono moderati e prontamente approvati poco dopo il loro invio.


Trackbacks

  1. Piano piano possibilmente. No, non è un tentativo di autoreferenzialità da due soldi, è solo , penso io, il miglior modo di lavorare per sviluppare qualcosa che sia duraturo ed il più possibile adatto alle sfide del tempo. Una struttura creata per …