HTML5 Cross Browser Polyfills
- svgweb by Brad Neuberg & others
- Raphaël by Dmitry Baranovsky
- Abstracted API. adds features. fallback for IE via VML
- Ample SDK by Sergey Ilinsky
- canvg by Gabe Lerner
- Writes SVG to canvas. Good for Android
- SVG Boilerplate
- Alpha and still buggy, but handle multiple concurrent SVG shims together
- SIE SVG library by dhrname
- Fallback to VML for oldIE
- dojo gfx by Eugene Lazutkin, Kun Xi, Chris Mitchell
- Fallback via VML, Canvas, Silverlight and Flash
- fabric.js by kangax
- Can render SVG via canvas
- inline SVG polyfill by mstalfoort
Web Storage (LocalStorage and SessionStorage)
Non HTML5 API Solutions
- html5shiv by Jon Neal, afarkas & community
- Enables for print use, as well
- innerShiv by Joe Bartlett
- Enables elements for innerHTML use
- Uses flowplayer swf for fallback.
- mediaelement.js by John Dyer
- swf player that mimics HTML5 media API. Consistent UI across browsers and flash.
- World’s first zero maintenance HTML5 video player as a service solution.
- video.js by Zencoder
- Device fixes.
- video for everybody by Kroc Camen (orig.)
- The granddaddy of
VTT: Video Timed Track (subtitles)
- JSCaptions by Daniel Davis
- Captionator by Christopher Giffard (Supports WHATWG TextTrack spec & has experimental support for MediaTracks/synchronised media elements)
- playr by Julien Villetorte (support both WebVTT & SubRip files)
- jPlayer custom player with jQuery dependency, flash fallback
- audio.js custom player, flash fallback by ab+c
- SoundManager2 custom player, flash fallback, api, extensive documentation
Web SQL Database
Local Database Abstractions (non-HTML5 APIs, but useful)
Web Forms : input placeholder
Accessibility / ARIA
Browser State Management
Offline & Online Events
- offline-event.js by Remy Sharp (Opera not supported, and Safari doesn’t update navigator.onLine property)
HTML5 History API (pushState, replaceState, popState)
- History.js by Benjamin Lupton – (optional hashchange fallback for HTML4 browsers)
- HTML5-History-API by Dmitriy Pakhtinov – lightweight and fully standardize compliant implementation of History API with IE6+ support andhashchange implementation
- * PJAX (pushState + ajax = pjax) by Chris Wanstrath (not a polyfill)
Animated PNG (APNG)
- APNG-Canvas by Давид Мзареулян
- png.js by Devon Govett
- Parses and renders PNGs both animated and static to a canvas element with putImageData
dataset property (for use with custom
- Scoped Styles by Simon Madine
- jQuery Plugin to enable the scoped attribute on style blocks so they only affect their parent element’s children.
File API / Drag and Drop
- dropfile.js by Andrew Dodson
- Creates the FileReader part of the FileAPI via silverlight
- jDataView by vjeux
- DataView polyfill for structured data
- FileSaver.js by eli grey
- FileReader.js by Jahdrien
- Creates FileReader and FileAPI using Flash, jQuery and jQuery UI
- No drag and drop support!
- idb.filesystem.js by Eric Bidelman
- HTML5 Filesystem API polyfill that uses IndexedDB as a storage layer.
Device Access via
- getUserMedia.js by Addy Osmani provides a cross-browser shim for getUserMedia() camera access.
(Web) Audio (Data) API
- XAudioJS by Grant Galitz
- Audio sample stream output thin-abstraction library that supports mono and stereo audio, as well as resampling the audio stream.
- Supports the Mozilla Audio Data API, Web Audio API, Adobe Flash 10, real-time WAV PCM Data URI generation
- dynamicaudio.js by Ben Firshman
- audiolib.js by Jussi Kalliokoski
Cross-Document/Domain Messaging (postMessage)
- easyXDM by Sean Kinsey
- Implements XDM and RPC in most browsers since IE6. Also ships with an endpoint for exposing ajax across the domain boundary.
- postMessage jquery plugin by Ben Alman.
Cross-Origin Resource Sharing (CORS)
- pmxdr by Eli Grey.
- Implements a cross-domain XHR. Note that sites being requested must have a pmxdr host.
- postmessage-proxied-xhr (PPX) by Atul Varma.
- flXHR by Kyle Simpson
- Provides XHR API using Flash transport mechanism. Target server must have a crossdomain.xml policy file.
DOM Range and Selection
DOM Parsing and Serialization
- es5-shim by Kris Kowal, Tom Robinson, community.
- Xccessors by Eli Grey.
- Implements ES5 accessors (getters and setters) for browsers supporting legacy methods and/or legacy methods for browsers supporting ES5.
- getters and setters by the IE team.
- Pick up get/set’ers for DOM elements in IE8
- json2.js by Douglas Crockford
- json3.js by Kit Cambridge
- ddr-ecma5 by David de Rosier
- augment.js by Oliver Nightingale
ECMAScript 6 (Harmony)
- cssFx – by Ivan Malopinsky
- Standalone, lightweight, client-side JS; supports almost all CSS3 properties
- CSS Crush
- A PHP based CSS pre-processor for handling vendor prefixes, CSS variables, data-uris and minification
- CSS Agent by Keith Clark
- A ASP.Net based CSS pre-processor for handling vendor prefixes, CSS variables and minification
- jQuery Css3 Finalize by Han Lin Yap
- CSS3 PIE by Jason Johnston
- CSS3 decoration rendering for IE 6-9. Supports: border-radius, box-shadow, multiple backgrounds, linear gradients, border-image
- Flexie by Richard Herrera
- Flexible box model. (flexbox) Supports: box-orient, box-align, box-direction, box-pack, box-flex, box-ordinal-group
- CSS Template Layout jQuery plug-in by Alexis Deveria
- CSS3 – Multi Column by Cédric Savarese
- Supports: column-count, column-width, column-gap, column-rule
- CSS3 – REM Unit conversion by Chuck Carpenter and Lucas Serven
- Evaluates stylesheets for REM declarations, converts them to pixels and appends to the HEAD. Has no dependancies, but can easily be implemented with Modernizr/Yepnope for loading.
- jQuery Text Shadow by heygrady
- Text-shadow action via jQuery plugin API
- jQuery Text Overflow plugin by Devon Govett, Andrew A. Kononykhin, Micky Hulse
- Regions.js by Robin Ricard
- borderBoxModel by Alberto Gasparin
- box-sizing-polyfill by Christian “Schepp” Schaefer
box-sizing: border-box; for IE6 and IE7 via Microsoft’s proprietary CSS behavior / .htc-script
- Borderbox for Compass by Richard Herrera
box-sizing: border-box; polyfill for SASS/Compass. Outputs equivalent CSS for IE6 & 7
- Units by Grady Kuhnline
- cssMinMax by Russ Porosky
max() jQuery plugin polyfill
- Includes JSCSSP, so it’s a bit large
- jQuery.object-fit.js by Steve Workman (fork of Simon Schmid’s work)
- CSS3 object-fit via jQuery plugin API. Currently supports:
object-fit: contain|cover; (for developing standard)
CSS3 Media Queries
- Respond by Scott Jehl
- A fast & lightweight polyfill for min/max-width CSS3 Media Queries (for IE 6-8, and more)
- mediatizr by Aurélien Delogu
- Responsive-oriented CSS3 media queries polyfill
- matchMedia by Scott Jehl, Paul Irish, Nicholas Zakas
- A standardized way to check media query matching in script.
- jQuery Media Helpers by Scott Jehl
- Some media query and cross-browser responsive design helpers, abstracted from jQuery Mobile
CSS4 -image-set on
- microdatajs by Philip Jägenstedt
- Microdata-JS by Егор Халимоненко
- Pure JS (Extending Element.prototype with IE6+ support)
<link rel="prefetch|prerender" ...
- jiagra by Samy Kamkar
- A psuedo-polyfill for preloading pages to browser cache
- Mozilla Shumway
- Google Swiffy
- Webapp converts SWF to HTML+JS. Supports subset of SWF 8 and ActionScript 2.0, and webkit-only output.
- Adobe Wallaby
- Desktop app converts FLA to HTML+JS.
- Visibility.js by Andrey Sitnik
- visibly.js by Addy Osmani
- Page Visibility shim for jQuery by Mathias Bynens
- The HTML5 Page Visibility API allows you to determine whether your web page is visible to the user, is hidden in background tab or is prerendering. visibility.js deals with vendor-prefixes and provides a fallback for browsers without this API by assuming the page is always visible. However, this is a wrapper more than a polyfill.
- hyphenator by Mathias Nater
- CSS3 defines six properties and an at-rule that influence hyphenation.
- Webshims Lib several Polyfills using lightweight capability based loading concept (shiv, innershiv, canvas, forms, ES5, localStorage/sessionStorage, JSON, geolocation) by Alexander Farkas
- Polyfill.js Polyfills loaded dynamically based on need (list of available polyfills on the linked page) by James Brumond
- ES5/DOM shim implements DOM API and EcmaScript 5 (and some from ES6), and bug fixing in IE6+ and other browsers:
- Add methods such [add/remove]EventListener, querySelector[All], setSelectionRange, etc in IE6+
- Add Element/Node properties such classList, children, [first/last]ElementChild, reversed, control, labels, etc in IE6+
- Add methods such insertAdjacentHTML (old FF), stopImmediatePropagation (Opera < 12) and properties reversed, control, labels, etc in W3C browsers
- Add ES5/6 methods in all browsers
- Add DOM4 methods append, prepend, after, before, replace, remove, match in all browsers
- Provide bugs fixing for DOM and ES in IE, Opera, Chrome, FF
- and more with low cost (~8KiB for W3C browsers, ~16KiB for IE8 and ~18KiB for IE6/7 [gzip])
- Google Chrome Frame
- Not exactly a feature shim, but… well… It’ll help. 🙂
- ie7.js, ie8.js, ie9.js by Dean Edwards
This entry was posted in Uncategorized
. Bookmark the permalink