Internet Explorer 9 e il supporto ai web standard

Internet Explorer 9. Supporta gli standard?Di questi tempi sulla rete si fa un gran parlare di Internet Explorer 9 e dell’elevato livello di supporto per gli standard web verso cui esso è stato ideato e realizzato. Uno degli eventi che la Microsoft, nel vivo di tutta questa agitazione, ha programmato, e che si svolgerà martedì 15 marzo, è un web camp intitolato “We Love Web Standards” nella descrizione del quale viene addirittura azzardato un “E con il nuovo Internet Explorer 9, tutte le potenzialità del Web possono realizzarsi in pieno!”. Preso da incontenibile euforia, dopo aver letto tutte queste belle notizie in una volta sola, decido di documentarmi meglio sul web e scoprire se effettivamente IE9 supporta gli standard.

IE9 e HTML5

Nella breve analisi che segue non voglio contemplare tutti gli aspetti del nuovo browser, ma semplicemente, introdurre l’aspetto legato ai web standard; non farò cenno, dunque, a tutti quegli aspetti legati alle prestazioni, alla compatibilità con Windows 7, ecc…

In febbraio la Microsoft ha pubblicato un articolo in cui afferma che i test di controllo online (ad esempio: caniuse, html5test) per il supporto degli standard Web non possono essere presi in considerazione per valutare la bontà di un browser in quanto “questi test cercano di verificare se una proprietà esiste e usualmente concentrandosi su una singola specifica. Sono in genere realizzati da persone non appartenenti al W3C.  Possono essere utili quando il team di sviluppo W3C non ha ancora finito i test e le prove supplementari, ma comunque non c’è garanzia che essi rappresentino l’intera specifica standard.”

Contraria, dunque, ai test realizzati in rete e disponibili per tutti i browser, Microsoft propone i risultati dei suoi test offrendo la garanzia, implicita, di vantare percentuali un po’ millantate (basta analizzare le tabelle proposte dalla pagina linkata per rendersene conto).

Ritenendo, dunque, la credibilità di questi test vicina allo zero possiamo considerare lecito analizzare i test online che offrono percentuali più credibili e reali. Ecco qui alcuni risultati: http://people.mozilla.com/~prouget/ie9/ie9_vs_fx4.html

I risultati ci mettono di fronte alla considerazione che IE9 è fermo a 2 anni fa (il supporto corrisponde a quello di Firefox 3.5) per quanto riguarda a specifiche come <video>, <canvas>, SVG e CSS3. Addirittura, Canvas e SVG erano supportati da Firefox 5 anni fa.

IE9: cosa non supporta?

Nella vita di tutti i giorni di noi programmatori cosa cambierà dalla pubblicazione della nuova versione di IE? In particolare potremo usufruire di alcune proprietà utili, ma, purtroppo siamo ancora lontani dal livello di vera compatibilità.

Di seguito propongo una lista di proprietà non supportate da IE9:

  • Application Cache (offline)
  • Web Workers (threads in JavaScript)
  • HTML5 Forms (validation mechanism, CSS3 selectors)
  • JavaScript Strict Mode
  • ForeignObject (embed external content in SVG)
  • SMIL Animations (SVG animations)
  • File API
  • WebGL (3D)
  • CSS3 Transitions (for animations)
  • CSS3 Text Shadow
  • CSS3 Gradients
  • CSS3 Border Image
  • CSS3 Flex box model
  • ClassList APIs
  • FormData
  • HTML5 History API
  • Drag’n Drop from Desktop

Nella vita del programmatore, dunque, almeno per ora, non cambierà molto anche in luce del fatto che IE9 potrà girare solo su Win Vista e Win7. WindowsXP che ha ancora il 45% di utilizzazione, a livello globale, è stato ignorato. Anche questo comporterà il mancato aggiornamento che molti vorrebbero ma non potranno effettuare.

Concludendo

Effettivamente, rispetto alla versione precedente, Internet Explorer ha migliorato il proprio supporto agli standard. Dobbiamo però diffidare del fatto che Microsoft stia continuando da mesi ad affermare la nettà superiorità del nuovo browser rispetto agli altri in circolazione. Come per ogni aspetto della vita è sempre meglio verificare e documentarsi prima di lasciarsi ammaliare dai trucchi di dialettica messi in atto da chi non ha interesse ad attuare un vero cambiamento, una reale evoluzione.

Lascia un commento

Tutti i campi sono obbligatori.
L'indirizzo email non verrà pubblicato

 

