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

HTML5

  1. accept attribute for file input
  2. Attributes for form submission
  3. Audio element
  4. Audio Tracks
  5. Autofocus attribute
  6. Canvas (basic support)
  7. Canvas blend modes
  8. classList (DOMTokenList)
  9. Color input type
  10. contenteditable attribute (basic support)
  11. Custom Elements v0
  12. Custom Elements v1
  13. Custom protocol handling
  14. Datalist element
  15. dataset & data-* attributes
  16. Date and time input types
  17. Details & Summary elements
  18. Dialog element
  19. disabled attribute of the fieldset element
  20. Download attribute
  21. Drag and Drop
  22. Email, telephone & URL input types
  23. Form attribute
  24. Form validation
  25. getElementsByClassName
  26. hidden attribute
  27. HTML Imports
  28. HTML Media Capture
  29. HTML templates
  30. HTML5 form features
  31. HTML5 semantic elements
  32. indeterminate checkbox
  33. input event
  34. input placeholder attribute
  35. meter element
  36. Minimum length attribute for input fields
  37. Multiple file selection
  38. naturalWidth & naturalHeight image properties
  39. Number input type
  40. OffscreenCanvas
  41. Path2D
  42. Pattern attribute for input fields
  43. Picture element
  44. Ping attribute
  45. PNG favicons
  46. progress element
  47. Range input type
  48. readonly attribute of input and textarea elements
  49. rel=noopener
  50. relList (DOMTokenList)
  51. Reversed attribute of ordered lists
  52. Ruby annotation
  53. sandbox attribute for iframes
  54. Search input type
  55. Session history management
  56. Spellcheck attribute
  57. srcdoc attribute for iframes
  58. Srcset and sizes attributes
  59. Subresource Integrity
  60. tabindex global attribute
  61. Text API for Canvas
  62. Video element
  63. Video Tracks
  64. wbr (word break opportunity) element
  65. Web App Manifest
  66. WebGL - 3D Canvas graphics
  67. WebGL 2.0
  68. Context menu item (menuitem element)
  69. Offline web applications
  70. Scoped CSS
  71. seamless attribute for iframes
  72. All HTML5 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. AV1 video format
  7. Brotli Accept-Encoding/Content-Encoding
  8. ChildNode.remove()
  9. Client Hints: DPR, Width, Viewport-Width
  10. CSS Paged Media (@page)
  11. Data URIs
  12. defer attribute for external scripts
  13. document.elementFromPoint()
  14. document.head
  15. document.scrollingElement
  16. DOM manipulation convenience methods
  17. DOMContentLoaded
  18. DOMMatrix
  19. Dynamic Adaptive Streaming over HTTP (MPEG-DASH)
  20. Element.closest()
  21. Element.insertAdjacentElement() & Element.insertAdjacentText()
  22. ES6 Generators
  23. EventTarget.addEventListener()
  24. EventTarget.dispatchEvent
  25. FLAC audio format
  26. focusin & focusout events
  27. getComputedStyle
  28. HEIF/ISO Base Media File Format
  29. HEVC/H.265 video format
  30. HTTP/2 protocol
  31. inputmode attribute
  32. JPEG 2000 image format
  33. JPEG XR image format
  34. KeyboardEvent.code
  35. KeyboardEvent.getModifierState()
  36. KeyboardEvent.key
  37. KeyboardEvent.location
  38. MathML
  39. Media Fragments
  40. MP3 audio format
  41. MPEG-4/H.264 video format
  42. Mutation events
  43. Node.compareDocumentPosition()
  44. Node.innerText
  45. Node.textContent
  46. Ogg Vorbis audio format
  47. Ogg/Theora video format
  48. Opus
  49. Passive event listeners
  50. PNG alpha transparency
  51. querySelector/querySelectorAll
  52. Resource Hints: dns-prefetch
  53. Resource Hints: preconnect
  54. Resource Hints: prefetch
  55. Resource Hints: preload
  56. Resource Hints: prerender
  57. SDCH Accept-Encoding/Content-Encoding
  58. Shadow DOM v0
  59. Shadow DOM v1
  60. theme-color Meta Tag
  61. WAI-ARIA Accessibility features
  62. Wav audio format
  63. WebAssembly
  64. WebM video format
  65. WebVTT - Web Video Text Tracks
  66. Window.devicePixelRatio
  67. WOFF - Web Open Font Format
  68. WOFF 2.0 - Web Open Font Format
  69. XHTML served as application/xhtml+xml
  70. Animated PNG (APNG)
  71. EOT - Embedded OpenType fonts
  72. HTTP Live Streaming (HLS)
  73. KeyboardEvent.charCode
  74. KeyboardEvent.which
  75. Resource Hints: Lazyload
  76. SPDY protocol
  77. WebP image format
  78. XHTML+SMIL animation
  79. 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 Font Loading
  22. CSS Paint API
  23. CSS.supports() API
  24. CustomEvent
  25. DeviceOrientation & DeviceMotion events
  26. Do Not Track API
  27. Document Object Model Range
  28. document.currentScript
  29. DOM Parsing and Serialization
  30. Element.getBoundingClientRect()
  31. Element.insertAdjacentHTML()
  32. Fetch
  33. FIDO U2F API
  34. File API
  35. FileReader API
  36. FileReaderSync
  37. Full Screen API
  38. Gamepad API
  39. Geolocation
  40. getUserMedia/Stream API
  41. Gyroscope
  42. Hashchange event
  43. High Resolution Time API
  44. IndexedDB
  45. IndexedDB 2.0
  46. Input Method Editor API
  47. Internationalization API
  48. IntersectionObserver
  49. Magnetometer
  50. matches() DOM method
  51. matchMedia
  52. maxlength attribute for input and textarea elements
  53. Media Capture from DOM Elements API
  54. Media Source Extensions
  55. MediaRecorder API
  56. Mutation Observer
  57. Navigation Timing API
  58. navigator.hardwareConcurrency
  59. Object RTC (ORTC) API for WebRTC
  60. Online/offline status
  61. Orientation Sensor
  62. Page Visibility
  63. PageTransitionEvent
  64. Payment Request API
  65. Pointer events
  66. Pointer Lock API
  67. Printing Events
  68. Proximity API
  69. Push API
  70. requestAnimationFrame
  71. requestIdleCallback
  72. Resource Timing
  73. Screen Orientation
  74. scrollIntoView
  75. Selection API
  76. Selection controls for input & textarea
  77. Server-sent events
  78. Service Workers
  79. Shared Web Workers
  80. Streams
  81. Synchronous Clipboard API
  82. TextEncoder & TextDecoder
  83. Touch events
  84. unhandledrejection/rejectionhandled events
  85. URL API
  86. URLSearchParams
  87. User Timing API
  88. Vibration API
  89. Web Animations API
  90. Web Audio API
  91. Web Cryptography
  92. Web MIDI API
  93. Web Notifications
  94. Web Sockets
  95. Web Storage - name/value pairs
  96. Web Workers
  97. WebRTC Peer-to-peer connections
  98. XMLHttpRequest advanced features
  99. Background Sync API
  100. Directory selection from file input
  101. document.evaluate & XPath
  102. Document.execCommand()
  103. Efficient Script Yielding: setImmediate()
  104. Element.scrollIntoViewIfNeeded()
  105. Filesystem & FileWriter 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. WebUSB
  116. WebXR API
  117. 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.