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. :has() CSS relational pseudo-class
  6. :in-range and :out-of-range CSS pseudo-classes
  7. :matches() CSS pseudo-class
  8. :placeholder-shown CSS pseudo-class
  9. @font-face Web fonts
  10. Blending of HTML/SVG elements
  11. calc() as CSS unit value
  12. Case-insensitive CSS attribute selectors
  13. ch (character) unit
  14. CSS 2.1 selectors
  15. CSS ::marker pseudo-element
  16. CSS :any-link selector
  17. CSS :read-only and :read-write selectors
  18. CSS all property
  19. CSS Animation
  20. CSS Appearance
  21. CSS background-attachment
  22. CSS background-blend-mode
  23. CSS background-position edge offsets
  24. CSS background-repeat round and space
  25. CSS box-decoration-break
  26. CSS caret-color
  27. CSS clip-path property (for HTML)
  28. CSS Conical Gradients
  29. CSS Containment
  30. CSS Counter Styles
  31. CSS Counters
  32. CSS currentColor value
  33. CSS Device Adaptation
  34. CSS display: contents
  35. CSS element() function
  36. CSS Exclusions Level 1
  37. CSS Feature Queries
  38. CSS Filter Effects
  39. CSS filter() function
  40. CSS first-line pseudo-element
  41. CSS Flexible Box Layout Module
  42. CSS Font Loading
  43. CSS font-feature-settings
  44. CSS font-rendering controls
  45. CSS font-size-adjust
  46. CSS font-stretch
  47. CSS font-variant-alternates
  48. CSS font-variant-numeric
  49. CSS Generated content for pseudo-elements
  50. CSS grab & grabbing cursors
  51. CSS Gradients
  52. CSS Grid Layout (level 1)
  53. CSS hanging-punctuation
  54. CSS Hyphenation
  55. CSS image-set
  56. CSS Initial Letter
  57. CSS initial value
  58. CSS inline-block
  59. CSS justify-content: space-evenly
  60. CSS Logical Properties
  61. CSS Masks
  62. CSS math functions min(), max() and clamp()
  63. CSS min/max-width/height
  64. CSS Motion Path
  65. CSS namespaces
  66. CSS outline properties
  67. CSS overflow property
  68. CSS overflow-anchor (Scroll Anchoring)
  69. CSS page-break properties
  70. CSS Paint API
  71. CSS position:fixed
  72. CSS position:sticky
  73. CSS Regions
  74. CSS Repeating Gradients
  75. CSS resize property
  76. CSS revert value
  77. CSS Scroll Snap
  78. CSS Shapes Level 1
  79. CSS Subgrid
  80. CSS Table display
  81. CSS text-indent
  82. CSS text-justify
  83. CSS text-orientation
  84. CSS touch-action property
  85. CSS unset value
  86. CSS user-select: none
  87. CSS Variables (Custom Properties)
  88. CSS widows & orphans
  89. CSS will-change property
  90. CSS writing-mode property
  91. CSS3 2D Transforms
  92. CSS3 3D Transforms
  93. CSS3 attr() function for all properties
  94. CSS3 Background-image options
  95. CSS3 Border images
  96. CSS3 Border-radius (rounded corners)
  97. CSS3 Box-shadow
  98. CSS3 Box-sizing
  99. CSS3 Colors
  100. CSS3 Cursors (original values)
  101. CSS3 Cursors: zoom-in & zoom-out
  102. CSS3 font-kerning
  103. CSS3 image-orientation
  104. CSS3 Media Queries
  105. CSS3 Multiple backgrounds
  106. CSS3 Multiple column layout
  107. CSS3 object-fit/object-position
  108. CSS3 Opacity
  109. CSS3 Overflow-wrap
  110. CSS3 selectors
  111. CSS3 tab-size
  112. CSS3 text-align-last
  113. CSS3 Text-overflow
  114. CSS3 Text-shadow
  115. CSS3 Transitions
  116. CSS3 word-break
  117. CSSOM Scroll-behavior
  118. display: flow-root
  119. display: run-in
  120. Font unicode-range subsetting
  121. gap property for Flexbox
  122. getComputedStyle
  123. Intrinsic & Extrinsic Sizing
  124. letter-spacing CSS property
  125. Media Queries: interaction media features
  126. Media Queries: resolution feature
  127. Rebeccapurple color
  128. rem (root em) units
  129. selector list argument of :not()
  130. SVG in CSS backgrounds
  131. system-ui value for font-family
  132. text-decoration styling
  133. text-emphasis styling
  134. TTF/OTF - TrueType and OpenType font support
  135. Variable fonts
  136. Viewport units: vw, vh, vmin, vmax
  137. Window.devicePixelRatio
  138. #rrggbbaa hex color notation
  139. :default CSS pseudo-class
  140. :focus-visible CSS pseudo-class
  141. :focus-within CSS pseudo-class
  142. :indeterminate CSS pseudo-class
  143. :optional CSS pseudo-class
  144. background-position-x & background-position-y
  145. Crisp edges/pixelated images
  146. CSS @apply rule
  147. CSS Backdrop Filter
  148. CSS Canvas Drawings
  149. CSS color-adjust
  150. CSS Cross-Fade Function
  151. CSS Environment Variables env()
  152. CSS font-smooth
  153. CSS line-clamp
  154. CSS overscroll-behavior
  155. CSS pointer-events (for HTML)
  156. CSS Reflections
  157. CSS scrollbar styling
  158. CSS text-size-adjust
  159. CSS text-stroke and text-fill
  160. CSS zoom
  161. Explicit descendant combinator >>
  162. High-quality kerning pairs & ligatures
  163. prefers-color-scheme media query
  164. prefers-reduced-motion media query
  165. Scoped CSS
  166. selector list argument of :nth-child and :nth-last-child CSS pseudo-classes
  167. All CSS features

