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 value
  41. inline-block
  42. Masks
  43. min/max-width/height
  44. outline
  45. page-break properties
  46. position:fixed
  47. Regions
  48. Repeating Gradients
  49. resize property
  50. revert value
  51. Scroll snap points
  52. Shapes Level 1
  53. Table display
  54. text-indent
  55. text-justify
  56. touch-action property
  57. unset value
  58. user-select: none
  59. Variables (Custom Properties)
  60. widows & orphans
  61. will-change property
  62. writing-mode property
  63. 2D Transforms
  64. 3D Transforms
  65. attr() function
  66. Background-image options
  67. Border images
  68. Border-radius (rounded corners)
  69. Box-shadow
  70. Box-sizing
  71. Colors
  72. Cursors (original values)
  73. Cursors: zoom-in & zoom-out
  74. font-kerning
  75. image-orientation
  76. Media Queries
  77. Multiple backgrounds
  78. Multiple column layout
  79. object-fit/object-position
  80. Opacity
  81. Overflow-wrap
  82. selectors
  83. tab-size
  84. text-align-last
  85. Text-overflow
  86. Text-shadow
  87. Transitions
  88. word-break
  89. OM Scroll-behavior
  90. Flexible Box Layout Module
  91. Font unicode-range subsetting
  92. Intrinsic & Extrinsic Sizing
  93. letter-spacing CSS property
  94. Media Queries: interaction media features
  95. Media Queries: resolution feature
  96. rem (root em) units
  97. selector list argument of :not()
  98. text-decoration styling
  99. text-emphasis styling
  100. TTF/OTF - TrueType and OpenType font support
  101. Viewport units: vw, vh, vmin, vmax
  102. :default CSS pseudo-class
  103. :focus-within CSS pseudo-class
  104. :has() CSS relational pseudo-class
  105. :indeterminate CSS pseudo-class
  106. :optional CSS pseudo-class
  107. background-position-x & background-position-y
  108. Case-insensitive CSS attribute selectors
  109. Crisp edges/pixelated images
  110. Backdrop Filter
  111. Canvas Drawings
  112. Containment
  113. Cross-Fade Function
  114. font-rendering controls
  115. font-smooth
  116. image-set
  117. line-clamp
  118. Logical Properties
  119. Motion Path
  120. pointer-events (for HTML)
  121. position:sticky
  122. Reflections
  123. scrollbar styling
  124. text-size-adjust
  125. text-stroke and text-fill
  126. zoom
  127. Explicit descendant combinator >>
  128. Improved kerning pairs & ligatures
  129. selector list argument of :nth-child and :nth-last-child CSS pseudo-classes
  130. 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. focusin & focusout events
  26. getComputedStyle
  27. HTTP/2 protocol
  28. inputmode attribute
  29. JPEG 2000 image format
  30. JPEG XR image format
  31. KeyboardEvent.code
  32. KeyboardEvent.getModifierState()
  33. KeyboardEvent.key
  34. KeyboardEvent.location
  35. MathML
  36. MP3 audio format
  37. MPEG-4/H.264 video format
  38. Mutation events
  39. Node.compareDocumentPosition()
  40. Node.innerText
  41. Node.textContent
  42. Ogg Vorbis audio format
  43. Ogg/Theora video format
  44. Opus
  45. Passive event listeners
  46. PNG alpha transparency
  47. Public Key Pinning
  48. querySelector/querySelectorAll
  49. Referrer Policy
  50. Resource Hints: dns-prefetch
  51. Resource Hints: preconnect
  52. Resource Hints: prefetch
  53. Resource Hints: preload
  54. Resource Hints: prerender
  55. SDCH Accept-Encoding/Content-Encoding
  56. Server Name Indication
  57. Shadow DOM v0
  58. Shadow DOM v1
  59. Strict Transport Security
  60. TLS 1.1
  61. TLS 1.2
  62. Upgrade Insecure Requests
  63. WAI-ARIA Accessibility features
  64. Wav audio format
  65. WebAssembly
  66. WebM video format
  67. WebVTT - Web Video Text Tracks
  68. Window.devicePixelRatio
  69. WOFF - Web Open Font Format
  70. WOFF 2.0 - Web Open Font Format
  71. X-Frame-Options HTTP header
  72. XHTML served as application/xhtml+xml
  73. Animated PNG (APNG)
  74. EOT - Embedded OpenType fonts
  75. HTTP Live Streaming (HLS)
  76. IntersectionObserver
  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 Number
  30. Fetch
  31. FIDO U2F API
  32. File API
  33. FileReader API
  34. FileReaderSync
  35. Full Screen API
  36. Gamepad API
  37. Geolocation
  38. getUserMedia/Stream API
  39. Hashchange event
  40. High Resolution Time API
  41. IndexedDB
  42. Input Method Editor API
  43. Internationalization API
  44. JSON parsing
  45. let
  46. matches() DOM method
  47. matchMedia
  48. maxlength attribute for input and textarea elements
  49. Media Source Extensions
  50. MediaRecorder API
  51. Mutation Observer
  52. Navigation Timing API
  53. Object RTC (ORTC) API for WebRTC
  54. Online/offline status
  55. Page Visibility
  56. PageTransitionEvent
  57. Payment Request API
  58. Pointer events
  59. PointerLock API
  60. Promises
  61. Proximity API
  62. Proxy object
  63. Push API
  64. requestAnimationFrame
  65. requestIdleCallback
  66. Resource Timing
  67. Rest parameters
  68. Screen Orientation
  69. scrollIntoView
  70. Selection API
  71. Server-sent events
  72. Service Workers
  73. Shared Web Workers
  74. TextEncoder & TextDecoder
  75. Touch events
  76. Typed Arrays
  77. URLSearchParams
  78. User Timing API
  79. Vibration API
  80. Web Animations API
  81. Web Audio API
  82. Web Cryptography
  83. Web MIDI API
  84. Web Notifications
  85. Web Sockets
  86. Web Storage - name/value pairs
  87. Web Workers
  88. WebRTC Peer-to-peer connections
  89. XMLHttpRequest advanced features
  90. Document.execCommand()
  91. Efficient Script Yielding: setImmediate()
  92. Element.scrollIntoViewIfNeeded()
  93. Filesystem & FileWriter API
  94. Network Information API
  95. Object.observe data binding
  96. Permissions API
  97. Speech Recognition API
  98. Speech Synthesis API
  99. Web Bluetooth
  100. Web SQL Database
  101. 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.