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. ch (character) unit
  13. 2.1 selectors
  14. ::marker pseudo-element
  15. all property
  16. Animation
  17. Appearance
  18. background-attachment
  19. background-blend-mode
  20. background-position edge offsets
  21. background-repeat round and space
  22. box-decoration-break
  23. caret-color
  24. clip-path property (for HTML)
  25. Conical Gradients
  26. Counter Styles
  27. Counters
  28. currentColor value
  29. Device Adaptation
  30. display: contents
  31. element() function
  32. Exclusions Level 1
  33. Feature Queries
  34. Filter Effects
  35. filter() function
  36. first-line pseudo-element
  37. Flexible Box Layout Module
  38. font-feature-settings
  39. font-size-adjust
  40. font-stretch
  41. font-variant-alternates
  42. Generated content for pseudo-elements
  43. Gradients
  44. Grid Layout
  45. hanging-punctuation
  46. Hyphenation
  47. Initial Letter
  48. initial value
  49. inline-block
  50. Masks
  51. min/max-width/height
  52. namespaces
  53. outline properties
  54. overflow-anchor (Scroll Anchoring)
  55. page-break properties
  56. position:fixed
  57. position:sticky
  58. Regions
  59. Repeating Gradients
  60. resize property
  61. revert value
  62. Scroll snap points
  63. Shapes Level 1
  64. Table display
  65. text-indent
  66. text-justify
  67. text-orientation
  68. touch-action property
  69. unset value
  70. user-select: none
  71. Variables (Custom Properties)
  72. widows & orphans
  73. will-change property
  74. writing-mode property
  75. 2D Transforms
  76. 3D Transforms
  77. attr() function
  78. Background-image options
  79. Border images
  80. Border-radius (rounded corners)
  81. Box-shadow
  82. Box-sizing
  83. Colors
  84. Cursors (original values)
  85. Cursors: zoom-in & zoom-out
  86. font-kerning
  87. image-orientation
  88. Media Queries
  89. Multiple backgrounds
  90. Multiple column layout
  91. object-fit/object-position
  92. Opacity
  93. Overflow-wrap
  94. selectors
  95. tab-size
  96. text-align-last
  97. Text-overflow
  98. Text-shadow
  99. Transitions
  100. word-break
  101. OM Scroll-behavior
  102. display: flow-root
  103. display: run-in
  104. Font unicode-range subsetting
  105. Intrinsic & Extrinsic Sizing
  106. letter-spacing CSS property
  107. Media Queries: interaction media features
  108. Media Queries: resolution feature
  109. Rebeccapurple color
  110. rem (root em) units
  111. selector list argument of :not()
  112. text-decoration styling
  113. text-emphasis styling
  114. TTF/OTF - TrueType and OpenType font support
  115. Variable fonts
  116. Viewport units: vw, vh, vmin, vmax
  117. #rrggbbaa hex color notation
  118. :default CSS pseudo-class
  119. :focus-ring CSS pseudo-class
  120. :focus-within CSS pseudo-class
  121. :indeterminate CSS pseudo-class
  122. :optional CSS pseudo-class
  123. background-position-x & background-position-y
  124. Case-insensitive CSS attribute selectors
  125. Crisp edges/pixelated images
  126. @apply rule
  127. Backdrop Filter
  128. Canvas Drawings
  129. Containment
  130. Cross-Fade Function
  131. font-rendering controls
  132. font-smooth
  133. image-set
  134. line-clamp
  135. Logical Properties
  136. Motion Path
  137. pointer-events (for HTML)
  138. Reflections
  139. scrollbar styling
  140. text-size-adjust
  141. text-stroke and text-fill
  142. zoom
  143. Explicit descendant combinator >>
  144. Improved kerning pairs & ligatures
  145. selector list argument of :nth-child and :nth-last-child CSS pseudo-classes
  146. 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. indeterminate checkbox
  32. input event
  33. input placeholder attribute
  34. meter element
  35. Minimum length attribute for input fields
  36. Multiple file selection
  37. naturalWidth & naturalHeight image properties
  38. New semantic elements
  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. Brotli Accept-Encoding/Content-Encoding
  7. ChildNode.remove()
  8. Client Hints: DPR, Width, Viewport-Width
  9. CSS Paged Media (@page)
  10. Data URIs
  11. defer attribute for external scripts
  12. document.elementFromPoint()
  13. document.head
  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. getComputedStyle
  26. HEIF/ISO Base Media File Format
  27. HEVC/H.265 video format
  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. Media Fragments
  38. MP3 audio format
  39. MPEG-4/H.264 video format
  40. Mutation events
  41. Node.compareDocumentPosition()
  42. Node.innerText
  43. Node.textContent
  44. Ogg Vorbis audio format
  45. Ogg/Theora video format
  46. Opus
  47. Passive event listeners
  48. PNG alpha transparency
  49. querySelector/querySelectorAll
  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. Shadow DOM v0
  57. Shadow DOM v1
  58. WAI-ARIA Accessibility features
  59. Wav audio format
  60. WebAssembly
  61. WebM video format
  62. WebVTT - Web Video Text Tracks
  63. Window.devicePixelRatio
  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. SPDY protocol
  74. WebP image format
  75. XHTML+SMIL animation
  76. All Other features

JS API

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

Home

Latest features
Most searched features
  1. Flexbox
  2. CSS Grid
  3. CSS calc()
  4. SVG
  5. CSS transforms
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.