Commenti

  1. avatarGiuseppe Guerrasio

    Caro Alessandro, l’articolo contiene alcune imprecisioni. Quando dici che Microsoft propone in alternativa ai test citati( html5test.com, etc) i suoi test dici una cosa non corretta così come il post di Mozilla. MS propone una cosa profondamente diversa, ovvero propone di lavorare tutti assieme nel W3C per creare un set di test che possa essere usato da tutti e tenuto come punto di riferimento STANDARD. L’embrione dei test del W3C lo trovi qui http://test.w3.org/html/tests/reporting/report.htm, si tratta di un lavoro incompleto, ci sono solo alcune specifiche coperte e Microsoft non ha mai detto o scritto da nessuna parte che IE9 è migliore in base a questi test, questa affermazione viene fatta in modo strumentale ma non è corretta. Lo spirito della proposta è quello di contribuire ad implementare nel W3C test comuni che permettano ai browser di essere interoperabili e spingere tutti a lavorare in questo modo, contribuendo ad implementare un unico set di test ufficiali verso i quali verificare realmente le specifiche.

    Relativamente ai test che citi ( html5test.com, etc) quello che la Microsoft mette in evidenza è che questi test sono inaffidabili, molto spesso analizzano solo la presenza o meno di una API, senza verificare se l’implementazione è coerente con la specifica, cosa che quindi è poco significativa. Spesso sono realizzati da persone singole, che non rappresentano gli enti di standardizzazione e che in alcuni casilavorano all’interno di progetti di browser specifici. Molti di questi test, inoltre, analizzano anche elementi che non sono nelle specifiche standard o che sono ancora incompleti ed immaturi, diminuendo ancor di più l’affidabilità e lo scopo.Gran parte degli elementi che indichi e che non sono supportati in IE, sono specifiche immature ed incomplete e che i sui vari browser che già le implementano hanno comportamenti diversi. Se si parla di standard non c’è una gara a chi implementa per primo una feature, ma lo scopo è quello di avere specifiche interoperabili realmente, con comportamenti uniformi tra i vari browser. Lascio la mia mail nel caso tu voglia approfondire questa importante tematica.

  2. avatarGiuseppe Guerrasio

    A quanto scritto nel commento precedente prova ad esempio questo semplice test :
    http://ie.microsoft.com/testdrive/HTML5/BorderRadius/Default.html

    e prova a fare click “Cicle BorderStyle” e poi “Animate Border Radius”.
    Prova a farlo con più browser possibili, vedrai che otterrai comportamenti differenti. Questo per farti capire che verificare se una specifica è implementata da un browser o meno è un pò più complicato che verificare semplicemente se la specifica API è presente o meno nel browser. Da qui l’importanza di avere dei test ufficiali per avere realmente un comportamento uniforme tra i browser e non dei test che sono poco utili e che vengono spesso usati solo per fare marketing. Puoi ripetere questo test anche da solo applicando questo stile su un elemento e guardando poi il risultato su browser differenti:
    .Example1
    {

    border-radius: 152px 304px 228px 152px;
    border-style: dashed;
    border-width: 42px;
    padding: 12px;
    height: 300px;
    }

  3. avatarAlessandro Carbone Autore

    Ciao Giuseppe, in primo luogo ti ringrazio per i commenti.

    Pensando allo spirito con cui la Microsoft sta spingendo per cercare di realizzare test che si propongano come punto di riferimento ufficiale non possiamo che essere fiduciosi, soprattutto per il cambiamento di attitudine che l’azienda sta muovendo in merito agli standard web.
    Sarebbe interessante valutare la reale bontà del test W3C e capire il livello di correlazione reale tra risultati e utilizzazione pratica delle specifiche.
    L’implementazione delle specifiche non ancora ufficiali è supportata usualmente dai browser per predisporre un percorso di graceful degradation senza il quale sarebbe realmente difficile, per noi programmatori, seguire l’evoluzione degli strumenti a nostra disposizione. Certo, spesso i risultati di visualizzazione delle varie feature utilizzate non corrispondono tra i vari browser, ma è anche importante capire quali sono le richieste del web.
    In ogni caso mi riservo di analizzare al meglio il nuovo prodotto Microsoft per cercare di capire oltre alle specifiche supportate, le performance soprattutto in ambito Javascript, verso il quale ho sempre avuto maggiori problemi di compatibilità cross-browser.

  4. avatarGiuseppe Guerrasio

    Ciao Alessandro,grazie a te per la risposta e l’attenzione al tema. Relativamente ai test il W3C come sai è l’ente in cui vengono scritte le specifiche ed alla fine approvati gli standard Web e quindi è li che si dovrebbe lavorare per avere, oltre alle specifiche, dei test per validarle. Nel W3C sono presenti tutti gli implementatori dei browser e non solo e quindi tutti assieme si può arrivare al miglior risultato possibile per avere dei test in grado di facilitare l’interoperabilità. Per il discorso relativo all’implementazione delle specifiche in evoluzione, Microsoft ha dato vita agli HTML5 Labs http://html5labs.interoperabilitybridges.com/ che servono appunto ad offrire la possibilità di aggiungere delle componenti a IE per poter sperimentare le specifiche più interessanti in evoluzione, mantenendole però chiaramente separate da quelle stabili e supportate nel browser. AL momento sono disponibili i WebSocket e IndexedDB. Vengono qui aggiornate costantemente all’ultimo draft.
    Per quanto riguarda le performance del JavaScript IE9 è sicuramente un grosso passo avanti ed al momento su PC multicore sfrutta l’eventuale CPU addizionale per compilare il codice prima dell’esecuzione nei casi in cui è conveniente in termini di performance. I grossi passi avanti con il nuovo motore JS in IE9 sono anche evidenziati nei risultati del WebKit SunSpider dove IE9 al momento è il browser più veloce http://ie.microsoft.com/testdrive/Benchmarks/SunSpider/Default.html . Per farti un ideache vada oltre i risultati di questi microbenchmark come il SunSpider, puoi provare uno degli esempi reali di applicazioni HTML5 che trovi su IE Test Drive a http://ie.microsoft.com/testdrive/ nell’area Speed Demos e provare ad usare le demo con browser differenti per farti un idea. In questo video http://www.youtube.com/watch?feature=player_embedded&v=CQSGclvl0qg , dopo i primi minuti di spiegazione introduttiva sulle performance trovi alcuni esempi dei test di cui sopra realizzati con le ultime build dei vari browser, e .. ovviamente come dicevo prima puoi provare tu stesso. In questo post http://blogs.msdn.com/b/italy/archive/2011/02/10/internet-explorer-9-rc-disponibile-per-il-download-standard-velocit-224-e-sicurezza.aspx , inoltre , trovi maggiori info in generale su IE9

  5. Pingback: Dissuadere gli utenti di Internet Explorer tramite uno script « Il blog di Andrea Lazzarotto

  6. Pingback: History API di HTML5 e la navigazione sul web - blog.artera.net