Modernizr
# Modernizr

Modernizr est une bibliothèque développée en JavaScript détectant l'implémentation native par le navigateur de différentes fonctionnalités récentes. Elle est distribuée sous licence MIT.

## Historique

Faruk Ateş a annoncé la création de Modernizr le 1er juillet 2009. La version 1.0 a été publiée le 5 septembre 2009. La version 2.0 a été publiée le 1er juin 2011.

## Fonctionnalité

Modernizr est capable de détecter l'implémentation native par le navigateur de technologies web provenant des spécifications HTML5 et CSS 3, toutes deux encore en cours d'élaboration. Modernizr permet aussi la détection d'autres fonctionnalités, comme le support de SVG, de la géolocalisation, de SMIL, des écrans tactiles et de WebGL.

Modernizr fournit donc un ensemble de fonctions permettant de détecter le support par le navigateur de fonctionnalités CSS 3, comme "border-image" ou "opacity", et HTML 5, comme "canvas" ou "draganddrop".

De plus, Modernizr fournit des fonctions utilitaires permettant de faciliter le développement d'applications web compatibles avec différents navigateurs. La fonction Modernizr.load, permettant le chargement conditionnel d'un script JavaScript en fonction d'un test de fonctionnalité, ce qui permet de faciliter grandement l'utilisation des polyfills. La fonction Modernizr.prefixed permet de connaitre le nom de l'implémentation d'une fonctionnalité disponible dans un navigateur. Par exemple, Modernizr.prefixed('boxSizing') va retourner "MozBoxSizing" avec Firefox.

Modernizr fournit aussi un module appelé html5shiv, qui permet aussi le support des balises de structure de HTML5 dans Internet Explorer 6. Par exemple, il va dynamiquement transformer les balises section en balise div. Modernizr est donc lui-même un polyfill rendant IE 6 compatible avec les balises de structure de HTML5.

Pour terminer, Modernizr propose des API permettant d'étendre son fonctionnement, en offrant la possibilité d'écrire de nouveaux tests.

## Compatibilité

Modernizr est compatible avec Internet Explorer 6 ou version ultérieure, Firefox 3.5 ou version ultérieure, Opera 9.6 ou version ultérieure, Safari 2 ou version ultérieure, Chrome, Safari Mobile, le navigateur d'Android, Opera Mobile et Firefox Mobile. Des tests sont en cours pour confirmer la compatibilité avec le navigateur de BlackBerry 6 ou version ultérieure.

