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

Other

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

JS API

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