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. element() function
  28. Exclusions Level 1
  29. Feature Queries
  30. Filter Effects
  31. filter() function
  32. first-line pseudo-element
  33. font-feature-settings
  34. font-size-adjust
  35. font-stretch
  36. font-variant-alternates
  37. Generated content for pseudo-elements
  38. Gradients
  39. Grid Layout
  40. hanging-punctuation
  41. Hyphenation
  42. Initial Letter
  43. initial value
  44. inline-block
  45. Masks
  46. min/max-width/height
  47. outline
  48. page-break properties
  49. position:fixed
  50. position:sticky
  51. Regions
  52. Repeating Gradients
  53. resize property
  54. revert value
  55. Scroll snap points
  56. Shapes Level 1
  57. Table display
  58. text-indent
  59. text-justify
  60. touch-action property
  61. unset value
  62. user-select: none
  63. Variables (Custom Properties)
  64. widows & orphans
  65. will-change property
  66. writing-mode property
  67. 2D Transforms
  68. 3D Transforms
  69. attr() function
  70. Background-image options
  71. Border images
  72. Border-radius (rounded corners)
  73. Box-shadow
  74. Box-sizing
  75. Colors
  76. Cursors (original values)
  77. Cursors: zoom-in & zoom-out
  78. font-kerning
  79. image-orientation
  80. Media Queries
  81. Multiple backgrounds
  82. Multiple column layout
  83. object-fit/object-position
  84. Opacity
  85. Overflow-wrap
  86. selectors
  87. tab-size
  88. text-align-last
  89. Text-overflow
  90. Text-shadow
  91. Transitions
  92. word-break
  93. OM Scroll-behavior
  94. display: flow-root
  95. Flexible Box Layout Module
  96. Font unicode-range subsetting
  97. Intrinsic & Extrinsic Sizing
  98. letter-spacing CSS property
  99. Media Queries: interaction media features
  100. Media Queries: resolution feature
  101. rem (root em) units
  102. selector list argument of :not()
  103. text-decoration styling
  104. text-emphasis styling
  105. TTF/OTF - TrueType and OpenType font support
  106. Viewport units: vw, vh, vmin, vmax
  107. #rrggbbaa hex color notation
  108. :default CSS pseudo-class
  109. :focus-within CSS pseudo-class
  110. :has() CSS relational pseudo-class
  111. :indeterminate CSS pseudo-class
  112. :optional CSS pseudo-class
  113. background-position-x & background-position-y
  114. Case-insensitive CSS attribute selectors
  115. Crisp edges/pixelated images
  116. @apply rule
  117. Backdrop Filter
  118. Canvas Drawings
  119. Containment
  120. Cross-Fade Function
  121. font-rendering controls
  122. font-smooth
  123. image-set
  124. line-clamp
  125. Logical Properties
  126. Motion Path
  127. pointer-events (for HTML)
  128. Reflections
  129. scrollbar styling
  130. text-size-adjust
  131. text-stroke and text-fill
  132. zoom
  133. Explicit descendant combinator >>
  134. Improved kerning pairs & ligatures
  135. selector list argument of :nth-child and :nth-last-child CSS pseudo-classes
  136. 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. 'SameSite' cookie attribute
  3. AAC audio file format
  4. asm.js
  5. async attribute for external scripts
  6. autocomplete attribute: on & off values
  7. Brotli Accept-Encoding/Content-Encoding
  8. ChaCha20-Poly1305 cipher suites for TLS
  9. ChildNode.remove()
  10. Client Hints: DPR, Width, Viewport-Width
  11. Content Security Policy 1.0
  12. Content Security Policy Level 2
  13. CSS Paged Media (@page)
  14. Data URIs
  15. defer attribute for external scripts
  16. document.elementFromPoint()
  17. document.head
  18. DOM manipulation convenience methods
  19. DOMContentLoaded
  20. ECMAScript 5 Strict Mode
  21. Element.closest()
  22. Element.insertAdjacentElement() & Element.insertAdjacentText()
  23. EventTarget.addEventListener()
  24. EventTarget.dispatchEvent
  25. FLAC audio format
  26. focusin & focusout events
  27. getComputedStyle
  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. Public Key Pinning
  49. querySelector/querySelectorAll
  50. Referrer Policy
  51. Resource Hints: dns-prefetch
  52. Resource Hints: preconnect
  53. Resource Hints: prefetch
  54. Resource Hints: preload
  55. Resource Hints: prerender
  56. SDCH Accept-Encoding/Content-Encoding
  57. Server Name Indication
  58. Shadow DOM v0
  59. Shadow DOM v1
  60. Strict Transport Security
  61. TLS 1.1
  62. TLS 1.2
  63. Upgrade Insecure Requests
  64. WAI-ARIA Accessibility features
  65. Wav audio format
  66. WebAssembly
  67. WebM video format
  68. WebVTT - Web Video Text Tracks
  69. Window.devicePixelRatio
  70. WOFF - Web Open Font Format
  71. WOFF 2.0 - Web Open Font Format
  72. X-Frame-Options HTTP header
  73. XHTML served as application/xhtml+xml
  74. Animated PNG (APNG)
  75. EOT - Embedded OpenType fonts
  76. HTTP Live Streaming (HLS)
  77. KeyboardEvent.charCode
  78. KeyboardEvent.which
  79. Resource Hints: Lazyload
  80. SPDY protocol
  81. WebP image format
  82. XHTML+SMIL animation
  83. All Other features

