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

HTML5

  1. accept attribute for file input
  2. Audio element
  3. Audio Tracks
  4. Autofocus attribute
  5. Canvas (basic support)
  6. Canvas blend modes
  7. classList (DOMTokenList)
  8. Color input type
  9. contenteditable attribute (basic support)
  10. Custom Elements v0
  11. Custom Elements v1
  12. Custom protocol handling
  13. Datalist element
  14. dataset & data-* attributes
  15. Date and time input types
  16. Details & Summary elements
  17. Dialog element
  18. disabled attribute of the fieldset element
  19. Download attribute
  20. Drag and Drop
  21. Email, telephone & URL input types
  22. Form attribute
  23. Form validation
  24. getElementsByClassName
  25. hidden attribute
  26. HTML Imports
  27. HTML templates
  28. HTML5 form features
  29. indeterminate checkbox
  30. input event
  31. input placeholder attribute
  32. meter element
  33. Minimum length attribute for input fields
  34. Multiple file selection
  35. naturalWidth & naturalHeight image properties
  36. New semantic elements
  37. Number input type
  38. Pattern attribute for input fields
  39. Picture element
  40. PNG favicons
  41. progress element
  42. Range input type
  43. readonly attribute of input and textarea elements
  44. rel=noopener
  45. relList (DOMTokenList)
  46. Reversed attribute of ordered lists
  47. Ruby annotation
  48. sandbox attribute for iframes
  49. Search input type
  50. Session history management
  51. Spellcheck attribute
  52. srcdoc attribute for iframes
  53. Srcset attribute
  54. Subresource Integrity
  55. tabindex global attribute
  56. Text API for Canvas
  57. Toolbar/context menu
  58. Video element
  59. Video Tracks
  60. wbr (word break opportunity) element
  61. Web App Manifest
  62. WebGL - 3D Canvas graphics
  63. WebGL 2.0
  64. Offline web applications
  65. Scoped CSS
  66. seamless attribute for iframes
  67. 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. focusin & focusout events
  26. getComputedStyle
  27. HTTP/2 protocol
  28. inputmode attribute
  29. JPEG 2000 image format
  30. JPEG XR image format
  31. KeyboardEvent.code
  32. KeyboardEvent.getModifierState()
  33. KeyboardEvent.key
  34. KeyboardEvent.location
  35. MathML
  36. MP3 audio format
  37. MPEG-4/H.264 video format
  38. Mutation events
  39. Node.compareDocumentPosition()
  40. Node.innerText
  41. Node.textContent
  42. Ogg Vorbis audio format
  43. Ogg/Theora video format
  44. Opus
  45. Passive event listeners
  46. PNG alpha transparency
  47. Public Key Pinning
  48. querySelector/querySelectorAll
  49. Referrer Policy
  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. Server Name Indication
  57. Shadow DOM v0
  58. Shadow DOM v1
  59. Strict Transport Security
  60. TLS 1.1
  61. TLS 1.2
  62. Upgrade Insecure Requests
  63. WAI-ARIA Accessibility features
  64. Wav audio format
  65. WebAssembly
  66. WebM video format
  67. WebVTT - Web Video Text Tracks
  68. Window.devicePixelRatio
  69. WOFF - Web Open Font Format
  70. WOFF 2.0 - Web Open Font Format
  71. X-Frame-Options HTTP header
  72. XHTML served as application/xhtml+xml
  73. Animated PNG (APNG)
  74. EOT - Embedded OpenType fonts
  75. HTTP Live Streaming (HLS)
  76. KeyboardEvent.charCode
  77. KeyboardEvent.which
  78. Resource Hints: Lazyload
  79. SPDY protocol
  80. WebP image format
  81. XHTML+SMIL animation
  82. All Other features

JS API

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