Issues can be filed on existing caniuse support data, site functionality or to make new support data suggestions. Support data suggestions can be voted on with +1
comments and can be viewed in order of votes.
The features-json
directory includes JSON files for every feature found on the caniuse.com website.
Maintaining these files on GitHub allows anyone to update or contribute to the support data on the site.
Note: when submitting a patch, don’t modify the minified data.json
file in the root — that is done automatically. Only modify the contents of the features-json
directory.
The data on the site is stored in a database. This data is periodically exported to the JSON files on GitHub. Once a change or new file here has been approved, it is integrated back into the database and the subsequent export files should be the same as the imported ones. Not too confusing, I hope. :)
Currently the following feature information can be modified:
ls
- WHATWG Living Standardrec
- W3C Recommendationpr
- W3C Proposed Recommendationcr
- W3C Candidate Recommendationwd
- W3C Working Draftother
- Non-W3C, but reputableunoff
- Unofficial, Editor’s Draft or W3C “Note”HTML5
CSS
CSS2
CSS3
SVG
PNG
JS API
Canvas
DOM
Other
JS
Security
y
- (Y)es, supported by defaulta
- (A)lmost supported (aka Partial support)n
- (N)o support, or disabled by defaultp
- No support, but has (P)olyfillu
- Support (u)nknownx
- Requires prefi(x) to workd
- (D)isabled by default (need to enable flag or something)#n
- Where n is a number, starting with 1, corresponds to the notes_by_num note. For example: "42":"y #1"
means version 42 is supported by default and see note 1."1": "Foo"
.md
extension suffix) of the relevant file in the /features/
directory of Mozilla’s Platform Status project on GitHubTo add a feature, simply add another JSON file, following the example, to the features-json
directory with the base file name as the feature ID (only alphanumeric characters and hyphens please).
New additions will always start out with "shown": false
(regardless of the initial value set in the PR). This is so the data can undergo a certain level of verification to guarantee the correctness of information shown on the site. This verification happens after the pull request has already been accepted because it allows the data to automatically be updated with newly released browser versions when necessary so the pull request won’t need to require manual updates during this period.
For the same reason, on some occasion pull requests for new features may be accepted at first, but then have the data be rejected later if it’s decided that the data is for whatever reason inappropriate for caniuse (e.g. it’s for some feature already widely supported by all browsers)
Good/preferred pull requests for new features meet the following criteria:
u
for unknown support, though it may be fine to make the more obvious extrapolations like really old browsers not supporting the latest APIs, etc.u
nknown). https://www.browserstack.com and http://saucelabs.com are excellent tools for good cross-browser support testing. In order to keep caniuse useful, features won’t be included on the site until almost all included browsers have actual support information. This does not however apply to older and lesser used browser versions.Currently it is not possible to:
Make sure you have NodeJS installed on your system.
Run
node validator/validate-jsons.js
If something is wrong, it will throw an error. Everything is ok otherwise.