Index
CSS
- ::first-letter CSS pseudo-element selector
- ::placeholder CSS pseudo-element
- ::selection CSS pseudo-element
- :in-range and :out-of-range CSS pseudo-classes
- @font-face Web fonts
- Blending of HTML/SVG elements
- calc() as CSS unit value
- 2.1 selectors
- all property
- Animation
- Appearance
- background-attachment
- background-blend-mode
- background-position edge offsets
- box-decoration-break
- clip-path property
- Counter Styles
- Counters
- currentColor value
- Device Adaptation
- element() function
- Exclusions Level 1
- Feature Queries
- Filter Effects
- filter() function
- font-feature-settings
- font-size-adjust
- font-stretch
- font-variant-alternates
- Generated content for pseudo-elements
- Gradients
- Grid Layout
- Hyphenation
- initial value
- inline-block
- Masks
- min/max-width/height
- outline
- page-break properties
- position:fixed
- Regions
- Repeating Gradients
- resize property
- revert value
- Scroll snap points
- Shapes Level 1
- Table display
- touch-action property
- unset value
- user-select: none
- Variables
- widows & orphans
- will-change property
- writing-mode property
- 2D Transforms
- 3D Transforms
- Background-image options
- Border images
- Border-radius (rounded corners)
- Box-shadow
- Box-sizing
- Colors
- Cursors (original values)
- Cursors: zoom-in & zoom-out
- font-kerning
- image-orientation
- Media Queries
- Multiple backgrounds
- Multiple column layout
- object-fit/object-position
- Opacity
- Overflow-wrap
- selectors
- tab-size
- text-align-last
- Text-overflow
- Text-shadow
- Transitions
- word-break
- OM Scroll-behavior
- Flexible Box Layout Module
- Font unicode-range subsetting
- Intrinsic & Extrinsic Sizing
- letter-spacing CSS property
- Media Queries: interaction media features
- Media Queries: resolution feature
- rem (root em) units
- text-decoration styling
- text-emphasis styling
- TTF/OTF - TrueType and OpenType font support
- Viewport units: vw, vh, vmin, vmax
- :placeholder-shown CSS pseudo-class
- background-position-x & background-position-y
- Crisp edges/pixelated images
- Backdrop Filter
- Canvas Drawings
- Cross-Fade Function
- font-smooth
- image-set
- line-clamp
- Logical Properties
- Motion Path
- pointer-events (for HTML)
- position:sticky
- Reflections
- text-size-adjust
- text-stroke
- zoom
- Improved kerning pairs & ligatures
- All CSS features
HTML5
- accept attribute for file input
- Audio element
- Audio Tracks
- Autofocus attribute
- Canvas (basic support)
- Canvas blend modes
- classList (DOMTokenList)
- Color input type
- contenteditable attribute (basic support)
- Custom Elements
- Custom protocol handling
- Datalist element
- dataset & data-* attributes
- Date and time input types
- Details & Summary elements
- Dialog element
- disabled attribute of the fieldset element
- Download attribute
- Drag and Drop
- Email, telephone & URL input types
- Form attribute
- Form validation
- getElementsByClassName
- hidden attribute
- HTML Imports
- HTML templates
- HTML5 form features
- input event
- input placeholder attribute
- meter element
- Minimum length attribute for input fields
- Multiple file selection
- New semantic elements
- Number input type
- Pattern attribute for input fields
- Picture element
- PNG favicons
- progress element
- Range input type
- relList (DOMTokenList)
- Reversed attribute of ordered lists
- Ruby annotation
- sandbox attribute for iframes
- Scoped CSS
- Search input type
- Session history management
- Spellcheck attribute
- srcdoc attribute for iframes
- Srcset attribute
- Subresource Integrity
- Text API for Canvas
- Toolbar/context menu
- Video element
- Video Tracks
- wbr (word break opportunity) element
- WebGL - 3D Canvas graphics
- Offline web applications
- seamless attribute for iframes
- All HTML5 features
Other
- AAC audio file format
- asm.js
- async attribute for external scripts
- autocomplete attribute: on & off values
- Brotli Accept-Encoding/Content-Encoding
- Client Hints: DPR, Width, Viewport-Width
- Content Security Policy 1.0
- Content Security Policy Level 2
- Data URIs
- defer attribute for external scripts
- document.head
- DOMContentLoaded
- ECMAScript 5 Strict Mode
- Element.closest()
- EventTarget.addEventListener()
- EventTarget.dispatchEvent
- getComputedStyle
- HTTP/2 protocol
- JPEG 2000 image format
- JPEG XR image format
- KeyboardEvent.code
- KeyboardEvent.getModifierState()
- KeyboardEvent.key
- KeyboardEvent.location
- MathML
- MP3 audio format
- MPEG-4/H.264 video format
- Node.textContent
- Ogg Vorbis audio format
- Ogg/Theora video format
- Opus
- PNG alpha transparency
- Public Key Pinning
- querySelector/querySelectorAll
- Referrer Policy
- Resource Hints: dns-prefetch
- Resource Hints: preconnect
- Resource Hints: prefetch
- Resource Hints: prerender
- Server Name Indication
- Shadow DOM
- Strict Transport Security
- Upgrade Insecure Requests
- WAI-ARIA Accessibility features
- Wav audio format
- WebM video format
- WebVTT - Web Video Text Tracks
- Window.devicePixelRatio
- WOFF - Web Open Font Format
- WOFF 2.0 - Web Open Font Format
- XHTML served as application/xhtml+xml
- Animated PNG (APNG)
- EOT - Embedded OpenType fonts
- KeyboardEvent.charCode
- KeyboardEvent.which
- Node.innerText
- Resource Hints: Lazyload
- SPDY protocol
- WebP image format
- XHTML+SMIL animation
- All Other features
JS API
- Ambient Light API
- Arrow functions
- Base64 encoding and decoding
- Battery Status API
- Beacon API
- Blob constructing
- Blob URLs
- BroadcastChannel
- Channel messaging
- Clipboard API
- const
- Cross-document messaging
- Cross-Origin Resource Sharing
- crypto.getRandomValues()
- CSS Font Loading
- CSS.supports() API
- CustomEvent
- DeviceOrientation & DeviceMotion events
- Document Object Model Range
- DOM Parsing and Serialization
- ECMAScript 5
- Element.getBoundingClientRect()
- Element.insertAdjacentHTML()
- ES6 Number
- Fetch
- FIDO U2F API
- File API
- FileReader API
- Full Screen API
- Gamepad API
- Geolocation
- getUserMedia/Stream API
- Hashchange event
- High Resolution Time API
- IndexedDB
- Input Method Editor API
- Internationalization API
- JSON parsing
- let
- matches() DOM method
- matchMedia
- maxlength attribute for input and textarea elements
- Media Source Extensions
- Mutation Observer
- Navigation Timing API
- Object RTC (ORTC) API for WebRTC
- Online/offline status
- Page Visibility
- PageTransitionEvent
- Pointer events
- PointerLock API
- Promises
- Proximity API
- Proxy object
- Push API
- requestAnimationFrame
- Resource Timing
- Rest parameters
- Screen Orientation
- Server-sent events
- Service Workers
- Shared Web Workers
- Touch events
- Typed Arrays
- User Timing API
- Vibration API
- Web Animations API
- Web Audio API
- Web Cryptography
- Web MIDI API
- Web Notifications
- Web Sockets
- Web Storage - name/value pairs
- Web Workers
- WebRTC Peer-to-peer connections
- XMLHttpRequest advanced features
- Basic console logging functions
- Document.execCommand()
- Efficient Script Yielding: setImmediate()
- Filesystem & FileWriter API
- Network Information API
- Object.observe data binding
- Permissions API
- Speech Recognition API
- Speech Synthesis API
- Web Bluetooth
- Web SQL Database
- All JS API features
Tables
About
"Can I use" provides up-to-date browser support tables for support of front-end web technologies on desktop and mobile web browsers.
The site was built and is maintained by Alexis Deveria, with occasional updates provided by the web development community. The design used as of 2014 was largely created by Lennart Schoors.
FAQ
May I use your data in my presentation/article/site, etc?
Yes, the support data on this site is free to use under the CC BY 4.0 license.
Is there a way to see the support data in colors other than red/green?
Yes, you can enable accessible colors from this link or from the option under Settings. This color scheme will be used again on revisit.
Do you have the data available in a raw format?
Yes, the raw support data is available on GitHub and is updated regularly.
Could you add feature X to the site?
Adding features takes quite some time and there are many requests for additions. Because of this I use GitHub issues to manage requests. Feel free to add/vote for your feature there.
If you've done the research yourself already, you can also submit a feature on GitHub.
Could you cover email clients too so I can see what I can use in HTML emails?
That certainly sounds useful, but for now I only intend to take on web browser support.
Which features do you choose to add to this list?
I use the following criteria:
- Useful to web designers/developers
- Likely to be eventually implemented by the majority of browsers
- Not already fully supported in even old browsers. These features can be made searchable but will not include support tables.
Most features are added in priority order from this list.
How do you test support?
I use a hand-crafted test suite to test features, which tests for basic support of each feature.
The test suite is publicly available at tests.caniuse.com.
Where do you get your information for upcoming versions?
Most information comes directly from the latest developer/preview/nightly builds.
When is a feature considered "supported"?
When its primary purpose is largely fulfilled. It does not mean it's 100% supported, just that it's usable in most cases.
How often is this page updated?
I try to keep it as current as possible, with new information being usually being processed within a few days. Follow the feed if you'd like keep up with all the changes made.
Legend
- Green = Supported
- Red = Not supported
- Greenish yellow = Partial support
- Gray = Support unknown
*Global usage share statistics based on data from StatCounter GlobalStats for January, 2016. See the browser usage table for usage by browser version.