HTML5 is the new catchall term for “the Web.” Like Ajax and Web 2.0 before, the term
can cause confusion when used in different contexts. HTML5 is technically the fifth
revision of the HTML markup language, but you will find the term being used to describe
an umbrella of next-generation web technology specifications that include
In order to understand HTML5 in this context, first it is important to understand that
HTML5 is not one technology that is applied or added to a web application. There are
more than 30 specifications within the HTML5 umbrella, and each is at a different
stage of maturity. Furthermore, each specification is also at a different state of adoption
and, potentially, implementation, by the major browser manufacturers.
Depending on an application’s business requirements, the app’s developer will pick
and choose the HTML5 features to take advantage of. It is entirely possible that only
a handful of the available specifications will be used for the final implementation of a
modern web application.
Critics often proclaim it is necessary to wait until HTML5 is 100% supported before
you use it in your application. This is simply not true. Many specifications have already
reached maturity and are fully implemented by modern browsers. Other specifications
are at an early stage of development, or are poorly supported by some of the
major browser manufacturers. It’s important to know which specification type you are
using. Research is helpful, but the only true way to tell is to thoroughly test your apps
in all browsers.
For the specifications that are newer or that aren’t as strongly supported, some clever
developers have produced free and open source code that can be utilized to shim, or
polyfill, support in older browsers. As defined by Remy Sharp, “A polyfill, or polyfiller,
is a piece of code (or plug-in) that provides the technology that you, the developer,