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

Other

  1. "once" event listener option
  2. AAC audio file format
  3. asm.js
  4. async attribute for external scripts
  5. autocomplete attribute: on & off values
  6. Brotli Accept-Encoding/Content-Encoding
  7. ChaCha20-Poly1305 cipher suites for TLS
  8. Client Hints: DPR, Width, Viewport-Width
  9. Content Security Policy 1.0
  10. Content Security Policy Level 2
  11. Data URIs
  12. defer attribute for external scripts
  13. document.elementFromPoint()
  14. document.head
  15. DOM manipulation convenience methods
  16. DOMContentLoaded
  17. ECMAScript 5 Strict Mode
  18. Element.closest()
  19. Element.insertAdjacentElement() & Element.insertAdjacentText()
  20. EventTarget.addEventListener()
  21. EventTarget.dispatchEvent
  22. focusin & focusout events
  23. getComputedStyle
  24. HTTP/2 protocol
  25. inputmode attribute
  26. JPEG 2000 image format
  27. JPEG XR image format
  28. KeyboardEvent.code
  29. KeyboardEvent.getModifierState()
  30. KeyboardEvent.key
  31. KeyboardEvent.location
  32. MathML
  33. MP3 audio format
  34. MPEG-4/H.264 video format
  35. Node.innerText
  36. Node.textContent
  37. Ogg Vorbis audio format
  38. Ogg/Theora video format
  39. Opus
  40. PNG alpha transparency
  41. Public Key Pinning
  42. querySelector/querySelectorAll
  43. Referrer Policy
  44. Resource Hints: dns-prefetch
  45. Resource Hints: preconnect
  46. Resource Hints: prefetch
  47. Resource Hints: preload
  48. Resource Hints: prerender
  49. SDCH Accept-Encoding/Content-Encoding
  50. Server Name Indication
  51. Shadow DOM v0
  52. Shadow DOM v1
  53. Strict Transport Security
  54. TLS 1.1
  55. TLS 1.2
  56. Upgrade Insecure Requests
  57. WAI-ARIA Accessibility features
  58. Wav audio format
  59. WebM video format
  60. WebVTT - Web Video Text Tracks
  61. Window.devicePixelRatio
  62. WOFF - Web Open Font Format
  63. WOFF 2.0 - Web Open Font Format
  64. X-Frame-Options HTTP header
  65. XHTML served as application/xhtml+xml
  66. Animated PNG (APNG)
  67. EOT - Embedded OpenType fonts
  68. KeyboardEvent.charCode
  69. KeyboardEvent.which
  70. Resource Hints: Lazyload
  71. SPDY protocol
  72. WebP image format
  73. XHTML+SMIL animation
  74. 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. Credential Management API
  14. Cross-document messaging
  15. Cross-Origin Resource Sharing
  16. crypto.getRandomValues()
  17. CSS Font Loading
  18. CSS.supports() API
  19. CustomEvent
  20. DeviceOrientation & DeviceMotion events
  21. Document Object Model Range
  22. document.currentScript
  23. DOM Parsing and Serialization
  24. ECMAScript 5
  25. Element.getBoundingClientRect()
  26. Element.insertAdjacentHTML()
  27. ES6 Number
  28. Fetch
  29. FIDO U2F API
  30. File API
  31. FileReader API
  32. FileReaderSync
  33. Full Screen API
  34. Gamepad API
  35. Geolocation
  36. getUserMedia/Stream API
  37. Hashchange event
  38. High Resolution Time API
  39. IndexedDB
  40. Input Method Editor API
  41. Internationalization API
  42. JSON parsing
  43. let
  44. matches() DOM method
  45. matchMedia
  46. maxlength attribute for input and textarea elements
  47. Media Source Extensions
  48. MediaRecorder API
  49. Mutation Observer
  50. Navigation Timing API
  51. Object RTC (ORTC) API for WebRTC
  52. Online/offline status
  53. Page Visibility
  54. PageTransitionEvent
  55. Payment Request API
  56. Pointer events
  57. PointerLock API
  58. Promises
  59. Proximity API
  60. Proxy object
  61. Push API
  62. requestAnimationFrame
  63. requestIdleCallback
  64. Resource Timing
  65. Rest parameters
  66. Screen Orientation
  67. scrollIntoView
  68. Selection API
  69. Server-sent events
  70. Service Workers
  71. Shared Web Workers
  72. TextEncoder & TextDecoder
  73. Touch events
  74. Typed Arrays
  75. URLSearchParams
  76. User Timing API
  77. Vibration API
  78. Web Animations API
  79. Web Audio API
  80. Web Cryptography
  81. Web MIDI API
  82. Web Notifications
  83. Web Sockets
  84. Web Storage - name/value pairs
  85. Web Workers
  86. WebRTC Peer-to-peer connections
  87. XMLHttpRequest advanced features
  88. Document.execCommand()
  89. Efficient Script Yielding: setImmediate()
  90. Element.scrollIntoViewIfNeeded()
  91. Filesystem & FileWriter API
  92. Network Information API
  93. Object.observe data binding
  94. Permissions API
  95. Speech Recognition API
  96. Speech Synthesis API
  97. Web Bluetooth
  98. Web SQL Database
  99. All JS API features

Home

Latest features
Did you know?
  • You can import usage data from your Google Analytics account and see exactly how well a feature is supported among your own site's visitors. Look under the Settings panel to get started!

  • Usage data for all countries and continents can be imported via the Settings panel.

  • By default, older browser versions are only shown if they have >= 0.5% usage share. You can increase or decrease this value from the Settings panel.

  • If a feature you're looking for is not available on the site, you can vote to have it included. Better yet, if you've done the research you can even submit it yourself!

  • Each feature support table includes a "Usage relative" button. This will resize each browser version cell to be relative to the amount of support it has for the selected usage source.

Browser scores

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.