In order to determine what features of HTML5 to use, you must first understand your user base.
- Are all of your users corporate users, where you can control the version of browsers (and mobile devices) accessing your application?
- How important is it that you support all possible end user devices?
Odds are there is a point of diminishing returns where you decide you'll stop supporting an old (or just down right poor) browser version.
As with anything in this field I'd say, "It depends..."
To create a truly cross platform web-based application you must also understand the features of the mobile platform that you want to support that will probably not be on your desktop web application radar.
Mobile hardware features
- Video (codecs limited by hardware)
- Audio (codecs limited by hardware)
- Web applications
- Cross-document messaging
- Server-sent events
- Web sockets
- Session storage
- Local storage
- Web workers/shared workers
- Scroll into view
- SVG in HTML (but SVG is supported via <img>)
- Geolocation
- WebGL
- FileSystem API
- Indexed DB
- Webcam
- Web notifications
Based on current statistics (see bottom part of this post) and a desire to support "most" end user devices, I picked some lowest common denominator OS versions that you might consider when deciding what HTML5 features to implement.
The following charts are best viewed with a web browser, s.t., you can pan across to see the whole chart.
low-endmobile browsers(Click to toggle detail visibility.) |
200
|
141
|
288
|
---|
Parsing rules |
0
|
0
|
10
|
---|---|---|---|
<!DOCTYPE html> triggers standards mode » | Yes ✔ | Yes ✔ | Yes ✔ |
HTML5 tokenizer » | No ✘ | No ✘ | Yes ✔ |
HTML5 tree building » | No ✘ | No ✘ | Yes ✔ |
SVG in text/html » | No ✘ | No ✘ | Yes ✔ |
MathML in text/html » | No ✘ | No ✘ | Yes ✔ |
Canvas |
20
|
20
|
20
|
---|---|---|---|
canvas element » | Yes ✔ | Yes ✔ | Yes ✔ |
2D context » | Yes ✔ | Yes ✔ | Yes ✔ |
Text » | Yes ✔ | Yes ✔ | Yes ✔ |
Video |
21
|
21
|
21
|
---|---|---|---|
video element » | Yes ✔ | Yes ✔ | Yes ✔ |
Subtitle support » | No ✘ | No ✘ | No ✘ |
Poster image support » | Yes ✔ | Yes ✔ | Yes ✔ |
MPEG-4 support » | No ✘ | Yes ✔ | No ✘ |
H.264 support » | No ✘ | Yes ✔ | No ✘ |
Ogg Theora support » | No ✘ | No ✘ | No ✘ |
WebM support » | No ✘ | No ✘ | No ✘ |
Audio |
20
|
20
|
20
|
---|---|---|---|
audio element » | Yes ✔ | Yes ✔ | Yes ✔ |
PCM audio support » | No ✘ | Yes ✔ | No ✘ |
AAC support » | No ✘ | Yes ✔ | No ✘ |
MP3 support » | No ✘ | Yes ✔ | Yes ✔ |
Ogg Vorbis support » | No ✘ | No ✘ | No ✘ |
Ogg Opus support » | No ✘ | No ✘ | No ✘ |
WebM support » | No ✘ | No ✘ | No ✘ |
Elements |
15
|
6
|
24
|
---|---|---|---|
Embedding custom non-visible data » | No ✘ | No ✘ | Yes ✔ |
New or modified elements | |||
Section elements | Partial ○ | No ✘ | Yes ✔ |
section element » | Yes ✔ | No ✘ | Yes ✔ |
nav element » | Yes ✔ | No ✘ | Yes ✔ |
article element » | Yes ✔ | No ✘ | Yes ✔ |
aside element » | Yes ✔ | No ✘ | Yes ✔ |
hgroup element » | No ✘ | No ✘ | Yes ✔ |
header element » | Yes ✔ | No ✘ | Yes ✔ |
footer element » | Yes ✔ | No ✘ | Yes ✔ |
Global attributes or methods |
Forms |
38
|
12
|
57
|
---|---|---|---|
Field types | |||
input type=text | Partial ○ | Partial ○ | Partial ○ |
Minimal element support » | Yes ✔ | Yes ✔ | Yes ✔ |
Selection Direction » | No ✘ | No ✘ | No ✘ |
Fields | |||
Association of controls and forms | Partial ○ | No ✘ | Partial ○ |
control property on labels » | No ✘ | No ✘ | Yes ✔ |
form property on fields » | No ✘ | No ✘ | Yes ✔ |
formAction property on fields » | No ✘ | No ✘ | No ✘ |
formEnctype property on fields » | No ✘ | No ✘ | No ✘ |
formMethod property on fields » | No ✘ | No ✘ | No ✘ |
formNoValidate property on fields » | Yes ✔ | No ✘ | Yes ✔ |
formTarget property on fields » | No ✘ | No ✘ | No ✘ |
labels property on fields » | No ✘ | No ✘ | Yes ✔ |
Other attributes | Partial ○ | Partial ○ | Partial ○ |
autofocus attribute » | Yes ✔ | Yes ✔ | Yes ✔ |
autocomplete attribute » | No ✘ | No ✘ | No ✘ |
placeholder attribute » | Yes ✔ | No ✘ | Yes ✔ |
multiple attribute » | Yes ✔ | No ✘ | Yes ✔ |
dirName attribute » | No ✘ | No ✘ | No ✘ |
Forms |
User interaction |
0
|
0
|
18
|
---|---|---|---|
Drag and drop | |||
HTML editing | |||
Spellcheck | |||
spellcheck attribute » | No ✘ | No ✘ | No ✘ |
History and navigation |
10
|
0
|
10
|
---|---|---|---|
Session history » | Yes ✔ | No ✘ | Yes ✔ |
Microdata |
0
|
0
|
0
|
---|---|---|---|
Microdata » | No ✘ | No ✘ | No ✘ |
Web applications |
19
|
15
|
15
|
---|---|---|---|
Application Cache » | Yes ✔ | Yes ✔ | Yes ✔ |
Custom scheme handlers » | Yes ✔ | No ✘ | No ✘ |
Custom content handlers » | Yes ✔ | No ✘ | No ✘ |
Custom search providers » | No ✘ | No ✘ | No ✘ |
Security |
10
|
0
|
10
|
---|---|---|---|
Sandboxed iframe » | Yes ✔ | No ✘ | Yes ✔ |
Seamless iframe » | No ✘ | No ✘ | No ✘ |
iframe with inline contents » | No ✘ | No ✘ | No ✘ |
Various |
2
|
2
|
5
|
---|---|---|---|
Scoped style element » | No ✘ | No ✘ | No ✘ |
Asyncronous script execution » | No ✘ | No ✘ | Yes ✔ |
Runtime script error reporting » | Yes ✔ | Yes ✔ | Yes ✔ |
Base64 encoding and decoding » | Yes ✔ | Yes ✔ | Yes ✔ |
related specifications
Location and Orientation |
15
|
15
|
15
|
---|---|---|---|
Geolocation » | Yes ✔ | Yes ✔ | Yes ✔ |
Device Orientation » | No ✘ | No ✘ | No ✘ |
WebGL |
0
|
0
|
0
|
---|---|---|---|
3D context » | No ✘ | No ✘ | No ✘ |
Communication |
10
|
10
|
28
|
---|---|---|---|
Cross-document messaging » | Yes ✔ | Yes ✔ | Yes ✔ |
Server-Sent Events » | No ✘ | No ✘ | Yes ✔ |
XMLHttpRequest Level 2 | Partial ○ | Partial ○ | Partial ○ |
Upload files » | Yes ✔ | Yes ✔ | Yes ✔ |
Text response type » | No ✘ | No ✘ | No ✘ |
Document response type » | No ✘ | No ✘ | No ✘ |
Array buffer response type » | No ✘ | No ✘ | No ✘ |
Blob response type » | No ✘ | No ✘ | No ✘ |
WebSocket » | No ✘ | No ✘ | Yes ✔ |
Files |
0
|
0
|
0
|
---|---|---|---|
File API » | No ✘ | No ✘ | No ✘ |
File API: Directories and System » | No ✘ | No ✘ | No ✘ |
Storage |
15
|
15
|
15
|
---|---|---|---|
Session Storage » | Yes ✔ | Yes ✔ | Yes ✔ |
Local Storage » | Yes ✔ | Yes ✔ | Yes ✔ |
IndexedDB » | No ✘ | No ✘ | No ✘ |
Web SQL Database » | Yes ✔ | Yes ✔ | Yes ✔ |
Workers |
0
|
0
|
15
|
---|---|---|---|
Web Workers » | No ✘ | No ✘ | Yes ✔ |
Shared Workers » | No ✘ | No ✘ | Yes ✔ |
Local multimedia |
0
|
0
|
0
|
---|---|---|---|
Access the webcam » | No ✘ | No ✘ | No ✘ |
Notifications |
0
|
0
|
0
|
---|---|---|---|
Web Notifications » | No ✘ | No ✘ | No ✘ |
Other |
5
|
5
|
5
|
---|---|---|---|
Page Visibility » | No ✘ | No ✘ | No ✘ |
Text selection » | Yes ✔ | Yes ✔ | Yes ✔ |
Scroll into view » | Yes ✔ | Yes ✔ | Yes ✔ |
Mutation Observer » | No ✘ | No ✘ | No ✘ |
experimental
Audio |
0
|
0
|
0
|
---|---|---|---|
Web Audio API » | No ✘ | No ✘ | No ✘ |
Video and Animation |
0
|
0
|
0
|
---|---|---|---|
Full screen support » | No ✘ | No ✘ | No ✘ |
Pointer Lock support » | No ✘ | No ✘ | No ✘ |
window.requestAnimationFrame » | No ✘ | No ✘ | No ✘ |
Mobile OS Market Shares
In order to make a determination on what to support, it's important to evaluate the market share percentage use of each OS.
This chart is a little out of date, but is pretty close to today's market:
Android (operating system)
Version | Code name | Release date | API level | Distribution (March 4, 2013) |
---|---|---|---|---|
4.2.x | Jelly Bean | November 13, 2012 | 17 | 1.6% |
4.1.x | Jelly Bean | July 9, 2012 | 16 | 14.9% |
4.0.x | Ice Cream Sandwich | December 16, 2011 | 15 | 28.6% |
3.2 | Honeycomb | July 15, 2011 | 13 | 0.9% |
3.1 | Honeycomb | May 10, 2011 | 12 | 0.3% |
2.3.3–2.3.7 | Gingerbread | February 9, 2011 | 10 | 44% |
2.3–2.3.2 | Gingerbread | December 6, 2010 | 9 | 0.2% |
2.2 | Froyo | May 20, 2010 | 8 | 7.6% |
2.0–2.1 | Eclair | October 26, 2009 | 7 | 1.9% |
1.6 | Donut | September 15, 2009 | 4 | 0.2% |
IOS (operating system)
Series | iPhone | iPod Touch | iPad | iPad Mini | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model | 1st | 3G | 3GS | 4 | 4S | 5 | 1st | 2nd | 3rd | 4th | 5th | 1st | 2 | 3rd | 4th | 1st | |||||
Phone | Telephone | 1.0 | 2.0 | 3.0 | 4.0 | 5.0 | 6.0 | N/A | N/A | N/A | |||||||||||
E-mail client | 1.1.3 | 2.1.1 | 3.1.1 | 4.1 | 6.0 | 3.2 | 4.3 | 5.1 | 6.0 | 6.0 | |||||||||||
Safari | Web browser | 1.1 | |||||||||||||||||||
Music | Portable media player | 1.0 (iPod) | 2.0 (iPod) | 3.0 (iPod) | 4.0 (iPod) | 3.2 (iPod) | 4.3 (iPod) | ||||||||||||||
Videos | Video player | 3.2 | 4.3 | ||||||||||||||||||
SpringBoard | Home screen | 1.0 | 2.0 | 3.0 | 4.0 | ||||||||||||||||
Spotlight search | 3.0 | 3.0 | |||||||||||||||||||
Folders | N/A | 4.0 | N/A | 4.0 | 4.2.1 | ||||||||||||||||
Home screen backgrounds | N/A | 4.0 | N/A | 4.0 | 3.2 |
List of IOS Devices
BlackBerry (operating system)
Number of BlackBerry Users Globally: | As Of: |
---|---|
534,000 | March 1, 2003 |
1,069,000 | February 28, 2004 |
2,510,000 | February 26, 2005 |
4,900,000 | March 4, 2006 |
8,000,000 | March 3, 2007 |
14,000,000 | March 1, 2008 |
25,000,000 | February 28, 2009 |
41,000,000 | February 27, 2010 |
70,000,000 | August 27, 2011 |
77,000,000 | March 3, 2012 |
79,000,000 | December 1, 2012 |
Models
Main article: List of BlackBerry products
BlackBerry 10 devices:
- BlackBerry Z10 (2013): BlackBerry Z10
- BlackBerry Q10 (2013): BlackBerry Q10
BlackBerry 7 devices:
- BlackBerry Bold series (2011): BlackBerry Bold 9900/9930/9790
- BlackBerry Porsche Design (2012): BlackBerry Porsche Design P'9981
- BlackBerry Torch series (2011): BlackBerry Torch 9810
- BlackBerry Torch series (2011): BlackBerry Torch 9850/9860
- BlackBerry Curve series (2011): BlackBerry 9350/9360/9370/9380
- BlackBerry Curve 9320/9220 (2012)
BlackBerry 6 devices:
- BlackBerry Torch series (2010): BlackBerry Torch 9800
- BlackBerry Curve series (2010): BlackBerry Curve 9300/9330
- BlackBerry Style 9670 (2010)
- BlackBerry Pearl series (2010): BlackBerry Pearl 3G 9100/9105
- BlackBerry Bold series (2010–2011): BlackBerry Bold 9780/9788
BlackBerry 5 devices:
- BlackBerry Bold series (2008–2010): BlackBerry Bold 9000/9700/9650
- BlackBerry Tour series (2009): BlackBerry Tour (9630)
- BlackBerry Storm series (2009): BlackBerry Storm 2 (9520/9550)
- BlackBerry Storm series (2008): BlackBerry Storm (9500/9530)
- BlackBerry Curve series (2009–2010): BlackBerry Curve 8900 (8900/8910/8980)
- BlackBerry Curve series (2009): BlackBerry Curve 8520/8530
Blackberry 4 and earlier devices:
- BlackBerry 8800 series (2007): BlackBerry 8800/8820/8830
- BlackBerry Pearl series (2006): BlackBerry Pearl 8100/8110/8120/8130
- BlackBerry Pearl Flip series (2008): BlackBerry Pearl Flip 8220/8230
- BlackBerry Curve series (2007): BlackBerry Curve 8300 (8300/8310/8320/8330/8350i)
- Early pager models: 850, 857, 950, 957
- Monochrome Java-based series: 5000, 6000
- First color series: 7200, 7500, 7700
- First Sure Type phone series: 7100
Windows Mobile (operating system)
Year | Marketshare in U.S. |
---|---|
2004 | 11.3%[70] |
2005 | 17%[70] |
2006 | 37%[71] |
2007 | 42%[71] |
2008 | 27%[71] |
2009 | 15%[71] |
2010 | 7%[71] |
2011 | 3%[71] |
Pocket PC 2000 | Pocket PC 2002 | Windows Mobile 2003 | Windows Mobile 2003 SE | Windows Mobile 5.0 | Windows Mobile 6 | Windows Mobile 6.0 | Windows Mobile 6.5 | |
---|---|---|---|---|---|---|---|---|
Pocket PC (without Mobile Phone) | Pocket PC 2000 | Pocket PC 2002 | Windows Mobile 2003 for Pocket PC | Windows Mobile 2003 for Pocket PC SE | Windows Mobile 5.0 for Pocket PC | Windows Mobile 6 Classic | Windows Mobile 6.1 Classic | N/A |
Pocket PC (with Mobile Phone) | Pocket PC 2000 Phone Edition | Pocket PC 2002 Phone Edition | Windows Mobile 2003 for Pocket PC Phone Edition | Windows Mobile 2003 SE for Pocket PC Phone Edition | Windows Mobile 5.0 for Pocket PC Phone Edition | Windows Mobile 6 Professional | Windows Mobile 6.1 Professional | Windows Mobile 6.5 Professional |
Smartphone (without touch screen) | N/A | Smartphone 2002 | Windows Mobile 2003 for Smartphone | Windows Mobile 2003 SE for Smartphone | Windows Mobile 5.0 for Smartphone | Windows Mobile 6 Standard | Windows Mobile 6.1 Standard | Windows Mobile 6.5 Standard |
The Microsoft Factor
When it comes to web development technology, what happened to Microsoft?
The question you must ask yourself is, "Do I want to spend my time writing a lot of code just so that the IE and Windows Mobile users can have a nice user experience in my application?"
The following javascript can help:
<!--[
if
lt IE 9]>
<script src=
"http://html5shiv.googlecode.com/svn/trunk/html5.js"
></script>
<![endif]-->
As you see below, both desktop and mobile Windows web browsers significantly lowers the HTML5 compliance bar.
One solution is to charge your customer for using poor Microsoft technology. ***
low-endIEbrowsers
How's that for an oxymoron?
(Click to toggle detail visibility.)
|
42desktop
|
8mobile
|
320tablet
|
---|
Parsing rules |
0
|
0
|
10
|
---|---|---|---|
<!DOCTYPE html> triggers standards mode » | Yes ✔ | Yes ✔ | Yes ✔ |
HTML5 tokenizer » | No ✘ | No ✘ | Yes ✔ |
HTML5 tree building » | No ✘ | No ✘ | Yes ✔ |
SVG in text/html » | No ✘ | No ✘ | Yes ✔ |
MathML in text/html » | No ✘ | No ✘ | Yes ✔ |
Canvas |
0
|
0
|
20
|
---|---|---|---|
canvas element » | No ✘ | No ✘ | Yes ✔ |
2D context » | No ✘ | No ✘ | Yes ✔ |
Text » | No ✘ | No ✘ | Yes ✔ |
Video |
0
|
0
|
30
|
---|---|---|---|
video element » | No ✘ | No ✘ | Yes ✔ |
Subtitle support » | No ✘ | No ✘ | Yes ✔ |
Poster image support » | No ✘ | No ✘ | Yes ✔ |
MPEG-4 support » | No ✘ | No ✘ | No ✘ |
H.264 support » | No ✘ | No ✘ | Yes ✔ |
Ogg Theora support » | No ✘ | No ✘ | No ✘ |
WebM support » | No ✘ | No ✘ | No ✘ |
Audio |
0
|
0
|
20
|
---|---|---|---|
audio element » | No ✘ | No ✘ | Yes ✔ |
PCM audio support » | No ✘ | No ✘ | No ✘ |
AAC support » | No ✘ | No ✘ | Yes ✔ |
MP3 support » | No ✘ | No ✘ | Yes ✔ |
Ogg Vorbis support » | No ✘ | No ✘ | No ✘ |
Ogg Opus support » | No ✘ | No ✘ | No ✘ |
WebM support » | No ✘ | No ✘ | No ✘ |
Elements |
2
|
2
|
15
|
---|---|---|---|
Embedding custom non-visible data » | No ✘ | No ✘ | No ✘ |
New or modified elements | |||
Global attributes or methods |
Forms |
4
|
4
|
57
|
---|---|---|---|
Field types | |||
Fields | |||
Forms |
User interaction |
18
|
0
|
20
|
---|---|---|---|
Drag and drop | |||
HTML editing | |||
Spellcheck | |||
spellcheck attribute » | No ✘ | No ✘ | Yes ✔ |
History and navigation |
0
|
0
|
10
|
---|---|---|---|
Session history » | No ✘ | No ✘ | Yes ✔ |
Microdata |
0
|
0
|
0
|
---|---|---|---|
Microdata » | No ✘ | No ✘ | No ✘ |
Web applications |
1
|
0
|
16
|
---|---|---|---|
Application Cache » | No ✘ | No ✘ | Yes ✔ |
Custom scheme handlers » | No ✘ | No ✘ | No ✘ |
Custom content handlers » | No ✘ | No ✘ | No ✘ |
Custom search providers » | Yes ✔ | No ✘ | Yes ✔ |
Security |
0
|
0
|
10
|
---|---|---|---|
Sandboxed iframe » | No ✘ | No ✘ | Yes ✔ |
Seamless iframe » | No ✘ | No ✘ | No ✘ |
iframe with inline contents » | No ✘ | No ✘ | No ✘ |
Various |
1
|
1
|
5
|
---|---|---|---|
Scoped style element » | No ✘ | No ✘ | No ✘ |
Asyncronous script execution » | No ✘ | No ✘ | Yes ✔ |
Runtime script error reporting » | Yes ✔ | Yes ✔ | Yes ✔ |
Base64 encoding and decoding » | No ✘ | No ✘ | Yes ✔ |
related specifications
Location and Orientation |
0
|
0
|
15
|
---|---|---|---|
Geolocation » | No ✘ | No ✘ | Yes ✔ |
Device Orientation » | No ✘ | No ✘ | No ✘ |
WebGL |
0
|
0
|
10
|
---|---|---|---|
3D context » | No ✘ | No ✘ | No ✘ |
Communication |
5
|
0
|
27
|
---|---|---|---|
Cross-document messaging » | Yes ✔ | No ✘ | Yes ✔ |
Server-Sent Events » | No ✘ | No ✘ | No ✘ |
WebSocket » | No ✘ | No ✘ | Yes ✔ |
Files |
0
|
0
|
10
|
---|---|---|---|
File API » | No ✘ | No ✘ | Yes ✔ |
File API: Directories and System » | No ✘ | No ✘ | No ✘ |
Storage |
10
|
0
|
25
|
---|---|---|---|
Session Storage » | Yes ✔ | No ✘ | Yes ✔ |
Local Storage » | Yes ✔ | No ✘ | Yes ✔ |
IndexedDB » | No ✘ | No ✘ | Yes ✔ |
Web SQL Database » | No ✘ | No ✘ | No ✘ |
Workers |
0
|
0
|
10
|
---|---|---|---|
Web Workers » | No ✘ | No ✘ | Yes ✔ |
Shared Workers » | No ✘ | No ✘ | No ✘ |
Local multimedia |
0
|
0
|
0
|
---|---|---|---|
Access the webcam » | No ✘ | No ✘ | No ✘ |
Notifications |
0
|
0
|
0
|
---|---|---|---|
Web Notifications » | No ✘ | No ✘ | No ✘ |
Other |
1
|
1
|
7
|
---|---|---|---|
Page Visibility » | No ✘ | No ✘ | Yes ✔ |
Text selection » | No ✘ | No ✘ | Yes ✔ |
Scroll into view » | Yes ✔ | Yes ✔ | Yes ✔ |
Mutation Observer » | No ✘ | No ✘ | No ✘ |
experimental
Audio |
0
|
0
|
0
|
---|---|---|---|
Web Audio API » | No ✘ | No ✘ | No ✘ |
Video and Animation |
0
|
0
|
3
|
---|---|---|---|
Full screen support » | No ✘ | No ✘ | No ✘ |
Pointer Lock support » | No ✘ | No ✘ | No ✘ |
window.requestAnimationFrame » | No ✘ | No ✘ | Yes ✔ |
Desktop Browsers
Don't forget about supporting desktop browsers.
Lets' look at the top desktop browsers.
Worldwide Browser Statistics December 2012 to January 2013
The following table shows browser usage movements during the past month.
Browser | December | January | change | relative |
---|---|---|---|---|
IE (all) | 30.78% | 30.70% | -0.08% | -0.30% |
IE 9.0+ | 18.13% | 18.52% | +0.39% | +2.20% |
IE 8.0 | 11.48% | 11.12% | -0.36% | -3.10% |
IE 7.0 | 0.79% | 0.73% | -0.06% | -7.60% |
IE 6.0 | 0.38% | 0.33% | -0.05% | -13.20% |
Firefox | 21.89% | 21.43% | -0.46% | -2.10% |
Chrome | 36.46% | 36.55% | +0.09% | +0.20% |
Safari | 7.92% | 8.27% | +0.35% | +4.40% |
Opera | 1.24% | 1.19% | -0.05% | -4.00% |
Others | 1.71% | 1.86% | +0.15% | +8.80% |
most recent most popular browsers(Click to toggle detail visibility.) |
320
|
468
|
393
|
---|
Parsing rules |
10
|
10
|
10
|
---|---|---|---|
<!DOCTYPE html> triggers standards mode » | Yes ✔ | Yes ✔ | Yes ✔ |
HTML5 tokenizer » | Yes ✔ | Yes ✔ | Yes ✔ |
HTML5 tree building » | Yes ✔ | Yes ✔ | Yes ✔ |
SVG in text/html » | Yes ✔ | Yes ✔ | Yes ✔ |
MathML in text/html » | Yes ✔ | Yes ✔ | Yes ✔ |
Canvas |
20
|
20
|
20
|
---|---|---|---|
canvas element » | Yes ✔ | Yes ✔ | Yes ✔ |
2D context » | Yes ✔ | Yes ✔ | Yes ✔ |
Text » | Yes ✔ | Yes ✔ | Yes ✔ |
Video |
30
|
30
|
21
|
---|---|---|---|
video element » | Yes ✔ | Yes ✔ | Yes ✔ |
Subtitle support » | Yes ✔ | Yes ✔ | No ✘ |
Poster image support » | Yes ✔ | Yes ✔ | Yes ✔ |
MPEG-4 support » | No ✘ | No ✘ | No ✘ |
H.264 support » | Yes ✔ | Yes ✔ | No ✘ |
Ogg Theora support » | No ✘ | Yes ✔ | Yes ✔ |
WebM support » | No ✘ | Yes ✔ | Yes ✔ |
Audio |
20
|
20
|
20
|
---|---|---|---|
audio element » | Yes ✔ | Yes ✔ | Yes ✔ |
PCM audio support » | No ✘ | Yes ✔ | Yes ✔ |
AAC support » | Yes ✔ | Yes ✔ | No ✘ |
MP3 support » | Yes ✔ | Yes ✔ | No ✘ |
Ogg Vorbis support » | No ✘ | Yes ✔ | Yes ✔ |
Ogg Opus support » | No ✘ | No ✘ | Yes ✔ |
WebM support » | No ✘ | Yes ✔ | Yes ✔ |
Elements |
15
|
30
|
26
|
---|---|---|---|
Embedding custom non-visible data » | No ✘ | Yes ✔ | Yes ✔ |
New or modified elements | |||
Global attributes or methods |
Forms |
57
|
110
|
61
|
---|---|---|---|
Field types | |||
Fields | |||
Forms |
User interaction |
20
|
20
|
20
|
---|---|---|---|
Drag and drop | |||
HTML editing | |||
Spellcheck | |||
spellcheck attribute » | Yes ✔ | Yes ✔ | Yes ✔ |
History and navigation |
10
|
10
|
10
|
---|---|---|---|
Session history » | Yes ✔ | Yes ✔ | Yes ✔ |
Microdata |
0
|
0
|
15
|
---|---|---|---|
Microdata » | No ✘ | No ✘ | Yes ✔ |
Web applications |
16
|
18
|
20
|
---|---|---|---|
Application Cache » | Yes ✔ | Yes ✔ | Yes ✔ |
Custom scheme handlers » | No ✘ | Yes ✔ | Yes ✔ |
Custom content handlers » | No ✘ | No ✘ | Yes ✔ |
Custom search providers » | Yes ✔ | Yes ✔ | Yes ✔ |
Security |
10
|
20
|
10
|
---|---|---|---|
Sandboxed iframe » | Yes ✔ | Yes ✔ | Yes ✔ |
Seamless iframe » | No ✘ | Yes ✔ | No ✘ |
iframe with inline contents » | No ✘ | Yes ✔ | No ✘ |
Various |
5
|
5
|
5
|
---|---|---|---|
Scoped style element » | No ✘ | No ✘ | No ✘ |
Asyncronous script execution » | Yes ✔ | Yes ✔ | Yes ✔ |
Runtime script error reporting » | Yes ✔ | Yes ✔ | Yes ✔ |
Base64 encoding and decoding » | Yes ✔ | Yes ✔ | Yes ✔ |
related specifications
Location and Orientation |
15
|
20
|
20
|
---|---|---|---|
Geolocation » | Yes ✔ | Yes ✔ | Yes ✔ |
Device Orientation » | No ✘ | Yes ✔ | Yes ✔ |
WebGL |
10
|
25
|
25
|
---|---|---|---|
3D context » | No ✘ | Yes ✔ | Yes ✔ |
Communication |
27
|
35
|
35
|
---|---|---|---|
Cross-document messaging » | Yes ✔ | Yes ✔ | Yes ✔ |
Server-Sent Events » | No ✘ | Yes ✔ | Yes ✔ |
WebSocket » | Yes ✔ | Yes ✔ | Yes ✔ |
Files |
10
|
10
|
10
|
---|---|---|---|
File API » | Yes ✔ | Yes ✔ | Yes ✔ |
File API: Directories and System » | No ✘ | Yes ✔ | No ✘ |
Storage |
25
|
25
|
25
|
---|---|---|---|
Session Storage » | Yes ✔ | Yes ✔ | Yes ✔ |
Local Storage » | Yes ✔ | Yes ✔ | Yes ✔ |
IndexedDB » | Yes ✔ | Yes ✔ | Yes ✔ |
Web SQL Database » | No ✘ | Yes ✔ | No ✘ |
Workers |
10
|
15
|
10
|
---|---|---|---|
Web Workers » | Yes ✔ | Yes ✔ | Yes ✔ |
Shared Workers » | No ✘ | Yes ✔ | No ✘ |
Local multimedia |
0
|
10
|
10
|
---|---|---|---|
Access the webcam » | No ✘ | Yes ✔ | Yes ✔ |
Notifications |
0
|
10
|
0
|
---|---|---|---|
Web Notifications » | No ✘ | Yes ✔ | No ✘ |
Other |
7
|
10
|
10
|
---|---|---|---|
Page Visibility » | Yes ✔ | Yes ✔ | Yes ✔ |
Text selection » | Yes ✔ | Yes ✔ | Yes ✔ |
Scroll into view » | Yes ✔ | Yes ✔ | Yes ✔ |
Mutation Observer » | No ✘ | Yes ✔ | Yes ✔ |
experimental
Audio |
0
|
5
|
0
|
---|---|---|---|
Web Audio API » | No ✘ | Yes ✔ | No ✘ |
Video and Animation |
3
|
10
|
10
|
---|---|---|---|
Full screen support » | No ✘ | Yes ✔ | Yes ✔ |
Pointer Lock support » | No ✘ | Yes ✔ | Yes ✔ |
window.requestAnimationFrame » | Yes ✔ | Yes ✔ | Yes ✔ |
Other Platforms
Odds are that your application won't need to run on television or gaming browsers, but just in case, here's some stats...
televisionbrowsers |
341
|
302
|
357
|
---|
gamingbrowsers |
94
|
68
|
120
|
---|
Web Browser Layout Engines
Layout engine | Release version | Preview version | Used by |
---|---|---|---|
Amaya | 11.3.1 | 11.3-pre | Amaya |
Gecko | 19.0 | 20.0 | All Mozilla software, including Firefox; SeaMonkey and Galeon; Camino; K-Meleon; Flock (up to 2.x); Debian IceWeasel; GNU IceCat(formerly GNU IceWeasel); Icedove, Iceape and Iceowl; Fennec. Also used by the Maple platform in 2010 and 2011 Samsung "SmartTV" devices which are based on the build used in Firefox 3.0. |
KHTML | N/A | Konqueror† | |
Presto | 2.10.229 | 2.10.238 | Opera; Opera Mobile, Nintendo DS & DSi Browser; Internet Channel |
Tasman | (IE 5.2.3 for Mac) | none (aborted in 2003) | Internet Explorer 5+ for Mac OS X |
Trident | 6.0 (IE 10) | 6.0 (IE 10) | Internet Explorer and other Internet Explorer shells like Maxthon (Microsoft Windows operating systems only), Windows Phone 8 |
WebKit | 534.20 | r146740 | Tizen (both OS and browser), Safari (both desktop and mobile), Google Chrome, Maxthon 3, Shiira, iCab 4, OmniWeb 5.5+, Web, Adobe AIR, Midori, Adobe Dreamweaver CS4 and CS5, Android browser, Palm webOS browser, Symbian S60 browser, OWB, Steam, Rekonq,Arora, Flock (version 3+), RockMelt, Dolphin Browser, Sleipnir, Konqueror†, rekonq. Used by the LG Smart TV platform to enable web content on TVs. |
Different browsers are built upon different layout engines.
Given the statistics we've seen thus far, check out HTML5 support here: http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML_5)
Google Chrome, Safari and Android use WebKit, which has be the best HTML5 support.
However, at the current time, it's pretty spotty across the board.
Summary
The benefits of HTML5 include ease of developing cross platform applications:
OOB features include: smart form controls, multimedia support, local databases, drawing, better performance, geolocation, etc.
The problem is that HTML5 is not close to being fully supported by all end user devices.
Definitely use HTML5 features that are implemented in all end user devices of your given user population.
Realize that most HTML5 features are designed to degrade gracefully, e.g., form controls for email and telephone fields degrede to Input type=text. That means that for the devices that support email and tel that device will display an appropriate keyboard input control, which is pretty nifty for mobile devices.
Consider using HTML5 field validation. It's easy to turn on and you are already validating all the data on the server side anyway, right?
Consider using HTML5 field validation. It's easy to turn on and you are already validating all the data on the server side anyway, right?
Be smart about which HTML5 features you use. For example, if you are developing a gaming application you might save time by using HTML5 canvas features and including a javascript library for IE users.
Use HTML5 for making sites accessible. The HTML5 tags make it easier for screen readers to easily access content. Using HTML5 symantic tags, e.g., <nav> <section> <asidie> helps to make a better experience and makes your code cleaner. HTML5 has built in roles that make ARIA compliance a snap.
Determine if the end user device supports the HTML5 feature you have implemented, if it does not, then provide a graceful downgraded option.
If nothing else, please at least use <!DOCTYPE html> it even works in IE!
References
http://lexsheehan.blogspot.com/2013/04/the-best-html5-storage-mechanism.html
http://en.wikipedia.org/wiki/Android_(operating_system)
http://en.wikipedia.org/wiki/Android_(operating_system)
http://en.wikipedia.org/wiki/IOS
http://html5test.com/
http://www.whatwg.org/specs/web-apps/current-work/
http://www.w3.org/WAI/intro/aria
http://ejohn.org/blog/html5-doctype/
http://bgr.com/2012/12/04/mobile-market-share-2012-android/
http://bgr.com/2012/12/04/mobile-market-share-2012-android/
*** http://www.huffingtonpost.com/2012/06/14/internet-explorer-7-tax-kogan_n_1597220.html
Techsaga is the best Mobile apps development companyGet a mobile app for your business today, to connect with a wider audience. Believing and nurturing, Innovation, Advancement and Growth introducing Technology and much more that we do in our routine to bring awesomeness to every product. We never settle until we achieve best.
ReplyDelete