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. background-repeat round and space
  21. box-decoration-break
  22. caret-color
  23. clip-path property (for HTML)
  24. Conical Gradients
  25. Counter Styles
  26. Counters
  27. currentColor value
  28. Device Adaptation
  29. display: contents
  30. element() function
  31. Exclusions Level 1
  32. Feature Queries
  33. Filter Effects
  34. filter() function
  35. first-line pseudo-element
  36. Flexible Box Layout Module
  37. font-feature-settings
  38. font-size-adjust
  39. font-stretch
  40. font-variant-alternates
  41. Generated content for pseudo-elements
  42. Gradients
  43. Grid Layout
  44. hanging-punctuation
  45. Hyphenation
  46. Initial Letter
  47. initial value
  48. inline-block
  49. Masks
  50. min/max-width/height
  51. namespaces
  52. outline properties
  53. overflow-anchor (Scroll Anchoring)
  54. page-break properties
  55. position:fixed
  56. position:sticky
  57. Regions
  58. Repeating Gradients
  59. resize property
  60. revert value
  61. Scroll snap points
  62. Shapes Level 1
  63. Table display
  64. text-indent
  65. text-justify
  66. text-orientation
  67. touch-action property
  68. unset value
  69. user-select: none
  70. Variables (Custom Properties)
  71. widows & orphans
  72. will-change property
  73. writing-mode property
  74. 2D Transforms
  75. 3D Transforms
  76. attr() function
  77. Background-image options
  78. Border images
  79. Border-radius (rounded corners)
  80. Box-shadow
  81. Box-sizing
  82. Colors
  83. Cursors (original values)
  84. Cursors: zoom-in & zoom-out
  85. font-kerning
  86. image-orientation
  87. Media Queries
  88. Multiple backgrounds
  89. Multiple column layout
  90. object-fit/object-position
  91. Opacity
  92. Overflow-wrap
  93. selectors
  94. tab-size
  95. text-align-last
  96. Text-overflow
  97. Text-shadow
  98. Transitions
  99. word-break
  100. OM Scroll-behavior
  101. display: flow-root
  102. Font unicode-range subsetting
  103. Intrinsic & Extrinsic Sizing
  104. letter-spacing CSS property
  105. Media Queries: interaction media features
  106. Media Queries: resolution feature
  107. Rebeccapurple color
  108. rem (root em) units
  109. selector list argument of :not()
  110. text-decoration styling
  111. text-emphasis styling
  112. TTF/OTF - TrueType and OpenType font support
  113. Viewport units: vw, vh, vmin, vmax
  114. #rrggbbaa hex color notation
  115. :default CSS pseudo-class
  116. :focus-within CSS pseudo-class
  117. :has() CSS relational pseudo-class
  118. :indeterminate CSS pseudo-class
  119. :optional CSS pseudo-class
  120. background-position-x & background-position-y
  121. Case-insensitive CSS attribute selectors
  122. Crisp edges/pixelated images
  123. @apply rule
  124. Backdrop Filter
  125. Canvas Drawings
  126. Containment
  127. Cross-Fade Function
  128. font-rendering controls
  129. font-smooth
  130. image-set
  131. line-clamp
  132. Logical Properties
  133. Motion Path
  134. pointer-events (for HTML)
  135. Reflections
  136. scrollbar styling
  137. text-size-adjust
  138. text-stroke and text-fill
  139. zoom
  140. Explicit descendant combinator >>
  141. Improved kerning pairs & ligatures
  142. selector list argument of :nth-child and :nth-last-child CSS pseudo-classes
  143. 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. Pattern attribute for input fields
  42. Picture element
  43. Ping attribute
  44. PNG favicons
  45. progress element
  46. Range input type
  47. readonly attribute of input and textarea elements
  48. rel=noopener
  49. relList (DOMTokenList)
  50. Reversed attribute of ordered lists
  51. Ruby annotation
  52. sandbox attribute for iframes
  53. Search input type
  54. Session history management
  55. Spellcheck attribute
  56. srcdoc attribute for iframes
  57. Srcset and sizes attributes
  58. Subresource Integrity
  59. tabindex global attribute
  60. Text API for Canvas
  61. Toolbar/context menu
  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. Offline web applications
  69. Scoped CSS
  70. seamless attribute for iframes
  71. 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. 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. querySelector/querySelectorAll
  49. Resource Hints: dns-prefetch
  50. Resource Hints: preconnect
  51. Resource Hints: prefetch
  52. Resource Hints: preload
  53. Resource Hints: prerender
  54. SDCH Accept-Encoding/Content-Encoding
  55. Shadow DOM v0
  56. Shadow DOM v1
  57. WAI-ARIA Accessibility features
  58. Wav audio format
  59. WebAssembly
  60. WebM video format
  61. WebVTT - Web Video Text Tracks
  62. Window.devicePixelRatio
  63. WOFF - Web Open Font Format
  64. WOFF 2.0 - Web Open Font Format
  65. XHTML served as application/xhtml+xml
  66. Animated PNG (APNG)
  67. EOT - Embedded OpenType fonts
  68. HTTP Live Streaming (HLS)
  69. KeyboardEvent.charCode
  70. KeyboardEvent.which
  71. Resource Hints: Lazyload
  72. SPDY protocol
  73. WebP image format
  74. XHTML+SMIL animation
  75. 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. Constraint Validation API
  12. Credential Management API
  13. Cross-document messaging
  14. Cross-Origin Resource Sharing
  15. crypto.getRandomValues()
  16. CSS Font Loading
  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. Input Method Editor API
  38. Internationalization API
  39. matches() DOM method
  40. matchMedia
  41. maxlength attribute for input and textarea elements
  42. Media Source Extensions
  43. MediaRecorder API
  44. Mutation Observer
  45. Navigation Timing API
  46. navigator.hardwareConcurrency
  47. Object RTC (ORTC) API for WebRTC
  48. Online/offline status
  49. Page Visibility
  50. PageTransitionEvent
  51. Payment Request API
  52. Pointer events
  53. PointerLock API
  54. Printing Events
  55. Proximity API
  56. Push API
  57. requestAnimationFrame
  58. requestIdleCallback
  59. Resource Timing
  60. Screen Orientation
  61. scrollIntoView
  62. Selection API
  63. Server-sent events
  64. Service Workers
  65. Shared Web Workers
  66. TextEncoder & TextDecoder
  67. Touch events
  68. URL API
  69. URLSearchParams
  70. User Timing API
  71. Vibration API
  72. Web Animations API
  73. Web Audio API
  74. Web Cryptography
  75. Web MIDI API
  76. Web Notifications
  77. Web Sockets
  78. Web Storage - name/value pairs
  79. Web Workers
  80. WebRTC Peer-to-peer connections
  81. XMLHttpRequest advanced features
  82. Directory selection from file input
  83. document.evaluate & XPath
  84. Document.execCommand()
  85. Efficient Script Yielding: setImmediate()
  86. Element.scrollIntoViewIfNeeded()
  87. Filesystem & FileWriter API
  88. IntersectionObserver
  89. Network Information API
  90. Permissions API
  91. Resize Observer
  92. Speech Recognition API
  93. Speech Synthesis API
  94. Web Bluetooth
  95. Web SQL Database
  96. WebVR API
  97. All JS API features

Home

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