JS API

  1. Ambient Light API
  2. Arrow functions
  3. Async functions
  4. Base64 encoding and decoding
  5. Basic console logging functions
  6. Battery Status API
  7. Beacon API
  8. Blob constructing
  9. Blob URLs
  10. BroadcastChannel
  11. Channel messaging
  12. Clipboard API
  13. const
  14. Credential Management API
  15. Cross-document messaging
  16. Cross-Origin Resource Sharing
  17. crypto.getRandomValues()
  18. CSS Font Loading
  19. CSS.supports() API
  20. CustomEvent
  21. DeviceOrientation & DeviceMotion events
  22. Document Object Model Range
  23. document.currentScript
  24. DOM Parsing and Serialization
  25. ECMAScript 5
  26. Element.getBoundingClientRect()
  27. Element.insertAdjacentHTML()
  28. ES6 classes
  29. ES6 module
  30. ES6 Number
  31. ES6 Template Literals (Template Strings)
  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. Hashchange event
  42. High Resolution Time API
  43. IndexedDB
  44. Input Method Editor API
  45. Internationalization API
  46. JSON parsing
  47. let
  48. matches() DOM method
  49. matchMedia
  50. maxlength attribute for input and textarea elements
  51. Media Source Extensions
  52. MediaRecorder API
  53. Mutation Observer
  54. Navigation Timing API
  55. Object RTC (ORTC) API for WebRTC
  56. Online/offline status
  57. Page Visibility
  58. PageTransitionEvent
  59. Payment Request API
  60. Pointer events
  61. PointerLock API
  62. Printing Events
  63. Promises
  64. Proximity API
  65. Proxy object
  66. Push API
  67. requestAnimationFrame
  68. requestIdleCallback
  69. Resource Timing
  70. Rest parameters
  71. Screen Orientation
  72. scrollIntoView
  73. Selection API
  74. Server-sent events
  75. Service Workers
  76. Shared Web Workers
  77. TextEncoder & TextDecoder
  78. Touch events
  79. Typed Arrays
  80. URL API
  81. URLSearchParams
  82. User Timing API
  83. Vibration API
  84. Web Animations API
  85. Web Audio API
  86. Web Cryptography
  87. Web MIDI API
  88. Web Notifications
  89. Web Sockets
  90. Web Storage - name/value pairs
  91. Web Workers
  92. WebRTC Peer-to-peer connections
  93. XMLHttpRequest advanced features
  94. Document.execCommand()
  95. Efficient Script Yielding: setImmediate()
  96. Element.scrollIntoViewIfNeeded()
  97. Filesystem & FileWriter API
  98. IntersectionObserver
  99. Network Information API
  100. Object.observe data binding
  101. Permissions API
  102. Speech Recognition API
  103. Speech Synthesis API
  104. Web Bluetooth
  105. Web SQL Database
  106. WebVR API
  107. 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.