4
<title>HTML5test - How well does your browser support HTML5?</title>
8
<meta http-equiv="X-UA-Compatible" content="IE=EDGE">
10
<meta name="apple-mobile-web-app-capable" content="yes">
11
<meta name="apple-mobile-web-app-status-bar-style" content="black">
12
<meta name="viewport" content="width=device-width, initial-scale=1.0">
14
<link rel="stylesheet" href="/css/main.css" type="text/css">
16
<script src='/scripts/base.js' type='text/javascript'></script>
17
<script src='/scripts/8/engine.js' type='text/javascript'></script>
18
<script src='/scripts/8/data.js' type='text/javascript'></script>
21
(function(){var p=[],w=window,d=document,e=f=0;p.push('ua='+encodeURIComponent(navigator.userAgent));e|=w.ActiveXObject?1:0;e|=w.opera?2:0;e|=w.chrome?4:0;
22
e|='getBoxObjectFor' in d || 'mozInnerScreenX' in w?8:0;e|=('WebKitCSSMatrix' in w||'WebKitPoint' in w||'webkitStorageInfo' in w||'webkitURL' in w)?16:0;
23
e|=(e&16&&({}.toString).toString().indexOf("\n")===-1)?32:0;p.push('e='+e);f|='sandbox' in d.createElement('iframe')?1:0;f|='WebSocket' in w?2:0;
24
f|=w.Worker?4:0;f|=w.applicationCache?8:0;f|=w.history && history.pushState?16:0;f|=d.documentElement.webkitRequestFullScreen?32:0;f|='FileReader' in w?64:0;
25
p.push('f='+f);p.push('r='+Math.random().toString(36).substring(7));p.push('w='+screen.width);p.push('h='+screen.height);var s=d.createElement('script');
26
s.src='//api.whichbrowser.net/rel/detect.js?' + p.join('&');d.getElementsByTagName('head')[0].appendChild(s);})();
29
<meta name="application-name" content="HTML5test"/>
31
<link rel="apple-touch-icon" sizes="57x57" href="/images/icons/apple-touch-icon-57x57.png" />
32
<link rel="apple-touch-icon" sizes="114x114" href="/images/icons/apple-touch-icon-114x114.png" />
33
<link rel="apple-touch-icon" sizes="72x72" href="/images/icons/apple-touch-icon-72x72.png" />
34
<link rel="apple-touch-icon" sizes="144x144" href="/images/icons/apple-touch-icon-144x144.png" />
35
<link rel="apple-touch-icon" sizes="60x60" href="/images/icons/apple-touch-icon-60x60.png" />
36
<link rel="apple-touch-icon" sizes="120x120" href="/images/icons/apple-touch-icon-120x120.png" />
37
<link rel="apple-touch-icon" sizes="76x76" href="/images/icons/apple-touch-icon-76x76.png" />
38
<link rel="apple-touch-icon" sizes="152x152" href="/images/icons/apple-touch-icon-152x152.png" />
39
<link rel="icon" type="image/png" href="/images/icons/favicon-16x16.png" sizes="16x16" />
40
<link rel="icon" type="image/png" href="/images/icons/favicon-32x32.png" sizes="32x32" />
41
<link rel="icon" type="image/png" href="/images/icons/favicon-96x96.png" sizes="96x96" />
42
<link rel="icon" type="image/png" href="/images/icons/favicon-160x160.png" sizes="160x160" />
43
<link rel="icon" type="image/png" href="/images/icons/favicon-196x196.png" sizes="196x196" />
44
<meta name="msapplication-TileColor" content="#0092bf" />
45
<meta name="msapplication-TileImage" content="/images/icons/mstile-144x144.png" />
47
<meta property="og:title" content="The HTML5 test - How well does your browser support HTML5?" />
48
<meta property="og:description" content="The HTML5 test score is an indication of how well your browser supports the upcoming HTML5 standard and related specifications. How well does your browser support HTML5?" />
49
<meta property="og:type" content="website" />
50
<meta property="og:url" content="https://html5test.com" />
51
<meta property="og:image" content="https://html5test.com/images/thumbnail.jpg" />
52
<meta property="og:site_name" content="HTML5test.com" />
53
<meta property="fb:admins" content="1087142132" />
58
Copyright (c) 2010-2016 Niels Leenheer
60
Permission is hereby granted, free of charge, to any person obtaining
61
a copy of this software and associated documentation files (the
62
"Software"), to deal in the Software without restriction, including
63
without limitation the rights to use, copy, modify, merge, publish,
64
distribute, sublicense, and/or sell copies of the Software, and to
65
permit persons to whom the Software is furnished to do so, subject to
66
the following conditions:
68
The above copyright notice and this permission notice shall be
69
included in all copies or substantial portions of the Software.
71
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
72
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
73
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
74
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
75
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
76
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
77
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
82
<div id="fb-root"></div>
83
<div id='contentwrapper'>
85
<h1><span>HTML<strong>5</strong>test</span> <em>how well does your browser support HTML5?</em></h1>
87
<div class='navigation'>
89
<li class='selected'><a href='/index.html'>Your browser</a></li>
90
<li><a href='/results/desktop.html'>Other browsers</a></li>
91
<li><a href='/compare/browser/index.html'>Compare</a></li>
94
<li><a href='http://blog.html5test.com/'>News</a></li>
95
<li><a href='/devicelab'>Device Lab</a></li>
96
<li><a href='/about.html'>About the test</a></li>
104
To view the results of your browser you need to enable Javascript!
108
<div id='loading'><div></div></div>
110
<div id='warning'></div>
112
<div id='contents' class='column' style='visibility: hidden;'>
113
<div id='score'></div>
114
<div id='results'></div>
117
<!-- BuySellAds.com Zone Code -->
118
<div id="bsap_1262954" class="bsarocks bsap_6c18c40d896c427f049e74e4c708ab51"></div>
119
<!-- End BuySellAds.com Zone Code -->
124
<h2>About HTML5test</h2>
127
<span id='html5'></span>
130
The HTML5 test score is an indication of how well your browser supports the
131
HTML5 standard and related specifications. Find out which parts of HTML5 are
132
supported by your browser today and compare the results with other browsers.
136
The HTML5 test does not try to test all of the new features offered by HTML5, nor does it try to test the functionality of each feature it does detect.
137
Despite these shortcomings we hope that by quantifying the level of support users and web developers will get an idea of how hard the
138
browser manufacturers work on improving their browsers and the web as a development platform.
142
The score is calculated by testing for the many new features of HTML5. Each feature is worth one or more points. Apart from the main HTML5
143
specification and other specifications created the W3C HTML Working Group or WHATWG, this test also awards points for supporting related drafts and
147
Please be aware that although the HTML5 specification is now an official recommendation, other specifications that are being tested are still in development
148
and could change before receiving an official status.
149
In the future new tests will be added for new specifications and existing tests will be updated when the specifications change.
152
<h3>Help us improve HTML5 test by donating</h3>
154
This will allow us to spend more time on HTML5test.com and acquire more devices for our testing lab.
160
<div class='buttons'>
161
<a class='button donate' href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9DNBJPQFEHYSC"><span>Donate using PayPal</span></a>
162
<a class='button followme' href="https://www.twitter.com/html5test"><span>Follow me on Twitter</span></a>
163
<a class='button contact' href="mailto:info@html5test.com"><span>Contact me</span></a>
164
<a class='button developed' href="https://github.com/NielsLeenheer/html5test"><span>Developed at GitHub</span></a>
169
<!-- BuySellAds.com Zone Code -->
170
<div id="bsap_1262955" class="bsarocks bsap_6c18c40d896c427f049e74e4c708ab51"></div>
171
<!-- End BuySellAds.com Zone Code -->
177
<div class='copyright'>
179
June 2016 - version 8.0. Created by Niels Leenheer.<br>
180
Please note that the HTML5 test is not affiliated with the W3C or the HTML5 working group.<br>
181
HTML5 Logo by <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a>.
182
Browser detection by <a href='http://whichbrowser.net'>WhichBrowser</a>.
186
<a href="http://www.cloudvps.nl" target="_blank" ><b>CloudVPS</b><br> High Availability<br> Cloud Servers</a>
194
<div id='index'></div>
200
function waitForWhichBrowser(cb) {
204
if (typeof WhichBrowser == 'undefined')
205
window.setTimeout(wait, 100)
214
waitForWhichBrowser(function() {
216
Browsers = new WhichBrowser({
218
detectCamouflage: true
221
Blacklist = { 'OneBrowser' : { blocked: true, identifier: Browsers.browser.toString() } };
223
if (typeof Blacklist[Browsers.browser.name] != 'undefined')
225
if (Blacklist[Browsers.browser.name].blocked)
227
var contents = document.getElementById('contents');
228
contents.style.visibility = 'visible';
230
var warning = document.getElementById('warning');
232
"<div class='blocked'>" +
233
"<h2>" + Blacklist[Browsers.browser.name].identifier + " has been blocked!</h2>" +
234
"<p>It appears that your browser is too buggy to test or is deliberately attempting to get higher scores " +
235
"by claiming it supports features that it does not. In any case consider switching to a different browser, " +
236
"because this will also cause problems for websites that attempt to use these features.</p>" +
237
"<button onclick='this.style.display=\"none\"; start();'>Show results anyway</button>" +
240
var loading = document.getElementById('loading');
241
loading.style.display = 'none';
255
if (location.search) {
256
var parts = location.search.substring(1).split('&');
258
for (var i = 0; i < parts.length; i++) {
259
var nv = parts[i].split('=');
260
if (!nv[0]) continue;
261
params[nv[0]] = decodeURIComponent(nv[1]) || true;
265
var identifier = typeof params.identifier != 'undefined' ? params.identifier : '';
266
var source = typeof params.source != 'undefined' ? params.source : '';
267
var task = typeof params.task != 'undefined' ? params.task : '';
269
new Test(function(r) {
270
var m = new Metadata(tests);
272
var c = new Calculate(r, m.data);
277
'"release": "' + r.release + '",' +
278
'"source": "' + source + '",' +
279
'"identifier": "' + escapeSlashes(identifier) + '",' +
280
'"task": "' + task + '",' +
281
'"uniqueid": "' + r.uniqueid + '",' +
282
'"score": ' + c.score + ',' +
283
'"maximum": ' + c.maximum + ',' +
284
'"camouflage": "' + (Browsers.camouflage ? '1' : '0') + '",' +
285
'"features": "' + (Browsers.features.join(',')) + '",' +
286
'"browserName": "' + (Browsers.browser.name ? Browsers.browser.name : '') + '",' +
287
'"browserChannel": "' + (Browsers.browser.channel ? Browsers.browser.channel : '') + '",' +
288
'"browserVersion": "' + (Browsers.browser.version ? Browsers.browser.version.toString() : '') + '",' +
289
'"browserVersionType": "' + (Browsers.browser.version ? Browsers.browser.version.type : '') + '",' +
290
'"browserVersionMajor": "' + (Browsers.browser.version ? Browsers.browser.version.major : '') + '",' +
291
'"browserVersionMinor": "' + (Browsers.browser.version ? Browsers.browser.version.minor : '') + '",' +
292
'"browserVersionOriginal": "' + (Browsers.browser.version ? Browsers.browser.version.original : '') + '",' +
293
'"browserMode": "' + (Browsers.browser.mode ? Browsers.browser.mode : '') + '",' +
294
'"engineName": "' + (Browsers.engine.name ? Browsers.engine.name : '') + '",' +
295
'"engineVersion": "' + (Browsers.engine.version ? Browsers.engine.version.toString() : '') + '",' +
296
'"osName": "' + (Browsers.os.name ? Browsers.os.name : '') + '",' +
297
'"osFamily": "' + (Browsers.os.family ? Browsers.os.family : '') + '",' +
298
'"osVersion": "' + (Browsers.os.version ? Browsers.os.version.toString() : '') + '",' +
299
'"deviceManufacturer": "' + (Browsers.device.manufacturer ? Browsers.device.manufacturer : '') + '",' +
300
'"deviceModel": "' + (Browsers.device.model ? Browsers.device.model : '') + '",' +
301
'"deviceSeries": "' + (Browsers.device.series ? Browsers.device.series : '') + '",' +
302
'"deviceType": "' + (Browsers.device.type ? Browsers.device.type : '') + '",' +
303
'"deviceIdentified": "' + (Browsers.device.identified ? '1' : '0' ) + '",' +
304
'"deviceWidth": "' + (screen.width) + '",' +
305
'"deviceHeight": "' + (screen.height) + '",' +
306
'"useragent": "' + navigator.userAgent + '",' +
307
'"humanReadable": "' + Browsers.toString() + '",' +
308
'"points": "' + c.points + '",' +
309
'"results": "' + r.results + '"' +
312
submit('submit', payload);
314
alert('Could not submit results: ' + e.message);
318
/* Update total score */
319
var container = document.getElementById('score');
321
container.innerHTML = tim(
322
"<div class='pointsPanel'>" +
323
"<h2><span>Your browser scores</span> <strong>{{score}}</strong> <span>out of {{maximum}} points</span></h2>" +
328
/* Show box for confirming useragent detection */
329
new Confirm(container, {
331
onConfirm: function() { submit('confirm', '{"uniqueid": "' + r.uniqueid + '"}'); },
332
onReport: function() { submit('report', '{"uniqueid": "' + r.uniqueid + '"}'); },
333
onFeedback: function(value) { submit('feedback', JSON.stringify({ uniqueid: r.uniqueid, value: value })); }
336
/* Show action buttons */
337
var wrapper = document.createElement('div');
338
wrapper.className = 'wrapper';
339
container.appendChild(wrapper);
341
var buttons = document.createElement('div');
342
buttons.className = 'buttons';
343
wrapper.appendChild(buttons);
345
var button = document.createElement('span');
346
button.className = 'button save';
347
button.innerHTML = '<span>Save results</span>';
348
buttons.appendChild(button);
352
onSave: function() { submit('save', '{"uniqueid": "' + r.uniqueid + '"}'); }
355
var button = document.createElement('a');
356
button.className = 'button compare';
357
button.href = '/compare/browser/mybrowser.html';
358
button.innerHTML = '<span>Compare to...</span>';
359
buttons.appendChild(button);
361
var button = document.createElement('span');
362
button.className = 'button share';
363
button.innerHTML = '<span>Share</span>';
364
buttons.appendChild(button);
368
browser: Browsers.toString()
371
var button = document.createElement('a');
372
button.className = 'button donate';
373
button.href = 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9DNBJPQFEHYSC';
374
button.innerHTML = '<span>Donate</span>';
375
buttons.appendChild(button);
377
/* Show detailed report of scores */
378
var container = document.getElementById('results');
379
var div = document.createElement('div');
380
div.className = 'resultsTable detailsTable';
381
container.appendChild(div);
383
var table = new ResultsTable({
395
table.updateColumn(0, { points: c.points, maximum: c.maximum, score: c.score, results: r.results });
399
index: document.getElementById('index'),
400
wrapper: document.getElementById('contentwrapper')
404
function submit(method, payload) {
406
if (window.XMLHttpRequest) {
407
httpRequest = new XMLHttpRequest();
408
} else if (window.ActiveXObject) {
409
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
412
httpRequest.open('POST','/api/' + method, true);
413
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
414
httpRequest.send('payload=' + encodeURIComponent(payload));
417
window.setTimeout(function() {
418
var contents = document.getElementById('contents');
419
contents.style.visibility = 'visible';
421
var loading = document.getElementById('loading');
422
loading.style.display = 'none';
427
if (typeof console != 'undefined') console.log(e);
429
alert('Test has failed: ' + e.message);
431
var contents = document.getElementById('contents');
432
contents.style.visibility = 'visible';
434
var loading = document.getElementById('loading');
435
loading.style.display = 'none';
443
var bsa = document.createElement('script');
444
bsa.type = 'text/javascript';
446
bsa.src = '//s3.buysellads.com/ac/bsa.js';
447
(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(bsa);
451
var _gaq = _gaq || [];
452
_gaq.push(['_setAccount', 'UA-68192-4']);
453
_gaq.push(['_trackPageview']);
456
var ga = document.createElement('script');
457
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
458
ga.setAttribute('async', 'true');
459
document.documentElement.firstChild.appendChild(ga);
b'\\ No newline at end of file'