Index

CSS

  1. ::first-letter CSS pseudo-element selector
  2. ::placeholder CSS pseudo-element
  3. ::selection CSS pseudo-element
  4. :dir() CSS pseudo-class
  5. :in-range and :out-of-range CSS pseudo-classes
  6. :matches() CSS pseudo-class
  7. @font-face Web fonts
  8. Blending of HTML/SVG elements
  9. calc() as CSS unit value
  10. ch (character) unit
  11. 2.1 selectors
  12. all property
  13. Animation
  14. Appearance
  15. background-attachment
  16. background-blend-mode
  17. background-position edge offsets
  18. box-decoration-break
  19. clip-path property
  20. Counter Styles
  21. Counters
  22. currentColor value
  23. Device Adaptation
  24. element() function
  25. Exclusions Level 1
  26. Feature Queries
  27. Filter Effects
  28. filter() function
  29. font-feature-settings
  30. font-size-adjust
  31. font-stretch
  32. font-variant-alternates
  33. Generated content for pseudo-elements
  34. Gradients
  35. Grid Layout
  36. Hyphenation
  37. initial value
  38. inline-block
  39. Masks
  40. min/max-width/height
  41. outline
  42. page-break properties
  43. position:fixed
  44. Regions
  45. Repeating Gradients
  46. resize property
  47. revert value
  48. Scroll snap points
  49. Shapes Level 1
  50. Table display
  51. text-justify
  52. touch-action property
  53. unset value
  54. user-select: none
  55. Variables (Custom Properties)
  56. widows & orphans
  57. will-change property
  58. writing-mode property
  59. 2D Transforms
  60. 3D Transforms
  61. attr() function
  62. Background-image options
  63. Border images
  64. Border-radius (rounded corners)
  65. Box-shadow
  66. Box-sizing
  67. Colors
  68. Cursors (original values)
  69. Cursors: zoom-in & zoom-out
  70. font-kerning
  71. image-orientation
  72. Media Queries
  73. Multiple backgrounds
  74. Multiple column layout
  75. object-fit/object-position
  76. Opacity
  77. Overflow-wrap
  78. selectors
  79. tab-size
  80. text-align-last
  81. Text-overflow
  82. Text-shadow
  83. Transitions
  84. word-break
  85. OM Scroll-behavior
  86. Flexible Box Layout Module
  87. Font unicode-range subsetting
  88. Intrinsic & Extrinsic Sizing
  89. letter-spacing CSS property
  90. Media Queries: interaction media features
  91. Media Queries: resolution feature
  92. rem (root em) units
  93. selector list argument of :not()
  94. text-decoration styling
  95. text-emphasis styling
  96. TTF/OTF - TrueType and OpenType font support
  97. Viewport units: vw, vh, vmin, vmax
  98. :default CSS pseudo-class
  99. :focus-within CSS pseudo-class
  100. :has() CSS relational pseudo-class
  101. :indeterminate CSS pseudo-class
  102. :optional CSS pseudo-class
  103. :placeholder-shown CSS pseudo-class
  104. background-position-x & background-position-y
  105. Case-insensitive CSS attribute selectors
  106. Crisp edges/pixelated images
  107. Backdrop Filter
  108. Canvas Drawings
  109. Containment
  110. Cross-Fade Function
  111. font-smooth
  112. image-set
  113. line-clamp
  114. Logical Properties
  115. Motion Path
  116. pointer-events (for HTML)
  117. position:sticky
  118. Reflections
  119. scrollbar styling
  120. text-size-adjust
  121. text-stroke
  122. zoom
  123. Explicit descendant combinator >>
  124. Improved kerning pairs & ligatures
  125. selector list argument of :nth-child and :nth-last-child CSS pseudo-classes
  126. All CSS features

