Internet Explorer 9 : les standards sont-ils supportés ?

Le point sur la prise en charge de HTML5, CSS3 et JavaScript par la nouvelle version du navigateur de Microsoft. Comparatif avec Chrome, Firefox, Opera et Safari.

Une accélération matérielle proche des performances de Chrome 10 et Firefox 4 est certainement une des innovations majeures d'Internet Explorer 9. Elle est mise à contribution via DirectX pour les animations graphiques, SVG, Canvas et pour la vidéo.

Le nouveau moteur JavaScript embarqué, et baptisé Chakra, est destiné à augmenter la réactivité des applications Web, avec un support DOM plus évolué. Les outils pour développeurs (accessibles par la touche F12) sont toujours de la partie, inspirés par Firebug et Dragonfly (Opera).

Microsoft adopte une approche très marketing pour faire la promotion de son nouveau navigateur. Le guide produit affirme même que les sites semblent plus beau dans cette nouvelle interface. Depuis plusieurs mois, des sites dédiés vantent les mérites d'IE9 en vidéo, ainsi qu'avec de nombreuses démonstrations de support HTML5, CSS3, JavaScript... qui sont controversées. En effet, ces langages sont très modulaires, et ne sont en aucun cas supportés dans leur intégralité par IE9. Paul Rouget en témoignait déjà le 15 février 2011 avec la page Is IE9 a modern browser?.


Manques

À la date de sa sortie, le navigateur reste en-deçà de ses concurrents. Certes, de nouvelles balises HTML très en vue sont adoptées, telles que <canvas>, <audio>, <video>, mais la plupart des API qui sont pourtant au cœur des applications Web sont ignorées.

Ne sont notamment pas à l'ordre du jour :

 Offline Web Applications
 File API
 Web Workers
 IndexedDB
 Web Notifications
 Web Sockets
 History API
 Server Sent Events
 XMLHttpRequest 2
 WebGL (Canvas 3D)
 MathML
 SVG Fonts
 HTML5 Forms, <progress> et <meter>
 <datalist>, <details> et <summary>

Le développement d'applications riches (ou RIA) en est pénalisé. Parmi ces API, certaines ne sont pas encore finalisées et voient encore des modifications apportées par les groupes de travail HTML du WhatWG et du W3C. Pourtant, les autres navigateurs ont fait le choix d'anticiper, d'innover, quitte à suivre cette évolution de près et d'apporter des correctifs rapides via les mises à jour automatiques.

Du côté de CSS3, font défaut, entre autres :

 CSS3 Gradients
 CSS3 Transitions
 CSS3 Animations
 CSS3 3D Transforms
 CSS3 Text-shadow
 CSS3 Border-image
 CSS3 Initial Values
 

Pseudo-classes absentes : :default :valid :invalid :in-range :out-of-range :required :optional :read-only :read-write ::before ::after ::first-letter ::first-line ::value ::choices ::repeat-item ::repeat-index.

 
Ajouts notables

Réjouissons nous cependant pour les apports suivants :

 <canvas> et l'API Text
<video> (conteneur MP4, codec vidéo H.264, codec audio MP3 ou AAC - ni WebM* ni Ogg/Theora)
 <audio>
 Sections (<section>, <article>, <nav>, <header>, <footer>, <figure>, <figcaption>, <aside>, <hgroup>)
 DOM Level 2 et 3 (partiellement, y compris getElementsByClassName)
 SVG Basic (dont SVG dans CSS et <img>)
 API Géolocalisation
 Polices WOFF
 ECMAScript 5 pour l'implémentation de JavaScript

En zoomant sur CSS3 :

 CSS3 Border-Radius
 CSS3 Media Queries
 CSS3 Selectors
 CSS3 Color
 CSS3 Fonts
 CSS3 Namespaces
 CSS3 Values and Units avec calc()
 CSS3 2D Transforms
 CSS3 Box-shadow
 CSS3 Multiple Backgrounds
 CSS3 Backgrounds (background-clip, background-origin, background-size)

Pseudo-classes présentes : :root :nth-child(n) :nth-last-child() :nth-of-type() :nth-last-of-type() :last-child :first-of-type :last-of-type :only-child :only-of-type :empty :target :not() :enabled :disabled :checked :indeterminate ::selection:before :after

* de base, les codecs WebM ne sont pas inclus, mais il est possible de les utiliser si VP8 est installé, par exemple avec le plug-in WebM développé par Google pour IE9.

Quelques tests

De nombreux "tests" existent sur Internet, pour effectuer un bilan total des fonctionnalités ou des performances d'exécution. Ils sont plus ou moins représentatifs, car ne représentent pas toujours une situation réelle. Néanmoins, ils peuvent donner une petite idée de l'avancement réalisé. Ci-dessous suivent les verdicts pour IE8 et IE9 ainsi que les précisions pour Chrome 10, Opera 11.01, Safari 5.0.3 et Firefox 3.6 + 4.0 beta12 (le tout sur PC et Windows 7).

 
Résultats des tests
  Acid3 (HTML, DOM et CSS) HTML5Test (balises et API)
Source : Alsacreations
Internet Explorer 9 95/100 130 + 5 bonus
Internet Explorer 8 20/100 32
Chrome 10 100/100 288 + 13 bonus
Opera 11 100/100 234 + 7 bonus
Firefox 4 beta 97/100 255 + 9 bonus
Safari 5 100/100 228 + 7 bonus

Extrait d'un article réalisé par dew (Alsacréations, Strasbourg) sous licence Creative Commons.