HTML5

  1. accept attribute for file input
  2. async attribute for external scripts
  3. Attributes for form submission
  4. Audio element
  5. Audio Tracks
  6. Autofocus attribute
  7. Canvas (basic support)
  8. Canvas blend modes
  9. classList (DOMTokenList)
  10. Color input type
  11. contenteditable attribute (basic support)
  12. Custom Elements (V1)
  13. Custom protocol handling
  14. Datalist element
  15. dataset & data-* attributes
  16. Date and time input types
  17. defer attribute for external scripts
  18. Details & Summary elements
  19. Dialog element
  20. disabled attribute of the fieldset element
  21. Download attribute
  22. Drag and Drop
  23. Email, telephone & URL input types
  24. Form attribute
  25. Form validation
  26. getElementsByClassName
  27. Hashchange event
  28. hidden attribute
  29. HTML Imports
  30. HTML Media Capture
  31. HTML templates
  32. HTML5 form features
  33. HTML5 semantic elements
  34. indeterminate checkbox
  35. Inline SVG in HTML5
  36. input event
  37. input placeholder attribute
  38. inputmode attribute
  39. Lazy loading via attribute for images & iframes
  40. Link type "noreferrer"
  41. maxlength attribute for input and textarea elements
  42. meter element
  43. Minimum length attribute for input fields
  44. Multiple file selection
  45. naturalWidth & naturalHeight image properties
  46. Number input type
  47. OffscreenCanvas
  48. PageTransitionEvent
  49. Path2D
  50. Pattern attribute for input fields
  51. Picture element
  52. Ping attribute
  53. PNG favicons
  54. Printing Events
  55. progress element
  56. Range input type
  57. readonly attribute of input and textarea elements
  58. rel=noopener
  59. relList (DOMTokenList)
  60. Reversed attribute of ordered lists
  61. Ruby annotation
  62. sandbox attribute for iframes
  63. Search input type
  64. Selection controls for input & textarea
  65. Session history management
  66. Spellcheck attribute
  67. srcdoc attribute for iframes
  68. Srcset and sizes attributes
  69. Subresource Integrity
  70. SVG favicons
  71. tabindex global attribute
  72. Text API for Canvas
  73. Video element
  74. Video Tracks
  75. wbr (word break opportunity) element
  76. Web App Manifest
  77. WebGL - 3D Canvas graphics
  78. WebGL 2.0
  79. Context menu item (menuitem element)
  80. Custom Elements (deprecated V0 spec)
  81. Offline web applications
  82. seamless attribute for iframes
  83. All HTML5 features

