Categories
Web development

When can I use…

Preview of the 'When can I use' page

A few weeks ago I was trying to find out which browser supported exactly which experimental feature, be it CSS3, HTML5, or something else. I found a couple of useful pages, but nothing quite as detailed as what I was looking for. Since I enjoy graphs, charts, and showing the world how much IE6 really sucks, I went ahead and made what I was looking for.

Thus was born the “When can I use…” page, which shows tables of a variety of current and upcoming web technologies. For all major browsers (Internet Explorer, Firefox, Safari, Opera and Chrome), versions for four different eras (past, present, near and far future).

The page can be customized to show only certain browsers/features/eras, so you have the option to ignore lesser used browsers or for that matter the most used one (it’s a lot of fun to pretend Internet Explorer doesn’t exist). I’ve also included a summary at the bottom of the page, which shows what percentage of the displayed features are supported.

Most features were tested myself, to ensure that the information is accurate. Please let me know if you notice any mistakes. Keep in mind that a “supported” feature may not actually work 100%, as well as the fact that some of the specifications are not set in stone yet, so what may be supported today may not actually work in the future. However, it is likely that in most cases the browser will update its support as the spec changes.

The feature list includes anything I personally feel is of significant use to web designers, but still lacks support in at least one browser version. I am open to adding more features, but only if it’s of significant importance and not just a detailed subset of another feature.

I intend to update the page as new browsers are released, or at the very least once a year. Due to its popularity, the page is updated as soon as new information becomes available.

192 replies on “When can I use…”

It seems that getComputedStyle isn’t covered yet. It’s covered by all of Firefox (requires a 2nd “” or null arg prior to Firefox 4), Opera 7+, iCab 3+, Konqueror 3.5+, Chrome 3+, Safari 3+ and IE 9 in standards mode.

Alexis Deveria,

1- Can you add the percentage score of support for CSS 2.1 test suite for IE8, IE9, Konqueror 4.6.1 and Firefox 4 browsers into your “can I use…”
compatibility tables ? This would be a lot more reliable, trustworthy, accurate, comparable and relevant than a cell with a bright green background. You could even do this for each section of the spec.

2- Can you add Konqueror 4.6.1 (or 4.7 when it is released) in your compatibility tables?

3- For ‘position: fixed’, ‘display: inline-block’, CSS min/max-width/height, CSS Table display, CSS Generated content, etc., I think it would be much better to present the percentage of success of passing tests from the CSS 2.1 test suite for these properties or for sections of the CSS 2.1 spec (much easier). And even here, you would have to state that the CSS 2.1 test suite is not entirely completed, over and done.

4- As far as I can see, webkit-based browsers (Chrome 10, Safari 5) and Konqueror 4.5+ do not require the vendor prefix for box-sizing. Your compatibility table state the opposite.

5- Overall, without comprehensive test suites to test respectively each and all of the properties and features, your compatibility tables have limited trustworthiness and relevance. It’s not enough to know that there is a support; it’s equally important to know how well it is supported and how correctly it is implemented and compliant with the spec.

regards, Gérard Talbot

Border image CSS consists of at least 6 elements.
Firefox CSS 3.6 and 4.0 only supports 1 of those 6 elements.
Should be listed as partial support and not full support.

Very useful and interesting site. But for partially support the color yellow should be used instead of dark-green. That would make it much more usable. I’m always thinking if light-green was partially and dark-green full support or otherwise. The traffic-light colors red/yellow/green would be best for not/partial/full support!

Now that Blackberry OS6 has a webkit browser, any chance this site will start to support it? It would be really great for those of us working on mobile sites.

thanks

It’d be awesome if you could show ‘dataset’ DOM attribute support. (I believe webkit has an implementation already). Otherwise, thank you for the site, very helpful! 🙂

This site is massively useful, thanks. Some features browser implementers have stated they will never support, like web SQL on firefox for example. I guess you could include that if you wanted to.

Great resource, thanks for all the hard work.
Would you consider adding tests for the CSS3 units module? This covers things such as “vw”, “vh” and “rem” units, which can be used to specify dimensions.

I would like to add emphasis on the fact that Chrome does not support offline applications. It is supported through gears, which is not available for all platforms. I believe Chrome was made available for Linux officially since version 6 or so, and it still does not support offline storage at version 10.

One feature of HTML5 I’m waiting for browsers to support is context menus, or . It would be very handy to have a built in right click context menu (without having to build it in ecmascript). Although it’s right there in the specs, no browser seems to have implemented them. Could context menus be added to the “When can I use” list?

Typed Arrays (or ArrayBuffers)

It’s required for WebGL so base Typed Array browser support is currently the same as WebGL. However, it is interesting in itself and it could be implemented independently wherever binary data access is desirable (for example as part of future WebSockets or File/Blob APIs). Also, there is typed array functionality that is not implemented everywhere such as DataView which is only in Chrome so far but is part of the current spec.

http://www.khronos.org/registry/typedarray/specs/latest/
https://developer.mozilla.org/en/JavaScript_typed_arrays
https://developer.mozilla.org/en/JavaScript_typed_arrays/DataView

At the very least, searching for related terms (TypedArrays, Typed Array, ArrayBuffer, DataView, ArrayBufferView) should show the WebGL section, but I think breaking it out as a child functionality probably makes sense now that at least two browsers have the functionality.

Masterfully designed, sir. You gave me exactly the information I was looking for when I started this search, ordered in exactly the way I wished it ordered. I can’t think of the last time I encountered a web app that did exactly what I wanted, without any tweaking.

Comments are closed.