The Current State of HTML5 Forms
A web developer's guide detailing today's browser support for HTML5 form technologies.
A web developer's guide detailing today's browser support for HTML5 form technologies.
The information on this page largely came from testing this example HTML5 form in different browsers and also the isolated examples on these informational pages.
![]() |
Supported |
![]() |
Kind of supported (see info page) |
![]() |
Not Supported |
HTML5 is the newest specification for HTML, the language that web browsers read to display web pages. HTML5 has many new features intended to make creating websites easier and people's experience in using those websites better. Among those features are many enhancements to web forms.
Since HTML5 is fairly new and not all the details have been worked out yet, not all web browsers support HTML5 features the same way. This page is intended to explore those new new features and help you understand which browsers are supporting which features and to what degree. As a whole, this represents the current state of HTML5 forms.
The charts below list the most current version of each major browser. The individual pages (e.g. page for placeholder) shows past browser support.
Firefox 6 beta |
Safari 5.1 |
Safari Mobile |
Chrome 13 |
Opera 11.50 |
IE 10 PP2 |
|
|---|---|---|---|---|---|---|
Email ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Tel ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Url ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Search ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Color ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Number ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Range ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Datetime ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|---|---|
Date ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Month ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Week ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Time ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Datetime-local ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
All the new input types are supported in all browsers in that they will submit their data as if it were a "text" input. These valuations are based on if they do anything above and beyond and/or validate against the type of data relevant to them.
Firefox 6 beta |
Safari 5.1 |
Safari Mobile |
Chrome 13 |
Opera 11.50 |
IE 10 PP2 |
|
|---|---|---|---|---|---|---|
Placeholder ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Autofocus ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Maxlength? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
List (Datalist)? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Autocomplete ? |
![]() |
![]() |
N/A | ![]() |
![]() |
![]() |
Required ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Pattern ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Spellcheck ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Novalidate ? |
![]() |
![]() |
N/A | ![]() |
![]() |
![]() |
Formnovalidate ? |
![]() |
![]() |
N/A | ![]() |
![]() |
![]() |
Formaction ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Formmethod ? |
![]() |
![]() |
![]() |
![]() |
![]() |
? |
Formtarget ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Formenctype ? |
? | ? | ? | ? | ? | ? |
Accept ? |
![]() |
![]() |
N/A | ![]() |
![]() |
![]() |
|---|---|---|---|---|---|---|
Multiple ? |
![]() |
![]() |
N/A | ![]() |
![]() |
![]() |
Min / Max ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|---|---|
Step ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Firefox 6 beta |
Safari 5.1 |
Safari Mobile |
Chrome 13 |
Opera 11.50 |
IE 10 PP2 |
|
|---|---|---|---|---|---|---|
Meter ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Progress ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Output ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Keygen ? |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Testing for SupportIf you intended to write JavaScript to mimic the functionality of HTML5 forms, you may want to first test the current browsers capability and write the JavaScript as a fallback. On the right is how you might test for attribute support. More accurate feature testing can be done through the excellent JavaScript library Modernizr. |
|
Custom Validity MessagesYou can override the default validity error messages through JavaScript |
|
More JavaScript FunHTML5 has a number of useful JavaScript methods for manipulating forms. |
|
Pseudo classesCSS3 has a number of new pseudo classes that can select form elements that are in particular states. The The :valid pseudo selector will select the legend element of a fieldset that contains a valid input in Safari 5. |
|
Attribute selectorsAttribute selectors help select elements that contain specific attributes. Since HTML5 forms have many new input attributes, this can be useful in targeting them. |
|
Vendor Specific StylingsThere are a few visual aspects of HTML5 forms that may not be obvious how to style with CSS. For instance placeholder text, or how to fight against the default WebKit styling of a search for. A few snips of that nature to the right. |
|
Other HTML5 Forms Resources
|
See an error?Sorry about that. We're committed to keeping this information accurate. Report the error here and we'll get it fixed ASAP. |