Other

  1. "once" event listener option
  2. AAC audio file format
  3. autocomplete attribute: on & off values
  4. AV1 video format
  5. AVIF image format
  6. Brotli Accept-Encoding/Content-Encoding
  7. ChildNode.remove()
  8. Client Hints: DPR, Width, Viewport-Width
  9. CSS Paged Media (@page)
  10. Data URIs
  11. document.elementFromPoint()
  12. document.head
  13. document.scrollingElement
  14. DOM manipulation convenience methods
  15. DOMContentLoaded
  16. DOMMatrix
  17. Dynamic Adaptive Streaming over HTTP (MPEG-DASH)
  18. Element.closest()
  19. Element.insertAdjacentElement() & Element.insertAdjacentText()
  20. ES6 Generators
  21. EventTarget.addEventListener()
  22. EventTarget.dispatchEvent
  23. FLAC audio format
  24. focusin & focusout events
  25. HEIF/ISO Base Media File Format
  26. HEVC/H.265 video format
  27. HTMLElement.innerText
  28. HTTP/2 protocol
  29. HTTP/3 protocol
  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. Media Fragments
  38. MP3 audio format
  39. MPEG-4/H.264 video format
  40. Mutation events
  41. Node.compareDocumentPosition()
  42. Node.textContent
  43. Ogg Vorbis audio format
  44. Ogg/Theora video format
  45. Opus
  46. Passive event listeners
  47. PNG alpha transparency
  48. querySelector/querySelectorAll
  49. Resource Hints: dns-prefetch
  50. Resource Hints: modulepreload
  51. Resource Hints: preconnect
  52. Resource Hints: prefetch
  53. Resource Hints: preload
  54. Resource Hints: prerender
  55. SDCH Accept-Encoding/Content-Encoding
  56. Shadow DOM (V1)
  57. Signed HTTP Exchanges (SXG)
  58. theme-color Meta Tag
  59. WAI-ARIA Accessibility features
  60. Wav audio format
  61. WebAssembly
  62. WebM video format
  63. WebVTT - Web Video Text Tracks
  64. WOFF - Web Open Font Format
  65. WOFF 2.0 - Web Open Font Format
  66. XHTML served as application/xhtml+xml
  67. Animated PNG (APNG)
  68. EOT - Embedded OpenType fonts
  69. HTTP Live Streaming (HLS)
  70. KeyboardEvent.charCode
  71. KeyboardEvent.which
  72. Resource Hints: Lazyload
  73. Shadow DOM (deprecated V0 spec)
  74. SPDY protocol
  75. WebP image format
  76. XHTML+SMIL animation
  77. All Other features

JS API

  1. AbortController & AbortSignal
  2. Accelerometer
  3. Ambient Light Sensor
  4. Auxclick
  5. Base64 encoding and decoding
  6. Basic console logging functions
  7. Battery Status API
  8. Beacon API
  9. BigInt
  10. Blob constructing
  11. Blob URLs
  12. BroadcastChannel
  13. Channel messaging
  14. console.time and console.timeEnd
  15. Constraint Validation API
  16. createImageBitmap
  17. Credential Management API
  18. Cross-document messaging
  19. Cross-Origin Resource Sharing
  20. crypto.getRandomValues()
  21. CSS.supports() API
  22. CustomEvent
  23. DeviceOrientation & DeviceMotion events
  24. Do Not Track API
  25. Document Object Model Range
  26. document.currentScript
  27. DOM Parsing and Serialization
  28. Element.getBoundingClientRect()
  29. Element.insertAdjacentHTML()
  30. Encrypted Media Extensions
  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. Gyroscope
  41. High Resolution Time API
  42. IndexedDB
  43. IndexedDB 2.0
  44. Input Method Editor API
  45. Internationalization API
  46. IntersectionObserver
  47. Intl.PluralRules API
  48. Magnetometer
  49. matches() DOM method
  50. matchMedia
  51. Media Capture from DOM Elements API
  52. Media Source Extensions
  53. MediaRecorder API
  54. Mutation Observer
  55. Navigation Timing API
  56. navigator.hardwareConcurrency
  57. Object RTC (ORTC) API for WebRTC
  58. Online/offline status
  59. Orientation Sensor
  60. Page Visibility
  61. Payment Request API
  62. Pointer events
  63. Pointer Lock API
  64. Proximity API
  65. Push API
  66. requestAnimationFrame
  67. requestIdleCallback
  68. Resource Timing
  69. Screen Orientation
  70. Scroll methods on elements (scroll, scrollTo, scrollBy)
  71. scrollIntoView
  72. Selection API
  73. Server Timing
  74. Server-sent events
  75. Service Workers
  76. Shared Web Workers
  77. Streams
  78. Synchronous Clipboard API
  79. TextEncoder & TextDecoder
  80. Touch events
  81. URL API
  82. URLSearchParams
  83. User Timing API
  84. Vibration API
  85. Web Animations API
  86. Web Audio API
  87. Web Cryptography
  88. Web MIDI API
  89. Web Notifications
  90. Web Sockets
  91. Web Storage - name/value pairs
  92. Web Workers
  93. WebRTC Peer-to-peer connections
  94. WebXR Device API
  95. XMLHttpRequest advanced features
  96. Background Sync API
  97. Directory selection from file input
  98. document.evaluate & XPath
  99. Document.execCommand()
  100. Efficient Script Yielding: setImmediate()
  101. Element.scrollIntoViewIfNeeded()
  102. Feature Policy
  103. Filesystem & FileWriter API
  104. IntersectionObserver V2
  105. Native Filesystem API
  106. Network Information API
  107. Permissions API
  108. Picture-in-Picture
  109. Resize Observer
  110. Speech Recognition API
  111. Speech Synthesis API
  112. Web Bluetooth
  113. Web Share API
  114. Web SQL Database
  115. WebGPU
  116. WebUSB
  117. WebVR API
  118. All JS API features

Home

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
  1. Chrome 80: 377
  2. Firefox 74: 358
  3. Safari 13: 321

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.