window.caniuse=function(b){function L(a,c){if(!+"\u000b1"){a.innerHTML=c;return a}var d=a.cloneNode(false);d.innerHTML=c;a.parentNode.replaceChild(d,a);return d}function t(a){if(a==="summary")return"";return'<a class="permalink" href="#feat='+a+'" title="Link to just this table">#</a> '}function o(a,c,d){return'<label><input type="checkbox" onclick="caniuse.MC()" value="'+a+'"'+(d?"":" checked")+">"+c+"</label>"}function O(a){var c="";b.each(a,function(d,e){c+='<option value="'+d+'">'+e+"</option>"});
return c}function m(a,c,d,e){return'<fieldset id="'+a+'"><legend>'+c+"</legend>"+(e?'<label><input type="checkbox" onclick="caniuse.selAll(this);" value="All" checked>All</label>':"")+d+"</fieldset>"}function U(){if(caniuse.curOption&&!caniuse.curOption.checked)b.each(H,function(k){this==caniuse.curOption&&H.splice(k,1)});else caniuse.curOption&&H.push(caniuse.curOption);if(caniuse.curOption&&H.length>2){var a=H.shift();b(a).get(0).checked=false}var c=[];a=b("#comp_opts .browser_opts :checkbox:checked");
if(a.length<2)B.empty();else{b(a).each(function(k){var n;n=b(this).val();var u=n.split("|");n={b_id:n,name:u[0],ver:u[1],browser:v[u[0]].browser,full_version:M(u[1])};c[k]=n});document.location.href="#compare=y&b1="+c[0].b_id+"&b2="+c[1].b_id;var d=[],e=0,g=0,f={n:"No",y:"Yes",a:"Partial",u:"Unknown"};b.each(I,function(k,n){var u=false;b.each(n.categories,function(){if(p.cats[this]&&p.statuses[n.status])u=true});if(u)if(k!="summary"){var r=n.stats[c[0].name][c[0].ver],x=n.stats[c[1].name][c[1].ver];
if(r=="j"||r=="p")r="n";else if(r=="a")e+=0.5;else r=="y"&&e++;if(x=="j"||x=="p")x="n";else if(x=="a")g+=0.5;else x=="y"&&g++;if(r!=x){link="#feat="+k;d.push('<tr><th><a href="'+link+'" onclick="caniuse.feat=\''+k+"';caniuse.setMode('wciu');return false;\">"+n.title+'</a></th><td class="'+r+'">'+f[r]+'</td><td class="'+x+'">'+f[x]+"</td></tr>")}}});a=c[0].browser+" "+c[0].full_version;var h=c[1].browser+" "+c[1].full_version,i=a,j=h,l=false;if(e<g){i=h;j=a}if(e==g)l=true;var w=Math.round(Math.max(e,
g)/Math.min(e,g)*10)/10;if(w==1)l=true;i="Based on this information, the feature support in "+i;a='<table id="browser_comparison">'+("<caption>"+(l?i+" and "+j+" is equally good.":i+" is <strong>"+w+" times better</strong> than in "+j)+"</caption>")+'<thead><tr><th></th><th class="'+c[0].name+'">'+a+'</th><th class="'+c[1].name+'">'+h+"</th></tr></thead>";h=d.join("");B.html(a+h)}}function ca(){var a="",c=b.getURLParam("b1"),d=b.getURLParam("b2");b.each(v,function(e,g){a+='<fieldset class="browser_opts"><legend>'+
g.browser+"</legend>";b.each(g.versions,function(f,h){if(!(f>0&&h==g.versions[f-1])){var i=e+"|"+h,j=c!=i&&d!=i,l=a,w=M(h);a=l+('<label><input type="checkbox" onchange="caniuse.MC(0,this)" value="'+i+'"'+(j?"":" checked")+">"+w+"</label>")}});a+="</fieldset>"});return a}function V(){var a="",c="";P();b.each(C,function(g,f){a+=o(g,f)});var d={};b.each(I,function(g,f){b.each(f.categories,function(){if(d[this])return false;c+='<p><input type="checkbox" onclick="caniuse.MC()" value="'+this+'" checked><a onclick="return caniuse.MC(\''+
this+'\')" href="#">'+this+"</a></p>";d[this]=this})});var e=ca();b("#options").html('<p class="browser_compare_note">Select two browsers to compare</p>'+m("cats","Category",c,true)+m("statuses","Status",a,true)+'<form id="comp_opts">'+e+"</form>");b('#statuses input[value="All"],#statuses input[value="unoff"]').removeAttr("checked");b("#comp_opts .browser_opts :checkbox:checked").each(function(){this.value==b.getURLParam("b1")&&H.push(this);if(this.value==b.getURLParam("b2"))caniuse.curOption=this})}
function W(){var a="",c="",d="",e="",g={};b.each(X,function(){p[this]={}});P();b.each(v,function(h,i){a+=o(h,i.browser)});b.each(K,function(h,i){d+=o(h,i)});b.each(C,function(h,i){e+=o(h,i)});b.each(I,function(h,i){b.each(i.categories,function(){if(g[this])return false;c+='<p><input type="checkbox" onclick="caniuse.MC()" value="'+this+'" checked><a onclick="return caniuse.MC(\''+this+'\')" href="#">'+this+"</a></p>";g[this]=this})});var f=""+m("cats","Category",c,true)+m("agents","Web Browser",a,
true)+m("eras","Time period",d,true)+m("statuses","Status",e,true)+m("alts","Alternatives",o("p"," Accept plug-ins",true)+o("j"," Accept JS solution",true))+m("search","Search",'<input type="text" name="search"><p></p>')+m("sort","Sort",'<select name="sort" onchange="caniuse.MC()">'+O({score:"Most supported first",rscore:"Least support first",alpha:"Alphabetical",ralpha:"Reverse Alphabetical"})+"</select><p></p>")+m("misc","Other options",o("detailed"," Detailed tables")+o("bw_shaded"," Accessible colors",
!D)+o("show_conc"," Show conclusions",!y));b("#options").hide().html(f).slideDown("slow");b('#statuses input[value="All"],#statuses input[value="unoff"]').removeAttr("checked")}function E(a,c,d){var e=true,g=[];b("#"+a+" input").each(function(h,i){var j=b(i).val();if(c){var l=c==j;if(j=="Summary")l=true;p.cats[j]=l;i.checked=l}else if(i.checked)p[a][j]=true;else{p[a][j]=false;if(d){delete d[j];a=="eras"&&j!="All"&&g.push(h-1)}e=false}});if(a=="eras"){g.reverse();b.each(v,function(h,i){b.each(g,function(){i.versions.splice(this,
1)})})}var f=b("#"+a+' input[value="All"]');if(f.length)f[0].checked=e}function M(a){a+="";return a.indexOf(".")!=-1?a:a.indexOf("x")!=-1?a.replace("x",".*"):a+".0"}function da(){b("table#clone").remove();var a=b("table#no_details"),c=a.clone();c.attr("id","clone");c.css({left:a.offset().left,width:b("table#no_details").width()});B.append(c);b(window).bind("scroll resize",function(){var d=a.offset().left,e=window.scrollY-a.offset().top;c.css("visibility",e>0?"visible":"hidden");c.css("left",d)})}
function Y(){var a='<thead><tr><th class="first"'+(q?"":' colspan="2"')+"></th>";b.each(v,function(c,d){a+='<th class="'+c+'">'+(q?d.browser:d.abbr)+"</th>"});a+="</tr></thead>";return a}function ea(a,c){var d="";a.support_score=0;a.result={};a.headcol=false;var e=0;b.each(K,function(g,f){d+=fa(g,f,a,e,c);e++});return d=q?"<tbody>"+d+"</tbody>":d}function ga(a){if(F||!y)return"";var c='<tfoot><tr><td colspan="5">Conclusion: ',d;b.each(a,function(){d=this.join(", ")});c+=d?'<span class="n">Not ready<a href="#not_ready_note">*</a>.</span> Waiting for '+
d+" to expire":'<span class="y">Ready to be used now!</span>';c+="</td></tr></tfoot>";return c}function Z(){var a=[];b.each(p.alts,function(c,d){d&&a.push("alt_"+c)});return a.join(" ")}function ha(a,c){var d=ea(a,c);if(!q)return d;var e=Z(),g=C[a.status]||a.status;g=a.spec?'<p class="spec"><span class="status '+a.status+'"> - '+g+"</span>":"";var f="";if(a.links){f+="<dl><dt>Resources:</dt>";b.each(a.links,function(){f+='<dd><a href="'+this.url+'">'+this.title+"</a></dd>"});f+="</dl>"}var h='<p class="description">'+
a.description+"</p>",i=a.notes?'<p class="notes"><b>Note:</b> '+a.notes+"</p>":"";return'<div id="'+c+'" class="'+a.categories.join(" ")+'"><h3>'+t(c)+'<a href="'+a.spec+'" title="View specification">'+a.title+"</a></h3>"+g+h+f+'<table class="'+e+'">'+Y()+d+ga(a.result)+"</table>"+i+"</div>"}function ia(a,c){F=a=="summary";var d=false;b.each(c.categories,function(){if(J.length){if(Q[a])d=true}else if(a==caniuse.feat)d=true;else if(b.isArray(caniuse.feat)&&(b.inArray(a,caniuse.feat)!==-1||F))d=true;
else if(!caniuse.feat&&(p.cats[this]&&p.statuses[c.status]||F))d=true});if(d){F||R++;var e=ha(c,a);S="";var g;g=s=="score"||s=="rscore"?c.support_score:c.title.toLowerCase().match(/[a-z]+/);if(F)S=e;else z.push([g,e])}}function ja(a){var c="";b.each(v,function(d,e){var g=e.versions[a],f=e.summary[a]/R,h,i,j;if(D)h=i=j=Math.round(f*150)+104;else{if(f<=0.5){h=255;i=f*255*2}else{h=-1*f*255+382.5;i=255}h=Math.round(h);i=Math.round(i);j=50}h='<td class="sum_cell" style="background-color:rgb('+h+","+i+
","+j+')">';f=Math.round(f*100)+"%";c+=h+M(g)+": "+f+"</td>"});return c}function fa(a,c,d,e,g){var f="";if(!q&&!d.headcol)f=d.headcol='<th class="feat_cell" rowspan="'+T+'">'+t(g)+'<a href="'+d.spec+'" title="View specification">'+d.title+"</a>"+(d.status?' <span class="'+d.status+'" title="'+C[d.status]+'">['+d.status+"]</span>":"")+"</th>";var h="<th>"+c+"</th>";if(F)h+=ja(e);else b.each(v,function(i,j){var l=j.versions,w=l[e],k=d.stats[i][w],n=d.result,u="",r=true;if(e<l.length-1&&w===l[e+1]){u=
' rowspan="2"';j.done_span=true}else if(e>0&&w===l[e-1]&&j.done_span){r=false;j.done_span=false}l='<td class="'+k+'"'+u+">"+M(w)+"</td>";if(r)h+=l;if(k.indexOf("p")!=-1&&p.alts.p)k="y";if(k.indexOf("j")!=-1&&p.alts.j)k="y";if(typeof j.summary[e]=="undefined")j.summary[e]=0;if(k.match(/[npj]/)!==null){n[a]||(n[a]=[]);n[a].push(j.browser+" "+w)}else if(k.indexOf("a")!=-1){d.support_score+=0.75;j.summary[e]+=0.75}else if(k.indexOf("u")==-1){d.support_score++;j.summary[e]++}});return'<tr class="'+a+'">'+
f+h+"</tr>"}function P(){var a=function(c){return b.extend(true,{},c)};K=a(caniuse.eras);v=a(caniuse.agents);C=a(caniuse.statuses);I=a(caniuse.data)}function ka(a){P();if(G){E("cats",a,0);E("statuses",0,C)}else{s=b("#sort select").val();E("agents",0,v);E("cats",a,0);E("alts");E("eras",0,K);E("statuses",0,C);T=0;for(er in K)T++;b.each(v,function(c,d){d.summary=[]});z=[];R=0;la();b("body").toggleClass("access",!!D)}}function la(){if(caniuse.feat||J)return false;var a="";b.each(p,function(e,g){var f=
[];for(val in g)if(g[val]){f.push(val);if(val=="All")break}if(f.length){f=f.join(",");if(f!="All")a+="&"+e+"="+f}});if(s!="score")a+="&sort="+s;if(J)a+="&search="+J;q=N("detailed");D=N("bw_shaded");y=N("show_conc");q||(a+="&nodetails=1");if(D)a+="&bw_shaded=1";if(y)a+="&show_conc=1";if(!q||D||y){var c=b.getURLParam("feat");if(c)a+="&feat="+c}a="#"+a.substr(1);c=document.location.href;if(c.indexOf("#")==-1)c="#"+c;var d=c.replace(/#.*/,a);if(d!=c)document.location.href=d}function ma(){var a=function(c,
d){return d[0]-c[0]};if(s==="score"||s==="rscore")z.sort(a);else if(s==="alpha"||s==="ralpha")z.sort();if(s==="ralpha"||s==="rscore")z.reverse()}function na(){ma();var a="";a=z.length;for(var c=Array(a),d=0;d<a;d++)c[d]=z[d][1];a=c.join("");a+=S;q||(a='<table id="no_details" class="'+Z()+'">'+Y()+a+"</table>");if(caniuse.feat)a='<p id="showall"><a href="#" onclick="caniuse.reset();return false;">Show all tables</a></p>'+a;a=a=="undefined"?"":a;if(z.length==0&&!b.getURLParam("eras")&&!b.getURLParam("agents")&&
!b.getURLParam("statuses"))a='<p style="text-align:center">Nothing to display.</p>';B=b(L(B[0],a));q||da();caniuse.feat&&setTimeout(function(){b("html")[0].scrollTop=b("#showall").position().top;caniuse.feat=false},100);b("#not_ready_note").toggle(y)}function oa(){var a=b('<div id="mode_opts">\t\t\t<button id="but-wciu" onclick="caniuse.setMode(this)">Compatibility tables</button>\t\t\t<button id="but-b_compare" onclick="caniuse.setMode(this)">Browser comparison</button>\t\t</div>');b("#options").before(a)}
function A(a){ka(a);if(G)U();else{b.each(I,ia);na();return false}}function pa(a){var c=b.getURLParam(a);if(c){var d=c.split(",");b("#"+a+" input").each(function(){var e=this;b.each(d,function(g,f){if(f=="All"||b(e).val()==f){e.checked=true;return false}else e.checked=false})})}}function N(a,c){var d=b('#misc input[value="'+a+'"]').get(0);if(arguments.length>1)d.checked=c;else return d.checked}function aa(){b.each(X,function(){pa(this)});caniuse.feat=b.getURLParam("feat");if(caniuse.feat&&caniuse.feat.indexOf(",")!==
-1)caniuse.feat=caniuse.feat.split(",");if(typeof caniuse.feat=="string"&&!(caniuse.feat in caniuse.data)){document.location.href="#search="+caniuse.feat;caniuse.feat=null}q=!b.getURLParam("nodetails");N("detailed",q);caniuse.hideopts=b.getURLParam("hideopts");if(b.getURLParam("sort")){caniuse.sort=b.getURLParam("sort");b("#sort select").val(caniuse.sort)}}function ba(){var a,c=b("#search input").val(b.getURLParam("search")||"").focus(function(){var d=this;a=setInterval(function(){var e=d.value;if(J!=
e){J=e;Q={};if(e){var g=0;b.each(I,function(f,h){var i=(h.title+" "+h.description+" "+f).toLowerCase(),j=e.toLowerCase();if(RegExp("^"+j+"|[^a-zA-Z]"+j).exec(i)!==null){Q[f]=true;g++}});b("#search p").text(g+" result"+(g==1?"":"s")+" found");A()}}},200)}).blur(function(){clearInterval(a);if(!this.value.length){A();b("#search p").text("")}});c.val()&&c.focus()}document.write("<style>#panel-container, #info_related, #not_ready_note, #info_faq"+(window.location.hash?",#content":"")+"{display:none;}</style>");
var Q={},J=false,B,K,v,C,I,p={},G=false,X=["agents","eras","cats","alts","statuses"],z,s,F,T,q,y,R,D,S="",H=[];return{start:function(){b(window).bind("hashchange",function(){if(b.getURLParam("feat")){aa();A()}});b("#panel-container").appendTo("#tab-container");B=b("#content");b("#tab-container > ul a").click(function(){b("#panel-container > div").hide();b("#panel-container").show();b(this).parent().siblings().removeClass("active").end().addClass("active");b(b(this).attr("href")).show();b("#tab-container > span").css("visibility",
"visible");return false});b("<span>X</span>").prependTo("#tab-container").click(function(){b("#panel-container").hide();b("#tab-container > ul li").removeClass("active")});caniuse.hideopts&&b("#legend,#options,#info_notes,#info_related").hide();oa();G=!!b.getURLParam("compare");var a="wciu";y=b.getURLParam("show_conc");D=b.getURLParam("bw_shaded");W();if(G){V();a="b_compare"}else{aa();ba()}b("#but-"+a).addClass("cur_mode");if(window.location.hash||window.location.href.indexOf("?rebuild")!==-1){A();
B.show()}b("#not_ready_note").toggle(!!y)},MC:function(a,c){caniuse.curOption=c;A(a);return false},selAll:function(a){caniuse.curOption=null;b(a).parents("fieldset").find("input").each(function(){this.checked=a.checked});A()},reset:function(){caniuse.feat=false;A();b("#legend,#options,#info_notes,#info_related").show();b("#showall").remove()},setMode:function(a){var c;if(typeof a=="string"){G=a=="b_compare";a=b("#but-"+a)}else{c=b(a).attr("id").split("-")[1];G=c==="b_compare"}b("#mode_opts button").removeClass("cur_mode");
b(a).addClass("cur_mode");if(G)V();else{W();ba()}A()},MakeComparison:function(){U()}}}(jQuery);$(caniuse.start);jQuery.extend({getURLParam:function(b){var L="",t=window.location.href,o=false;b=b+"=";var O=b.length;if(t.indexOf("#")>-1){t=t.substr(t.indexOf("#")+1).split("&");for(var m=0;m<t.length;m++)if(t[m].substr(0,O)==b){L=t[m].split("=")[1];o=true;break}}if(o==false)return null;return L}});
caniuse.eras={farpast:"Two versions back",past:"Previous version",now:"Current",near:"Near Future (2010)",far:"Future (2011 or later)"};
caniuse.agents={trident:{browser:"Internet Explorer",versions:[6,7,8,8,9],eng_versions:{8:4},abbr:"IE"},gecko:{browser:"Firefox",versions:[3,3.5,3.6,4,4],eng_versions:{2:"1.8.1",3:"1.9",3.5:"1.9.1",3.6:"1.9.2"},abbr:"FF"},webkit_saf:{browser:"Safari",versions:[3.2,4,5,5,"5x"],abbr:"Saf."},webkit_chr:{browser:"Chrome",versions:[4,5,6,7,8],abbr:"Chr."},presto:{browser:"Opera",versions:[10.1,10.5,10.6,10.6,10.7],abbr:"Op."}};
caniuse.statuses={rec:"Recommendation",pr:"Proposed Recommendation",cr:"Candidate Recommendation",wd:"Working Draft",ietf:"IETF standard",unoff:"Unofficial / Note"};
caniuse.data={"png-alpha":{title:"PNG alpha transparency",description:"Semi-transparent areas in PNG files",spec:"http://www.w3.org/TR/PNG-Decoders.html#",status:"cr",links:[{title:"W3 Test files",url:"http://www.w3.org/Graphics/PNG/inline-alpha.html",date:"1997-05-06"},{title:"Workaround for IE6",url:"http://dillerdesign.com/experiment/DD_belatedPNG/",date:"2009-06-30"}],categories:["PNG"],stats:{trident:{6:"j",7:"y",8:"y",9:"y"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",
4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},apng:{title:"Animated PNG (APNG)",description:"Like animated GIFs, but allowing 24-bit colors and alpha transparency",spec:"https://wiki.mozilla.org/APNG_Specification",status:"unoff",links:[{title:"Wikipedia",url:"http://en.wikipedia.org/wiki/APNG"},{title:"Several example files",url:"http://treebuilder.de/default.asp?file=89031.xml",date:"2007-08-29"},
{title:"An APNG editor",url:"http://animatedpng.com/",date:"2010-05-07"}],categories:["PNG"],stats:{trident:{6:"n",7:"n",8:"n",9:"n"},gecko:{2:"n",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"n","5x":"u"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"n",6:"u",7:"u",8:"u"},presto:{9:"n",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"Where support for APNG is missing, only the first frame is displayed"},video:{title:"Video element",description:"Method of playing videos on webpages (without requiring a plug-in)",
spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#video",status:"wd",links:[{title:"Detailed article on video/audio elements",url:"http://dev.opera.com/articles/view/everything-you-need-to-know-about-html5-video-and-audio/",date:"2010-03-10"},{title:"WebM format information",url:"http://webmproject.org",date:"2010-05-19"},{title:"Video for Everybody",url:"http://camendesign.co.uk/code/video_for_everybody",date:"2010-05-03"}],categories:["HTML5"],stats:{trident:{6:"n",7:"n",
8:"n",9:"y"},gecko:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",10.6:"y",10.7:"y"}},notes:"Safari and Internet Explorer do not support Ogg/Theora/Vorbis, while Opera and Firefox don't support MPEG-4/H.264/AAC. Chrome supports both. Upcoming versions of Firefox, Chrome and Opera will support the WebM/VP8 format. IE9 will support it if the user has the codec installed."},
audio:{title:"Audio element",description:"Method of playing sound on webpages (without requiring a plug-in)",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#audio",status:"wd",links:[{title:"HTML5 Doctor article",url:"http://html5doctor.com/native-audio-in-the-browser/"},{title:"Detailed article on video/audio elements",url:"http://dev.opera.com/articles/view/everything-you-need-to-know-about-html5-video-and-audio/",date:"2010-03-10"},{title:"Demos of audio player that uses &lt;audio&gt;",
url:"http://www.happyworm.com/jquery/jplayer/latest/demos.htm",date:"2010-04-29"}],categories:["HTML5"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"a",10.1:"a",10.5:"y",10.6:"y",10.7:"y"}},notes:"Partial support in Opera refers to support for the HTML5 audio object, not the element."},contenteditable:{title:"WYSIWYG editable elements (contenteditable attribute)",
description:"Method of making any HTML element editable",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#contenteditable",status:"wd",links:[{title:"Demo page",url:"http://html5demos.com/contenteditable",date:"2010-05-07"},{title:"WHATWG blog post",url:"http://blog.whatwg.org/the-road-to-html-5-contenteditable",date:"03-06-2009"},{title:"Blog post on usage problems",url:"http://accessgarage.wordpress.com/2009/05/08/how-to-hack-your-app-to-make-contenteditable-work/",
date:"2009-05-08"}],categories:["HTML5"],stats:{trident:{6:"y",7:"y",8:"y",9:"y"},gecko:{2:"n",3:"a",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},dragndrop:{title:"Drag and Drop",description:"Method of easily dragging and drop elements on a page",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#dnd",status:"wd",
links:[{title:"HTML5 Doctor article",url:"http://html5doctor.com/native-drag-and-drop/",date:"2009-07-09"},{title:"Demo with text blocks",url:"http://ljouanneau.com/lab/html5/demodragdrop.html",date:"2008-08-29"},{title:"Demo with link blocks",url:"http://html5demos.com/drag",date:"2010-05-07"}],categories:["HTML5"],stats:{trident:{6:"j",7:"a",8:"a",9:"a"},gecko:{2:"j",3:"j",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"j",3.2:"j",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"j",1:"j","1x":"j",2:"y",3:"y",4:"y",
5:"y",6:"y",7:"y",8:"y"},presto:{9:"j",9.6:"j",10.1:"j",10.5:"j",10.6:"j",10.7:"j"}}},query:{title:"querySelector/querySelectorAll (Selectors API)",description:"Method of accessing DOM elements using CSS selectors",spec:"http://www.w3.org/TR/selectors-api/",status:"cr",links:[{title:"Selectors test including querySelectorAll",url:"http://www2.webkit.org/perf/slickspeed/",date:"2008-02-08"}],categories:["DOM"],stats:{trident:{6:"j",7:"j",8:"y",9:"y"},gecko:{2:"j",3:"j",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"j",
3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"j",9.6:"j",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"Only works for the CSS selectors available. Thus the IE8 implementation is limited to the CSS 2.1 selectors"},getelementsbyclassname:{title:"getElementsByClassName",description:"Method of accessing DOM elements by class name",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#dom-document-getelementsbyclassname",
status:"wd",links:[{title:"Test page",url:"http://www.quirksmode.org/dom/tests/basics.html#getElementsByClassName"}],categories:["DOM","HTML5"],stats:{trident:{6:"j",7:"j",8:"j",9:"y"},gecko:{2:"j",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"j",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"j",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},webforms:{title:"HTML5 form features (Web Forms 2.0)",description:"Expanded form options, including things like date pickers, sliders and validation",
spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html",status:"wd",links:[{title:"HTML5 inputs and attribute support page",url:"http://www.miketaylr.com/code/input-type-attr.html"},{title:"Cross-browser JS implementation (based on original spec)",url:"http://code.google.com/p/webforms2/"}],categories:["HTML5"],stats:{trident:{6:"j",7:"j",8:"j",9:"u"},gecko:{2:"j",3:"j",3.5:"j",3.6:"j",4:"a"},webkit_saf:{3.1:"j",3.2:"j",4:"a",5:"a","5x":"a"},webkit_chr:{0.2:"j",1:"j","1x":"j",
2:"a",3:"a",4:"a",5:"a",6:"a",7:"a",8:"a"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:'Webkit browsers support "search", "meter" and multiple file uploads. Older Opera implementations are based on the original WHATWG specification. Some changes have been made in HTML5'},html5:{title:"New, stylable HTML5 elements",description:'HTML5 offers some new elements, primarily for semantic purposes. The "stylable" part refers to the ability to use CSS on these elements',spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#sections",
status:"wd",links:[{title:"Workaround for IE",url:"http://blog.whatwg.org/supporting-new-elements-in-ie"},{title:"Alternate workaround",url:"http://blog.whatwg.org/styling-ie-noscript"},{title:"Examples of usage",url:"http://www.alistapart.com/articles/previewofhtml5"}],categories:["HTML5"],stats:{trident:{6:"j",7:"j",8:"j",9:"y"},gecko:{2:"a",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},
presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"In Firefox 2 and older, unknown elements are self-closing (like a <code>br</code> or <code>img</code> element) when serving the page as text/html. HTML 5 Elements in pages served as XHTML work as expected"},offline:{title:"Offline web applications",description:"Method of selecting web page files to be cached, thus allowing them to work offline on subsequent visits to the page",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html",
status:"wd",links:[{title:"Sitepoint tutorial",url:"http://www.sitepoint.com/blogs/2010/02/12/offline-web-application-tutorial/",date:"2010-02-12"},{title:"Offline app demo",url:"http://starkravingfinkle.org/blog/2008/05/firefox-3-offline-app-demo-part-2/",date:"2008-05-08"}],categories:["HTML5"],stats:{trident:{6:"p",7:"p",8:"p",9:"u"},gecko:{2:"p",3:"a",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"p",3.2:"p",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"p",1:"p","1x":"p",2:"a",3:"a",4:"y",5:"y",6:"y",7:"y",
8:"y"},presto:{9:"p",9.6:"p",10.1:"p",10.5:"p",10.6:"y",10.7:"y"}},notes:"Also supported in Mobile Safari 3.1+\t\t\t\t\t\t Support in < Chrome 4 uses the auto-included Gears plug-in. Functions are similar, but not the same."},webworkers:{title:"Independent JavaScript threading (Web Workers)",description:"Method of running scripts in the background, isolated from the web page",spec:"http://www.whatwg.org/specs/web-workers/current-work/",status:"wd",links:[{title:"MDC article",url:"https://developer.mozilla.org/En/Using_web_workers"},
{title:"Web Worker demo",url:"http://nerget.com/rayjs-mt/rayjs.html"}],categories:["Other"],stats:{trident:{6:"p",7:"p",8:"p",9:"u"},gecko:{2:"p",3:"p",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"p",3.2:"p",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"p",1:"p","1x":"p",2:"a",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"p",9.6:"p",10.1:"p",10.5:"p",10.6:"y",10.7:"y"}},notes:"Support in < Chrome 4 uses the auto-included Gears plug-in. Functions are similar, but not the same."},fontface:{title:"Font linking (@font-face)",
description:"Method of displaying fonts downloaded from websites",spec:"http://www.w3.org/TR/css3-webfonts/",status:"wd",links:[{title:"News and information site",url:"http://webfonts.info",date:"2010-05-07"},{title:"Font demo",url:"http://opentype.info/demo/webfontdemo.html"},{title:"Wikipedia",url:"http://en.wikipedia.org/wiki/Web_typography"}],categories:["CSS3"],stats:{trident:{6:"a",7:"a",8:"a",9:"y"},gecko:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"y",4:"y",5:"y","5x":"y"},
webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"Trident (Internet Explorer) only supports EOT fonts. Opera does not support the font when 'format(\"opentype\")' is used, although it does otherwise appear to support OTF fonts"},eot:{title:"Embedded OpenType font format for use in @font-face (EOT)",description:"Type of font that can be derived from a regular font, allowing small files and legal use of high-quality fonts. Usage is restricted by the file being tied to the website",
spec:"http://www.w3.org/Submission/EOT/",status:"unoff",links:[{title:"Information page",url:"http://www.fontembedding.com/"},{title:"Example pages",url:"http://www.microsoft.com/typography/web/embedding/default.aspx"}],categories:["Other"],stats:{trident:{6:"y",7:"y",8:"y",9:"y"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"n","5x":"u"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"u",6:"n",7:"n",8:"n"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",
10.7:"n"}},notes:"Proposal by Microsoft, being considered for W3C standardization."},woff:{title:"Web Open Font Format for use in @font-face (WOFF)",description:"Compressed TrueType/OpenType font that contains information about the font's source.",spec:"http://www.w3.org/Submission/WOFF/",status:"unoff",links:[{title:"Mozilla hacks blog post",url:"http://hacks.mozilla.org/2009/10/woff/",date:"2009-10-20"},{title:"W3C Submission request",url:"http://www.w3.org/Submission/2010/03/",date:"2010-04-08"}],
categories:["Other"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"n","5x":"u"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"y",10.7:"y"}},notes:"Proposal resulting from discussion among browser and font vendors. Expected to be supported in IE9 and later Opera versions as result of Microsoft's/Opera's submission of the format to the W3C"},multibackgrounds:{title:"CSS3 Multiple backgrounds",
description:"Method of using multiple images as a background",spec:"http://www.w3.org/TR/css3-background/",status:"cr",links:[{title:"Example page",url:"http://www.quirksmode.org/css/multiple_backgrounds.html",date:"2007-06-15"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",
10.6:"y",10.7:"y"}}},"border-image":{title:"CSS3 Border images",description:"Method of using images for borders",spec:"http://www.w3.org/TR/css3-background/#the-border-image",status:"cr",links:[{title:"Information page with fallback script",url:"http://www.lrbabe.com/sdoms/borderImage/",date:"2010-05-10"},{title:"Example page",url:"http://www.css3.info/preview/border-image/",date:"2007-09-05"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y"},
webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",10.6:"y",10.7:"y"}}},"background-img-opts":{title:"CSS3 Background-image options",description:"New properties to affect to background images, including background-clip, background-origin and background-size",spec:"http://www.w3.org/TR/css3-background/#backgrounds",status:"wd",links:[{title:"Detailed compatibility tables and demos",
url:"http://www.quirksmode.org/css/background.html",date:"2010-06-24"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"n",3:"n",3.5:"n",3.6:"a",4:"y"},webkit_saf:{3.1:"n",3.2:"a",4:"a",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"a",3:"a",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",10.6:"y",10.7:"y"}},notes:"Opera 9.5 and 10.1 support background-size, but no other features"},"css-table":{title:"CSS table display",description:"Method of displaying elements an tables, rows, and cells",
spec:"http://www.w3.org/TR/CSS21/tables.html",status:"cr",links:[{title:"Detailed article on usage",url:"http://www.digital-web.com/articles/everything_you_know_about_CSS_Is_wrong/",date:"2008-10-21"},{title:"Blog post on usage",url:"http://www.onenaught.com/posts/201/use-css-displaytable-for-layout",date:"2009-02-15"}],categories:["CSS2"],stats:{trident:{6:"n",7:"n",8:"y",9:"y"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y",
"1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},"css-gencontent":{title:"CSS generated content ( :before and :after )",description:"Method of displaying text or images before or after elements",spec:"http://www.w3.org/TR/CSS21/generate.html",status:"cr",links:[{title:"Guide on usage",url:"http://www.westciv.com/style_master/academy/css_tutorial/advanced/generated_content.html",date:"2010-05-07"},{title:"Examples of different types of generated content",
url:"http://www.javascriptkit.com/dhtmltutors/cssgenerate.shtml"}],categories:["CSS2"],stats:{trident:{6:"n",7:"n",8:"y",9:"y"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},"css-fixed":{title:"CSS position:fixed",description:"Method of keeping an element in a fixed location regardless of scroll position",spec:"http://www.w3.org/TR/CSS21/visuren.html#fixed-positioning",
status:"cr",links:[{title:"Workaround for IE6",url:"http://www.howtocreate.co.uk/fixedPosition.html",date:"2004-04-20"},{title:"Workaround for Mobile Safari",url:"http://doctyper.com/archives/200808/fixed-positioning-on-mobile-safari/",date:"2008-08-05"}],categories:["CSS2"],stats:{trident:{6:"j",7:"y",8:"y",9:"y"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",
9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"Also does not work on Mobile Safari 3.1"},"css-sel2":{title:"CSS 2.1 selectors",description:"Allows more accurate element selecting, using >, +, [attr], :first-child, etc.",spec:"http://www.w3.org/TR/CSS21/selector.html",status:"cr",links:[{title:"Detailed support information",url:"http://www.quirksmode.org/css/contents.html",date:"2009-03-28"},{title:"Examples of advanced selectors",url:"http://www.yourhtmlsource.com/stylesheets/advancedselectors.html",
date:"2010-01-08"}],categories:["CSS2"],stats:{trident:{6:"j",7:"y",8:"y",9:"y"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},"css-sel3":{title:"CSS3 selectors",description:"Advanced element selection",spec:"http://www.w3.org/TR/css3-selectors/",status:"pr",links:[{title:"Detailed support information",url:"http://www.quirksmode.org/css/contents.html",
date:"2009-03-28"},{title:"W3C Test suite",url:"http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/index.html",date:"2002-03-22"},{title:"Automated CSS3 selector test",url:"http://www.css3.info/selectors-test/",date:"2006-10-09"}],categories:["CSS3"],stats:{trident:{6:"j",7:"j",8:"j",9:"y"},gecko:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"y",10.1:"y",
10.5:"y",10.6:"y",10.7:"y"}}},"css-textshadow":{title:"CSS3 Text-shadow",description:"Method of displaying shadow or blur effect to text",spec:"http://www.w3.org/TR/css3-text/#text-shadow",status:"wd",links:[{title:"Mozilla hacks article",url:"http://hacks.mozilla.org/2009/06/text-shadow/",date:"2009-06-10"},{title:"Live editor",url:"http://westciv.com/tools/shadows/",date:"2009-06-02"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"a",
3.2:"a",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"This spec used to be Candidate Recommendation, but that version has been made obsolete. Incomplete support by webkit refers to the lack of support for multiple shadows."},"css-boxshadow":{title:"CSS3 Box-shadow",description:"Method of displaying shadow or blur effect to elements",spec:"http://www.w3.org/TR/css3-background/#box-shadow",
status:"wd",links:[{title:"MDC article",url:"https://developer.mozilla.org/En/CSS/-moz-box-shadow",date:"2010-04-20"},{title:"Live editor",url:"http://westciv.com/tools/boxshadows/index.html",date:"2009-06-02"},{title:"Demo of various effects",url:"http://tests.themasta.com/blogstuff/boxshadowdemo.html",date:"2010-06-25"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"a"},gecko:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y",
"1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",10.6:"y",10.7:"y"}},notes:"Partial support in IE9 refers to behavior inconsistent with other browsers"},"css3-colors":{title:"CSS3 Colors",description:"Method of describing colors using HSL, as well as allowing alpha-transparency",spec:"http://www.w3.org/TR/2003/CR-css3-color-20030514/",status:"cr",links:[{title:"Dev.Opera article",url:"http://dev.opera.com/articles/view/color-in-opera-10-hsl-rgb-and-alpha-transparency/",
date:"2009-09-01"},{title:"Guide to HSL & HSLA",url:"http://www.zenelements.com/blog/css3-hsl-hsla-color-opacity/",date:"2009-02-10"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"a",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"a",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"Incomplete support by older Opera versions refers to the lack of support for RGBA/HSLA."},
"css3-boxsizing":{title:"CSS3 Box-sizing",description:"Method of specifying whether or not an element's borders, padding and margin should be including in size units",spec:"http://www.w3.org/TR/css3-ui/#box-sizing",status:"cr",links:[{title:"MDC Article",url:"https://developer.mozilla.org/En/CSS/Box-sizing",date:"2009-06-05"},{title:"Information page",url:"http://jhop.me/css/css3/the-css3-box-sizing-concept-a-solution-to-a-longstanding-problem",date:"2008-11-13"}],categories:["CSS3"],stats:{trident:{6:"n",
7:"n",8:"y",9:"y"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},"css-media":{title:"CSS3 Media Queries",description:"Method of applying styles based on media information. Includes things like page and device dimensions",spec:"http://www.w3.org/TR/css3-mediaqueries/",status:"cr",links:[{title:"IE demo page with information",
url:"http://ie.microsoft.com/testdrive/HTML5/85CSS3_MediaQueries/",date:"2010-05-07"},{title:"Demo page for page width",url:"http://test.unintentionallyblank.co.uk/media.html",date:"2007-11-27"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"a",3.2:"a",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"a",1:"a","1x":"a",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:["Incomplete support by webkit refers to only acknowledging different media rules on page reload"]},
multicolumn:{title:"CSS3 Multiple column layout",description:"Method of flowing information in multiple columns",spec:"http://www.w3.org/TR/css3-multicol/",status:"cr",links:[{title:"Demo page",url:"http://www.quirksmode.org/css/multicolumn.html",date:"2008-11-15"},{title:"Introduction page",url:"http://designshack.co.uk/articles/introduction-to-css3-part-5-multiple-columns",date:"2008-05-19"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},
webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}}},roundedcorners:{title:"CSS3 Rounded corners (border-radius)",description:"Method of making the border corners round",spec:"http://www.w3.org/TR/css3-background/#the-border-radius",status:"cr",links:[{title:"Border-radius CSS Generator",url:"http://border-radius.com",date:"2010-03-05"},{title:"Detailed compliance table",
url:"http://muddledramblings.com/table-of-css3-border-radius-compliance",date:"2009-09-23"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"a",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"a",1:"a","1x":"a",2:"a",3:"a",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",10.6:"y",10.7:"y"}},notes:"Incomplete support refers to non-antialiased corners"},transforms:{title:"CSS3 Transforms",description:"Method of transforming an element including rotating, scaling, etc.",
spec:"http://www.w3.org/TR/css3-2d-transforms/",status:"wd",links:[{title:"Live editor",url:"http://www.westciv.com/tools/transforms/",date:"2009-06-02"},{title:"MDC article",url:"https://developer.mozilla.org/en/CSS/-moz-transform",date:"2010-03-13"},{title:"Workaround script for IE",url:"http://www.webresourcesdepot.com/cross-browser-css-transforms-csssandpaper/",date:"2010-03-20"}],categories:["CSS3"],stats:{trident:{6:"j",7:"j",8:"j",9:"a"},gecko:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",
3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",10.6:"y",10.7:"y"}},notes:'Support in IE9 is expected, but not certain. Current implementations may change significantly from final specification, since W3C adoption is quite recent. The scale transform can be emulated in IE < 9 using Microsoft\'s "zoom" extension, others are (not easily) possible using the MS Matrix filter'},transforms3d:{title:"CSS3 3D Transforms",
description:"Method of transforming an element in the third dimension",spec:"http://www.w3.org/TR/css3-3d-transforms/",status:"wd",links:[{title:"Webkit blog post",url:"http://webkit.org/blog/386/3d-transforms/",date:"2009-07-16"},{title:"Demo page",url:"http://www.satine.org/archives/2009/07/11/snow-stack-is-here/",date:"2009-07-11"},{title:"Cubic panorama demo (Mobile Safari only)",url:"http://www.bunnyhero.org/2008/10/13/iphone-vr-viewing-3d-panoramas-in-safari-using-javascript-and-webkit-transform/",
date:"2008-10-13"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"u"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"n",6:"n",7:"u",8:"u"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:"Current implementations may change significantly from final specification, since W3C adoption is quite recent."},transitions:{title:"CSS3 Transitions",description:"Simple method of animating certain properties of an element",
spec:"http://www.w3.org/TR/css3-transitions/",status:"wd",links:[{title:"Article on usage",url:"http://www.webdesignerdepot.com/2010/01/css-transitions-101/",date:"2010-01-18"},{title:"Webkit blog post",url:"http://webkit.org/blog/138/css-animation/"},{title:"Examples on timing functions",url:"http://www.the-art-of-web.com/css/timing-function/",date:"2009-11-22"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"a"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y"},webkit_saf:{3.1:"n",3.2:"y",4:"y",
5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",10.6:"y",10.7:"y"}},notes:"Support in IE9 is uncertain, but likely as the result of observed time value parsing behavior. Current implementations may change significantly from final specification, since W3C adoption is quite recent."},animation:{title:"CSS3 Animation",description:"Complex method of animating certain properties of an element",spec:"http://www.w3.org/TR/css3-animations/",
status:"wd",links:[{title:"Blog post on usage",url:"http://robertnyman.com/2010/05/06/css3-animations/",date:"2010-05-06"},{title:"Webkit blog post",url:"http://webkit.org/blog/324/css-animation-2/",date:"2009-02-05"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"u"},webkit_saf:{3.1:"n",3.2:"n",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},
notes:"Current implementations may change significantly from final specification, since W3C adoption is quite recent."},"css-gradients":{title:"CSS Gradients",description:"Method of setting a color gradient as a CSS image",spec:"http://dev.w3.org/csswg/css3-images/#gradients-",status:"unoff",links:[{title:"Webkit blog post",url:"http://webkit.org/blog/175/introducing-css-gradients/",date:"2008-04-14"},{title:"Live editor",url:"http://westciv.com/tools/gradients/",date:"2009-06-02"}],categories:["CSS3"],
stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:"Proposal by Webkit, being considered for W3C standardization."},"css-canvas":{title:"CSS Canvas Drawings",description:"Method of using HTML5 Canvas as a background image",spec:"http://webkit.org/blog/176/css-canvas-drawing/",
status:"unoff",links:[{title:"Webkit blog post",url:"http://webkit.org/blog/176/css-canvas-drawing/"}],categories:["Other"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:"Proposal by Webkit, being considered for W3C standardization. Same effect can be achieved in Firefox 4+ using the -moz-element() background property"},
"css-reflections":{title:"CSS Reflections",description:"Method of displaying a reflection of an element",spec:"http://webkit.org/blog/182/css-reflections/",status:"unoff",links:[{title:"Webkit blog post",url:"http://webkit.org/blog/182/css-reflections/"}],categories:["Other"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",
9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:"Proposal by Webkit, being considered for W3C standardization. Same effect can be achieved in Firefox 4+ using the -moz-element() background property"},"css-masks":{title:"CSS Masks",description:"Method of displaying part of an element, using a selected image as a mask",spec:"http://webkit.org/blog/181/css-masks/",status:"unoff",links:[{title:"Webkit blog post",url:"http://webkit.org/blog/181/css-masks/"}],categories:["Other"],stats:{trident:{6:"n",
7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"u"},webkit_saf:{3.1:"n",3.2:"n",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:"Proposal by Webkit, being considered for W3C standardization."},svg:{title:"SVG (basic support)",description:"Method of displaying basic Vector Graphics features using the embed or object elements",spec:"http://www.w3.org/Graphics/SVG/",status:"rec",
links:[{title:"Wikipedia",url:"http://en.wikipedia.org/wiki/Scalable_Vector_Graphics"},{title:"Sample files",url:"http://www.croczilla.com/bits_and_pieces/svg/samples/",date:"2004-10-01"},{title:"SVG showcase site",url:"http://svg-wow.org/"}],categories:["SVG"],stats:{trident:{6:"p",7:"p",8:"p",9:"y"},gecko:{2:"a",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"a",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",
10.5:"y",10.6:"y",10.7:"y"}}},"svg-css":{title:"SVG in CSS backgrounds",description:"Method of using SVG images as CSS backgrounds",spec:"http://www.w3.org/TR/css3-background/#background-image",status:"cr",links:[{title:"Test page",url:"http://a.deveria.com/svg/css_svg_test.html",date:"2008-01-01"}],categories:["SVG","CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y"},webkit_saf:{3.1:"n",3.2:"a",4:"a",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"a",
3:"a",4:"a",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:'Incomplete support by webkit refers to limitations on the conditions (see test page for examples). Support in IE9 not yet available, but <a href="http://blogs.msdn.com/ie/archive/2010/03/18/svg-in-ie9-roadmap.aspx">currently planned</a>.'},"svg-smil":{title:"SVG SMIL animation",description:"Method of using animation elements to animate SVG images",spec:"http://www.w3.org/TR/SVG/animate.html",status:"rec",
links:[{title:"Example files",url:"http://www.carto.net/papers/svg/samples/#anim",date:"2009-01-19"}],categories:["SVG"],stats:{trident:{6:"p",7:"p",8:"p",9:"n"},gecko:{2:"j",3:"j",3.5:"j",3.6:"j",4:"y"},webkit_saf:{3.1:"j",3.2:"j",4:"a",5:"y","5x":"y"},webkit_chr:{0.2:"j",1:"j","1x":"j",2:"a",3:"a",4:"a",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"Gecko support expected for Gecko 1.9.3"},"svg-fonts":{title:"SVG fonts",description:"Method of using fonts defined as SVG shapes",
spec:"http://www.w3.org/TR/SVG/fonts.html",status:"rec",links:[{title:"Information page",url:"http://purl.org/NET/2008,frankbruder/article/SVGFonts-usage",date:"2008-06-15"},{title:"Blog post on usage for iPad",url:"http://opentype.info/blog/2010/04/13/the-ipad-and-svg-fonts-in-mobile-safari/",date:"2010-04-13"}],categories:["SVG"],stats:{trident:{6:"p",7:"p",8:"p",9:"n"},gecko:{2:"p",3:"p",3.5:"p",3.6:"p",4:"p"},webkit_saf:{3.1:"p",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",
2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},"svg-filters":{title:"SVG filters",description:"Method of using photoshop-like effects on SVG shapes",spec:"http://www.w3.org/TR/SVG/filters.html",status:"rec",links:[{title:"Advanced filter effects",url:"http://www.treebuilder.de/default.asp?file=371288.xml",date:"2007-09-08"},{title:"W3C example",url:"http://www.w3.org/TR/SVGFilterPrimer12/",date:"2007-05-01"},{title:"Webkit bug report",url:"https://bugs.webkit.org/show_bug.cgi?id=26389",
date:"2010-02-18"}],categories:["SVG"],stats:{trident:{6:"p",7:"p",8:"p",9:"n"},gecko:{2:"p",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"p",3.2:"p",4:"p",5:"p","5x":"p"},webkit_chr:{0.2:"p",1:"p","1x":"p",2:"p",3:"p",4:"p",5:"a",6:"a",7:"a",8:"a"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},"svg-html":{title:"SVG effects for HTML elements",description:"Method of using SVG transforms, filters, etc on HTML elements using either CSS (unofficial) or the &lt;foreignObject&gt; element",
spec:"http://www.w3.org/TR/SVG11/extend.html#ForeignObjectElement",status:"wd",links:[{title:"Blog post with foreignObject demos",url:"http://starkravingfinkle.org/blog/2007/07/firefox-3-svg-foreignobject/",date:""},{title:"MDC Reference page",url:"https://developer.mozilla.org/En/Applying_SVG_effects_to_HTML_content",date:"2009-03-06"},{title:"SVG CSS Effects draft",url:"http://people.mozilla.com/~roc/SVG-CSS-Effects-Draft.html"}],categories:["SVG"],stats:{trident:{6:"n",7:"n",8:"n",9:"a"},gecko:{2:"n",
3:"a",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"a",5:"a","5x":"a"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"a",4:"a",5:"a",6:"a",7:"a",8:"a"},presto:{9:"n",9.6:"a",10.1:"a",10.5:"a",10.6:"a",10.7:"a"}},notes:"Partial support refers to lack of filter support or buggy result from effects. CSS method is a proposal by Mozilla, being considered for W3C standardization (stats, however, are considered based on the foreignObject support)."},"svg-html5":{title:"Inline SVG in HTML5",description:"Method of using SVG tags directly in HTML documents. Requires HTML5 parser.",
spec:"http://dev.w3.org/html5/spec/the-canvas-element.html#svg-0",status:"wd",links:[{title:"Mozilla Hacks blog post",url:"http://hacks.mozilla.org/2010/05/firefox-4-the-html5-parser-inline-svg-speed-and-more/",date:"2009-05-11"},{title:"Demo of multi-browser support using the SVGWeb library",url:"http://codinginparadise.org/projects/svgweb/samples/javascript-samples/svg_inline.html?svg.render.forceflash=false"},{title:"Test suite",url:"http://samples.msdn.microsoft.com/ietestcenter/html5/svghtml_harness.htm?url=SVG_HTML_Elements_001",
date:"2010-05-07"}],categories:["SVG","HTML5"],stats:{trident:{6:"p",7:"p",8:"p",9:"y"},gecko:{2:"p",3:"p",3.5:"p",3.6:"a",4:"y"},webkit_saf:{3.1:"p",3.2:"p",4:"p",5:"n","5x":"y"},webkit_chr:{0.2:"p",1:"p","1x":"p",2:"p",3:"p",4:"p",5:"p",6:"p",7:"y",8:"y"},presto:{9:"p",9.6:"p",10.1:"p",10.5:"p",10.6:"n",10.7:"u"}},notes:"Currently only works in Firefox 3.6 by enabling the HTML5 parser in about:config (not recommended)"},canvas:{title:"Canvas (basic support)",description:"Method of generating dynamic graphics using JavaScript",
spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#the-canvas-element",status:"wd",links:[{title:"Tutorial by Mozilla",url:"https://developer.mozilla.org/en/Canvas_tutorial",date:"2009-10-20"},{title:"Showcase site",url:"http://www.canvasdemos.com/",date:"2010-05-11"},{title:"Animation kit ",url:"http://glimr.rubyforge.org/cake/canvas.html",date:"2010-03-26"},{title:"Another tutorial",url:"http://diveintohtml5.org/canvas.html",date:"2010-01-01"},{title:"Implementation for Internet Explorer",
url:"http://explorercanvas.googlecode.com/"}],categories:["Canvas","HTML5"],stats:{trident:{6:"j",7:"j",8:"j",9:"y"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},"canvas-text":{title:"Text API for Canvas",description:"Method of displaying text on Canvas elements",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#text",
status:"wd",links:[{title:"Examples by Mozilla",url:"https://developer.mozilla.org/en/Drawing_text_using_a_canvas#Additional_examples",date:"2010-01-26"},{title:"Example chart",url:"http://www.ericbutler.net/demos/mozilla/2008/canvas-text-sample-chart.html",date:"2008-06-01"},{title:"Support library",url:"http://code.google.com/p/canvas-text/",date:"2010-05-10"}],categories:["Canvas","HTML5"],stats:{trident:{6:"j",7:"j",8:"j",9:"y"},gecko:{2:"j",3:"j",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"j",3.2:"j",
4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"j",1:"j","1x":"j",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"j",9.6:"j",10.1:"j",10.5:"y",10.6:"y",10.7:"y"}}},"namevalue-storage":{title:"Client-side storing of name/value pairs (Web Storage)",description:"Method of storing data locally like cookies, but for larger amounts of data (sessionStorage and localStorage, used to fall under HTML5).",spec:"http://www.w3.org/TR/webstorage/#storage",status:"wd",links:[{title:"Gecko reference",url:"https://developer.mozilla.org/En/DOM/Storage",
date:"2010-05-07"},{title:"Support library",url:"http://code.google.com/p/sessionstorage/",date:"2010-01-25"},{title:"Simple demo",url:"http://html5demos.com/storage",date:"2010-03-20"}],categories:["DOM","Other"],stats:{trident:{6:"j",7:"j",8:"y",9:"y"},gecko:{2:"a",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",10.6:"y",10.7:"y"}}},"db-storage":{title:"Client-side SQL Database Storage (Web SQL Database)",
description:"Method of storing data locally, allows Sqlite database queries for access and manipulation",spec:"http://www.w3.org/TR/webdatabase/",status:"wd",links:[{title:"HTML5 Doctor article",url:"http://html5doctor.com/introducing-web-sql-databases/",date:"2010-02-24"}],categories:["DOM","Other"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n"},webkit_saf:{3.1:"n",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"y",4:"y",5:"y",6:"y",7:"y",
8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"y",10.6:"y",10.7:"y"}},notes:'The Web database specification is currently "on hold" as it is waiting for a non-Sqlite implementation. Firefox and IE are unlikely to support this and offer IndexedDB support instead.'},indexeddb:{title:"Client-side Database Storage (Indexed Database API, previously WebSimpleDB API)",description:"Method of storing data locally, allows indexed database queries",spec:"http://www.w3.org/TR/IndexedDB/",status:"wd",links:[{title:"Mozilla Hacks article",
url:"http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/",date:"2010-06-01"}],categories:["DOM","Other"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"n","5x":"u"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"n",6:"n",7:"a",8:"a"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:"Support planned for Chrome 7, but not yet implemented"},"s-sent-events":{title:"Server-sent DOM events",
description:"Method of continuously sending data from a server to the browser, rather than repeatedly requesting it (EventSource interface, used to fall under HTML5)",spec:"http://www.w3.org/TR/eventsource/",status:"wd",links:[{title:"Opera blog post w/info",url:"http://my.opera.com/WebApplications/blog/show.dml/438711",date:"2006-09-01"}],categories:["DOM","Other"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"u"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"y","5x":"y"},
webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"n",6:"y",7:"y",8:"y"},presto:{9:"a",9.6:"a",10.1:"a",10.5:"a",10.6:"a",10.7:"a"}},notes:"Opera implementation is based on the original WHATWG specification, using the &lt;event-source&gt; HTML element. Much has changed in the specification since then, and no element is actually used."},"x-doc-messaging":{title:"Cross-document messaging",description:"Method of sending information from pages on different domains to each other (using postMessage)",
spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages",status:"wd",links:[{title:"Demo",url:"http://austinchau.blogspot.com/2008/11/html5-cross-document-messaging.html",date:"2008-11-17"},{title:"MDC Article",url:"https://developer.mozilla.org/en/DOM/window.postMessage",date:"2010-03-09"},{title:"Simple demo",url:"http://html5demos.com/postmessage2",date:"2010-04-10"}],categories:["DOM","HTML5"],stats:{trident:{6:"n",7:"n",8:"y",9:"y"},gecko:{2:"n",3:"y",
3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}}},datauri:{title:"Data URLs",description:"Method of embedding images and other files in webpages as a string of text.",spec:"http://www.ietf.org/rfc/rfc2397.txt",status:"ietf",links:[{title:"Information on usage",url:"http://www.websiteoptimization.com/speed/tweak/inline-images/",date:"2008-02-28"},
{title:"Image encoder",url:"http://www.scalora.org/projects/uriencoder/",date:"2005-02-02"},{title:"Wikipedia",url:"http://en.wikipedia.org/wiki/data_URI_scheme"}],categories:["Other"],stats:{trident:{6:"n",7:"n",8:"a",9:"a"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"Support in Internet Explorer 8 is limited to images and linked resources like CSS files, not HTML files. Max URI length is 32KB. In IE9 JavaScript files are supported too and the maximum size limit set to 4GB."},
mathml:{title:"MathML",description:"An XML language that allows mathematical formulas and notations to be written on web pages.",spec:"http://www.w3.org/TR/REC-MathML/",status:"rec",links:[{title:"Wikipedia",url:"http://en.wikipedia.org/wiki/MathML"},{title:"MathML basics (Mozilla)",url:"http://www.mozilla.org/projects/mathml/demo/basics.xhtml"},{title:"MathML Opera Torture Tests",url:"http://devfiles.myopera.com/articles/186/torture.xhtml",date:"2007-09-27"},{title:"Info on Opera's MathML support",
url:"http://golem.ph.utexas.edu/~distler/blog/archives/001588.html",date:"2008-01-31"}],categories:["Other"],stats:{trident:{6:"p",7:"p",8:"p",9:"u"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"n","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"n",6:"n",7:"y",8:"y"},presto:{9:"n",9.6:"a",10.1:"a",10.5:"a",10.6:"a",10.7:"a"}},notes:"Opera's support is limited to a CSS profile of MathML"},xhtml:{title:"XHTML served as application/xhtml+xml",description:"A strict form of HTML, and allows embedding of other XML languages",
spec:"http://www.w3.org/TR/xhtml1/",status:"rec",links:[{title:"Wikipedia",url:"http://en.wikipedia.org/wiki/XHTML"},{title:"Examples compared to text/html pages",url:"http://www.webdevout.net/articles/beware-of-xhtml#content_type",date:"2007-02-17"}],categories:["Other"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"y",9.6:"y",
10.1:"y",10.5:"y",10.6:"y",10.7:"y"}},notes:"The XHTML syntax is very close to HTML, and thus is almost always served as text/html on the web."},xhtmlsmil:{title:"Web page animation (XHTML+SMIL)",description:"Method of using SMIL animation in web pages",spec:"http://www.w3.org/TR/XHTMLplusSMIL/",status:"unoff",links:[{title:"Wikipedia",url:"http://en.wikipedia.org/wiki/XHTML%2BSMIL"},{title:"JS library to support XHTML+SMIL",url:"http://leunen.d.free.fr/fakesmile/",date:"2009-09-25"}],categories:["Other"],
stats:{trident:{6:"a",7:"a",8:"a",9:"u"},gecko:{2:"j",3:"j",3.5:"j",3.6:"n",4:"a"},webkit_saf:{3.1:"j",3.2:"j",4:"j",5:"j","5x":"j"},webkit_chr:{0.2:"j",1:"j","1x":"j",2:"j",3:"j",4:"j",5:"j",6:"j",7:"j",8:"j"},presto:{9:"j",9.6:"j",10.1:"j",10.5:"j",10.6:"j",10.7:"j"}},notes:"Trident (Internet Explorer) supports the W3C proposal HTML+TIME, which is largely the same as XHTML+SMIL"},"wai-aria":{title:"Accessibility for AJAX and other web features (WAI-ARIA)",description:"Method of providing ways for people with disabilities to use dynamic web content and web applications",
spec:"http://www.w3.org/TR/wai-aria/",status:"wd",links:[{title:"Information page",url:"http://www.w3.org/WAI/intro/aria",date:"2009-12-15"},{title:"Support chart",url:"http://www.paciellogroup.com/blog/aria-tests/ARIA-SafariaOperaIEFF-update2.html",date:"2009-10-02"},{title:"Tutorial",url:"http://www.paciellogroup.com/blog/?p=68",date:"2008-05-29"},{title:"Wikipedia",url:"http://en.wikipedia.org/wiki/WAI-ARIA"},{title:"ALA Article",url:"http://www.alistapart.com/articles/waiaria",date:"2007-04-09"}],
categories:["Other"],stats:{trident:{6:"n",7:"n",8:"y",9:"y"},gecko:{2:"a",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"a",5:"a","5x":"a"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"a",3:"a",4:"a",5:"a",6:"a",7:"a",8:"a"},presto:{9:"n",9.6:"a",10.1:"a",10.5:"a",10.6:"a",10.7:"a"}}},geoloc:{title:"Geolocation",description:"Method of informing a website of the user's geographical location",spec:"http://www.w3.org/TR/geolocation-API/",status:"wd",links:[{title:"Demo",url:"http://3liz.org/geolocation/",
date:"2009-06-15"},{title:"MDC Article",url:"https://developer.mozilla.org/En/Using_geolocation",date:"2010-02-22"}],categories:["DOM","Other"],stats:{trident:{6:"p",7:"p",8:"p",9:"u"},gecko:{2:"p",3:"p",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"p",3.2:"p",4:"p",5:"y","5x":"y"},webkit_chr:{0.2:"p",1:"p","1x":"a",2:"a",3:"a",4:"a",5:"y",6:"y",7:"y",8:"y"},presto:{9:"p",9.6:"p",10.1:"p",10.5:"p",10.6:"y",10.7:"y"}},notes:"Support in Chrome < 5 uses the auto-included Gears plug-in. Functions are similar, but not the same."},
flexbox:{title:"Flexible Box Layout Module",description:"Method of positioning elements in horizontal or vertical stacks.",spec:"http://www.w3.org/TR/css3-flexbox/",status:"wd",links:[{title:"Introduction with demos",url:"http://www.the-haystack.com/2010/01/23/css3-flexbox-part-1/",date:"2010-01-23"},{title:"Another article",url:"http://www.css3.info/introducing-the-flexible-box-layout-module/",date:"2009-10-08"},{title:"Demo working in IE9",url:"http://peter.sh/examples/?/css/flexbox.html",date:"2010-08-05"}],
categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"y",3.2:"y",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"y",1:"y","1x":"y",2:"y",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:"While only recently a W3C specification, this system has been in use for some time by Mozilla and Apple for interface purposes."},webgl:{title:"3D Canvas graphics / WebGL",description:"Method of generating dynamic 3D graphics using JavaScript, accelerated through hardware",
spec:"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html",status:"wd",links:[{title:"Instructions on enabling WebGL",url:"http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation",date:"2010-04-01"},{title:"Tutorial",url:"http://www.khronos.org/webgl/wiki/Tutorial",date:"2010-01-12"},{title:"Firefox blog post",url:"http://hacks.mozilla.org/2009/12/webgl-draft-released-today/",date:"2009-12-10"},{title:"Webkit blog post",url:"http://webkit.org/blog/603/webgl-now-available-in-webkit-nightlies/",
date:"2009-10-19"},{title:"Opera blog post (not WebGL)",url:"http://my.opera.com/timjoh/blog/2007/11/13/taking-the-canvas-to-another-dimension/",date:"2007-11-13"}],categories:["Canvas"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"a"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"n","5x":"a"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"a",6:"a",7:"a",8:"a"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:'WebGL is a new standard that is still being developed. It is currently disabled by default in all browsers with support. Note also that it is part of the <a href="http://www.khronos.org/webgl/">Khronos Group</a>, not the W3C'},
fileapi:{title:"Client-side file opening and handling (File API)",description:"Method of allowing users to select one or more files from their hard drive for a web page to manipulate",spec:"http://www.w3.org/TR/FileAPI/",status:"wd",links:[{title:"MDC article",url:"https://developer.mozilla.org/en/Using_files_from_web_applications",date:"2010-04-30"}],categories:["Other"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"n","5x":"y"},
webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"n",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"n"}},notes:"Support is planned for Chrome 6, but not yet implemented"},websockets:{title:"Web Sockets",description:"Bidirectional communication technology for web apps",spec:"http://www.w3.org/TR/websockets/",status:"wd",links:[{title:"WebSockets information",url:"http://www.websockets.org/about.html",date:"2009-06-15"},{title:"Chromium blog post",url:"http://blog.chromium.org/2009/12/web-sockets-now-available-in-google.html",
date:"2009-12-09"},{title:"Wikipedia",url:"http://en.wikipedia.org/wiki/Web_Sockets"}],categories:["Other"],stats:{trident:{6:"n",7:"n",8:"n",9:"u"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}}},cors:{title:"Cross-Origin Resource Sharing",description:"Method of performing XMLHttpRequests across domains",spec:"http://www.w3.org/TR/cors/",
status:"wd",links:[{title:"Mozilla Hacks blog post",url:"http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/",date:"2009-07-06"},{title:"Alternative implementation by IE8",url:"http://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx",date:"2008-10-06"},{title:"Demo and script with cross-browser support",url:"http://saltybeagle.com/2009/09/cross-origin-resource-sharing-demo/",date:"2009-09-11"}],categories:["Other"],stats:{trident:{6:"n",7:"n",8:"a",9:"a"},gecko:{2:"n",3:"n",
3.5:"y",3.6:"y",4:"y"},webkit_saf:{3.1:"n",3.2:"n",4:"y",5:"y","5x":"y"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"a",3:"y",4:"y",5:"y",6:"y",7:"y",8:"y"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:"Supported somewhat in IE8 using the XDomainRequest object"},calc:{title:"Length calculations in CSS (calc())",description:"Method of allowing calculated values for length units, i.e. width: calc(100%-3em)",spec:"http://www.w3.org/TR/css3-values/#calc",status:"wd",links:[{title:"Mozilla bug report",
url:"https://bugzilla.mozilla.org/show_bug.cgi?id=363249",date:"2010-05-11"}],categories:["CSS3"],stats:{trident:{6:"n",7:"n",8:"n",9:"y"},gecko:{2:"n",3:"n",3.5:"n",3.6:"n",4:"a"},webkit_saf:{3.1:"n",3.2:"n",4:"n",5:"n","5x":"u"},webkit_chr:{0.2:"n",1:"n","1x":"n",2:"n",3:"n",4:"n",5:"n",6:"n",7:"u",8:"u"},presto:{9:"n",9.6:"n",10.1:"n",10.5:"n",10.6:"n",10.7:"u"}},notes:"Current Firefox implementation only works on a few properties and uses -moz-calc()"},ruby:{title:"Ruby annotation elements",description:"Method of adding pronunciation or other annotations (primarily used in East Asian typography)",
spec:"http://www.w3.org/TR/html-markup/ruby.html",status:"wd",links:[{title:"HTML5 Doctor article",url:"http://html5doctor.com/ruby-rt-rp-element/",date:"2010-05-11"},{title:"Add-on for support in Firefox",url:"https://addons.mozilla.org/en-US/firefox/addon/1935/",date:"2009-06-19"}],categories:["HTML5"],stats:{trident:{6:"a",7:"a",8:"a",9:"a"},gecko:{2:"p j",3:"p j",3.5:"p j",3.6:"p j",4:"a"},webkit_saf:{3.1:"j",3.2:"j",4:"j",5:"a","5x":"a"},webkit_chr:{0.2:"j",1:"j","1x":"j",2:"j",3:"j",4:"j",5:"a",
6:"a",7:"a",8:"a"},presto:{9:"j",9.6:"j",10.1:"j",10.5:"j",10.6:"j",10.7:"u"}},notes:"Browsers without native support can still simulate support using CSS. Partial support refers to only supporting basic ruby, may still be missing writing-mode, Complex ruby and CSS3 Ruby"},summary:{title:"Summary",categories:["Summary"],description:"Calculation of support of currently displayed feature lists"}}; 