Other

  1. AAC audio file format
  2. asm.js
  3. async attribute for external scripts
  4. autocomplete attribute: on & off values
  5. Brotli Accept-Encoding/Content-Encoding
  6. ChaCha20-Poly1305 cipher suites for TLS
  7. Client Hints: DPR, Width, Viewport-Width
  8. Content Security Policy 1.0
  9. Content Security Policy Level 2
  10. Data URIs
  11. defer attribute for external scripts
  12. document.head
  13. DOM manipulation convenience methods
  14. DOMContentLoaded
  15. ECMAScript 5 Strict Mode
  16. Element.closest()
  17. EventTarget.addEventListener()
  18. EventTarget.dispatchEvent
  19. focusin & focusout events
  20. getComputedStyle
  21. HTTP/2 protocol
  22. inputmode attribute
  23. JPEG 2000 image format
  24. JPEG XR image format
  25. KeyboardEvent.code
  26. KeyboardEvent.getModifierState()
  27. KeyboardEvent.key
  28. KeyboardEvent.location
  29. MathML
  30. MP3 audio format
  31. MPEG-4/H.264 video format
  32. Node.textContent
  33. Ogg Vorbis audio format
  34. Ogg/Theora video format
  35. Opus
  36. PNG alpha transparency
  37. Public Key Pinning
  38. querySelector/querySelectorAll
  39. Referrer Policy
  40. Resource Hints: dns-prefetch
  41. Resource Hints: preconnect
  42. Resource Hints: prefetch
  43. Resource Hints: preload
  44. Resource Hints: prerender
  45. Server Name Indication
  46. Shadow DOM
  47. Strict Transport Security
  48. TLS 1.1
  49. TLS 1.2
  50. Upgrade Insecure Requests
  51. WAI-ARIA Accessibility features
  52. Wav audio format
  53. WebM video format
  54. WebVTT - Web Video Text Tracks
  55. Window.devicePixelRatio
  56. WOFF - Web Open Font Format
  57. WOFF 2.0 - Web Open Font Format
  58. X-Frame-Options HTTP header
  59. XHTML served as application/xhtml+xml
  60. Animated PNG (APNG)
  61. EOT - Embedded OpenType fonts
  62. KeyboardEvent.charCode
  63. KeyboardEvent.which
  64. Node.innerText
  65. Resource Hints: Lazyload
  66. SPDY protocol
  67. WebP image format
  68. XHTML+SMIL animation
  69. All Other features

JS API

  1. Ambient Light API
  2. Arrow functions
  3. Base64 encoding and decoding
  4. Basic console logging functions
  5. Battery Status API
  6. Beacon API
  7. Blob constructing
  8. Blob URLs
  9. BroadcastChannel
  10. Channel messaging
  11. Clipboard API
  12. const
  13. Cross-document messaging
  14. Cross-Origin Resource Sharing
  15. crypto.getRandomValues()
  16. CSS Font Loading
  17. CSS.supports() API
  18. CustomEvent
  19. DeviceOrientation & DeviceMotion events
  20. Document Object Model Range
  21. document.currentScript
  22. DOM Parsing and Serialization
  23. ECMAScript 5
  24. Element.getBoundingClientRect()
  25. Element.insertAdjacentHTML()
  26. ES6 Number
  27. Fetch
  28. FIDO U2F API
  29. File API
  30. FileReader API
  31. FileReaderSync
  32. Full Screen API
  33. Gamepad API
  34. Geolocation
  35. getUserMedia/Stream API
  36. Hashchange event
  37. High Resolution Time API
  38. IndexedDB
  39. Input Method Editor API
  40. Internationalization API
  41. JSON parsing
  42. let
  43. matches() DOM method
  44. matchMedia
  45. maxlength attribute for input and textarea elements
  46. Media Source Extensions
  47. MediaRecorder API
  48. Mutation Observer
  49. Navigation Timing API
  50. Object RTC (ORTC) API for WebRTC
  51. Online/offline status
  52. Page Visibility
  53. PageTransitionEvent
  54. Pointer events
  55. PointerLock API
  56. Promises
  57. Proximity API
  58. Proxy object
  59. Push API
  60. requestAnimationFrame
  61. requestIdleCallback
  62. Resource Timing
  63. Rest parameters
  64. Screen Orientation
  65. scrollIntoView
  66. Server-sent events
  67. Service Workers
  68. Shared Web Workers
  69. Touch events
  70. Typed Arrays
  71. User Timing API
  72. Vibration API
  73. Web Animations API
  74. Web Audio API
  75. Web Cryptography
  76. Web MIDI API
  77. Web Notifications
  78. Web Sockets
  79. Web Storage - name/value pairs
  80. Web Workers
  81. WebRTC Peer-to-peer connections
  82. XMLHttpRequest advanced features
  83. Document.execCommand()
  84. Efficient Script Yielding: setImmediate()
  85. Element.scrollIntoViewIfNeeded()
  86. Filesystem & FileWriter API
  87. Network Information API
  88. Object.observe data binding
  89. Permissions API
  90. Speech Recognition API
  91. Speech Synthesis API
  92. Web Bluetooth
  93. Web SQL Database
  94. 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:

  1. Useful to web designers/developers
  2. Likely to be eventually implemented by the majority of browsers
  3. 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 June, 2016. See the browser usage table for usage by browser version.