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