Time to Stable

For a given set of browsers, what APIs are in all of them and how many days it take for the API to land in the first browser to the last.

Example Comparisons
Browsers
Features

Summary

A count of the number of APIs that landed in A first and B last.
Last in ChromeLast in Chrome Android
First in Chrome 721
First in Chrome Android 14

Average time for an API to become available across Chrome and Chrome Android

735 APIs took an average of 764.61 days to become available to use.

API breakdown:

Average time to landing by year of first landing

If a feature landed in the earliest browser in 20XX it took Y days on average to become available in the last browser (when considering Chrome and Chrome Android). TTA (time to available).
HTML APIsHTML TTA
2008 3491294.00
2009 221026.64
2010 47878.17
2011 37418.46
2012 44421.25
2013 35.67
2014 1563.20
2015 101.30
2016 369.53
2017 24216.29
2018 29100.97
2019 1368.38
2020 11109.09
2021 110.00
2022 2048.45
2023 170.18
2024 250.00
2025 170.00
2026 50.00

The Tortoise and the Hare

There is a natural tension on the web with respect to browser engines. Every engine has their own set of priorities which define the level of investment that they choose to make and on which areas they choose to make it.

A developer naturally wants their experiences to be available to the widest audience possible and these differing priorities create an unevenness on the platform (a lumpiness) making it harder for developers to build experiences that work everywhere.

This section highlights where browsers are pushing and pulling on the platform.

Sprinters

This table is designed to show which browsers are pushing on the platform the most.

Adding features to quickly is not always desired because developers are unlikely to adopt those features in their sites or apps.

For a given year, if a feature landed in Browser X first, how many days it take on average to be available in Chrome and Chrome Android. TTA (time to available).
Year HTMLHTML TTA
2008
  Chrome 3491294.00
2009
  Chrome 221026.64
2010
  Chrome 47878.17
2011
  Chrome 37418.46
2012
  Chrome 44421.25
2013
  Chrome 35.67
2014
  Chrome 1277.50
  Chrome Android 36.00
2015
  Chrome 101.30
2016
  Chrome 369.53
2017
  Chrome 214.57
  Chrome Android 31698.33
2018
  Chrome 29100.97
2019
  Chrome 1368.38
2020
  Chrome 80.00
  Chrome Android 3400.00
2021
  Chrome 110.00
2022
  Chrome 150.00
  Chrome Android 5193.80
2023
  Chrome 170.18
2024
  Chrome 250.00
2025
  Chrome 170.00
2026
  Chrome 50.00

Plodders

This table is designed to show which browsers are pulling on the platform the most.

For a feature that first landed in year X, how many days did it take on average for the last browser to catch up across Chrome and Chrome Android. TTA (time to available).
Year HTML countHTML TTA
2008
  Chrome Android 3491294.00
2009
  Chrome Android 221026.64
2010
  Chrome Android 47878.17
2011
  Chrome Android 37418.46
2012
  Chrome Android 44421.25
2013
  Chrome Android 35.67
2014
  Chrome Android 1277.50
  Chrome 36.00
2015
  Chrome Android 101.30
2016
  Chrome Android 369.53
2017
  Chrome Android 214.57
  Chrome 31698.33
2018
  Chrome Android 29100.97
2019
  Chrome Android 1368.38
2020
  Chrome Android 80.00
  Chrome 3400.00
2021
  Chrome Android 110.00
2022
  Chrome Android 150.00
  Chrome 5193.80
2023
  Chrome Android 170.18
2024
  Chrome Android 250.00
2025
  Chrome Android 170.00
2026
  Chrome Android 50.00

Stable APIs

Below is a list of features that are in Chrome and Chrome Android

Raw Data

Quick Links:

HTML Data

API First Browser Date Last Browser Date Days Notes
html.elements.a 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Starting with Firefox 41, <a> without href attribute is no longer classified as interactive content: clicking it inside <label> will activate labelled content (bug 1167816).Firefox for Android: Starting with Firefox for Android 41, <a> without href attribute is no longer classified as interactive content: clicking it inside <label> will activate labelled content (bug 1167816).
html.elements.a.attributionsrc 📋Chrome5/14/2024 Chrome Android5/14/2024
html.elements.a.charset 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.a.coords 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: You can no longer nest an <a> element inside a <map> element to create a hotspot region - coords and shape attribute support removed.Firefox for Android: You can no longer nest an <a> element inside a <map> element to create a hotspot region - coords and shape attribute support removed.
html.elements.a.download 📋Chrome9/16/2011 Chrome Android6/27/2012285
Chrome: Starting in Chrome 65, cross-origin downloads are not supported on the <a> element.Chrome Android: Starting in Chrome Android 65, cross-origin downloads are not supported on the <a> element.Edge: Starting in Edge 79, cross-origin downloads are not supported on the <a> element.Edge: Until Edge 14 (build 14357), attempting to download data URIs caused Edge to crash (bug 7160092).Edge: Edge 17 or older didn't follow the attributes' value to determine filename (bug 7260192).Firefox for Android: The attribute's filename value only affects the suggested file name for the blob: and data: URI schemes. Other schemes ignore the suggested filename. See bug 1845642.Quest Browser: Starting in Quest Browser 5.0, cross-origin downloads are not supported on the <a> element.Opera: Starting in Opera 52, cross-origin downloads are not supported on the <a> element.Opera Android: Starting in Opera Android 47, cross-origin downloads are not supported on the <a> element.Samsung Internet: Starting in Samsung Internet 9.0, cross-origin downloads are not supported on the <a> element.WebView Android: Starting in WebView Android 65, cross-origin downloads are not supported on the <a> element.
html.elements.a.href 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.a.href.href_top Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.a.hreflang 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.a.hreftranslate Chrome4/7/2020 Chrome Android4/7/2020
html.elements.a.implicit_noopener Chrome1/19/2021 Chrome Android1/19/2021
html.elements.a.interestfor Chrome10/28/2025 Chrome Android10/28/2025
html.elements.a.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.a.ping 📋Chrome6/7/2011 Chrome Android6/27/2012386
Firefox: This property is exposed but has no effect if the browser.send_pings preference is not set to true. See bug 951104.Firefox for Android: This property is exposed but has no effect if the browser.send_pings preference is not set to true. See bug 951104.
html.elements.a.referrerpolicy 📋Chrome5/25/2016 Chrome Android6/8/201614
html.elements.a.referrerpolicy.no-referrer-when-downgrade Chrome5/25/2016 Chrome Android6/8/201614
html.elements.a.referrerpolicy.origin-when-cross-origin Chrome5/25/2016 Chrome Android6/8/201614
html.elements.a.referrerpolicy.unsafe-url Chrome5/25/2016 Chrome Android6/8/201614
html.elements.a.rel 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.a.rel.noopener 📋Chrome3/2/2016 Chrome Android3/9/20167
Firefox: Before Firefox 63, rel="noopener" created windows with all features disabled by default. Starting with Firefox 63, these windows have the same features enabled by default as any other window.Firefox for Android: Before Firefox for Android 63, rel="noopener" created windows with all features disabled by default. Starting with Firefox for Android 63, these windows have the same features enabled by default as any other window.
html.elements.a.rel.noreferrer 📋Chrome12/13/2011 Chrome Android6/27/2012197
Internet Explorer: Only supported in IE11 in later versions of Windows 10 (creators update). (Per caniuse.com.)
html.elements.a.rev 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.a.shape 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: You can no longer nest an <a> element inside a <map> element to create a hotspot region - coords and shape attribute support removed.Firefox for Android: You can no longer nest an <a> element inside a <map> element to create a hotspot region - coords and shape attribute support removed.
html.elements.a.target 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.a.target.unfencedTop Chrome6/11/2024 Chrome Android6/11/2024
html.elements.a.text_fragments Chrome2/4/2020 Chrome Android2/4/2020
html.elements.a.type 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.abbr 📋Chrome5/21/2009 Chrome Android6/27/20121133
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.acronym 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.address 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.area 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.area.alt 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.area.attributionsrc 📋Chrome5/14/2024 Chrome Android5/14/2024
html.elements.area.coords 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.area.download 📋Chrome10/12/2016 Chrome Android10/19/20167
html.elements.area.href 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.area.implicit_noopener Chrome1/19/2021 Chrome Android1/19/2021
html.elements.area.interestfor Chrome10/28/2025 Chrome Android10/28/2025
html.elements.area.nohref 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.area.ping 📋Chrome6/7/2011 Chrome Android6/27/2012386
Firefox: This property is exposed but has no effect if the browser.send_pings preference is not set to true. See bug 951104.Firefox for Android: This property is exposed but has no effect if the browser.send_pings preference is not set to true. See bug 951104.
html.elements.area.referrerpolicy 📋Chrome5/25/2016 Chrome Android6/8/201614
html.elements.area.referrerpolicy.no-referrer-when-downgrade Chrome5/25/2016 Chrome Android6/8/201614
html.elements.area.referrerpolicy.origin-when-cross-origin Chrome5/25/2016 Chrome Android6/8/201614
html.elements.area.referrerpolicy.unsafe-url Chrome5/25/2016 Chrome Android6/8/201614
html.elements.area.rel 📋Chrome12/13/2011 Chrome Android6/27/2012197
html.elements.area.rel.noopener 📋Chrome3/2/2016 Chrome Android3/9/20167
Firefox: Before Firefox 63, rel="noopener" created windows with all features disabled by default. Starting with Firefox 63, these windows have the same features enabled by default as any other window.Firefox for Android: Before Firefox for Android 63, rel="noopener" created windows with all features disabled by default. Starting with Firefox for Android 63, these windows have the same features enabled by default as any other window.
html.elements.area.rel.noreferrer 📋Chrome12/13/2011 Chrome Android6/27/2012197
Internet Explorer: Only supported in IE11 in later versions of Windows 10 (creators update). (Per caniuse.com.)
html.elements.area.shape 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.area.target 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.article 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.aside 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.audio 📋Chrome9/15/2009 Chrome Android6/27/20121016
Firefox: For Firefox to play audio, the server must serve the file using the correct MIME type.Firefox for Android: For Firefox for Android to play audio, the server must serve the file using the correct MIME type.
html.elements.audio.controls 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.audio.controlslist 📋Chrome4/19/2017 Chrome Android4/25/20176
html.elements.audio.crossorigin 📋Chrome2/20/2014 Chrome Android2/26/20146
Firefox: With crossorigin="use-credentials", cookies aren't sent during seek. See bug 1532722.Firefox for Android: With crossorigin="use-credentials", cookies aren't sent during seek. See bug 1532722.
html.elements.audio.disableremoteplayback 📋Chrome Android2/1/2017 Chrome1/23/20242547
html.elements.audio.loop 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.audio.muted 📋Chrome10/25/2011 Chrome Android6/27/2012246
html.elements.audio.preload 📋Chrome9/15/2009 Chrome Android6/27/20121016
Chrome: Defaults to metadata in Chrome 64.Chrome Android: Defaults to metadata in Chrome Android 64.Quest Browser: Defaults to metadata in Quest Browser 5.0.Opera: Defaults to metadata in Opera 51.Opera Android: Defaults to metadata in Opera 51.Samsung Internet: Defaults to metadata in Samsung Internet 9.0.WebView Android: Defaults to metadata in Chrome 64.
html.elements.audio.src 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.b 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.base 📋Chrome12/11/2008 Chrome Android6/27/20121294
Internet Explorer: Before Internet Explorer 7, <base> can be positioned anywhere in the document and the nearest value of <base> is used.
html.elements.base.href 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.base.href.forbid_data_javascript_urls Chrome4/19/2017 Chrome Android4/25/20176
html.elements.base.href.relative_url Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.base.target 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.bdi 📋Chrome12/13/2011 Chrome Android6/27/2012197
html.elements.bdo 📋Chrome10/25/2011 Chrome Android6/27/2012246
html.elements.big 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.blockquote 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.blockquote.cite Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.body 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.body.alink Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.body.background Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.body.bgcolor Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.body.bottommargin Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 35, it was supported in Quirks Mode only.Firefox for Android: Before Firefox for Android 35, it was supported in Quirks Mode only.
html.elements.body.leftmargin Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 35, it was supported in Quirks Mode only.Firefox for Android: Before Firefox for Android 35, it was supported in Quirks Mode only.
html.elements.body.link Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.body.rightmargin Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 35, it was supported in Quirks Mode only.Firefox for Android: Before Firefox for Android 35, it was supported in Quirks Mode only.
html.elements.body.text Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.body.topmargin Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 35, it was supported in Quirks Mode only.Firefox for Android: Before Firefox for Android 35, it was supported in Quirks Mode only.
html.elements.body.vlink Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.br 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.br.clear Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.button 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.button.command 📋Chrome4/1/2025 Chrome Android4/1/2025
html.elements.button.command.request-close 📋Chrome8/5/2025 Chrome Android8/5/2025
html.elements.button.commandfor 📋Chrome4/1/2025 Chrome Android4/1/2025
html.elements.button.commandfor.implicit_anchor_reference 📋Chrome4/1/2025 Chrome Android4/1/2025
html.elements.button.disabled 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.button.form Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.button.formaction Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.button.formenctype Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.button.formmethod Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.button.formnovalidate Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.button.formtarget Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.button.interestfor Chrome10/28/2025 Chrome Android10/28/2025
html.elements.button.name Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.button.popovertarget 📋Chrome5/30/2023 Chrome Android5/30/2023
html.elements.button.popovertarget.implicit_anchor_reference 📋Chrome2/4/2025 Chrome Android2/4/2025
html.elements.button.popovertargetaction 📋Chrome5/30/2023 Chrome Android5/30/2023
html.elements.button.type Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.button.value Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.canvas 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 5, the canvas width and height were signed integers instead of unsigned integers.Firefox: Before Firefox 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox: Before Firefox 12, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Firefox for Android: Before Firefox for Android 5, the canvas width and height were signed integers instead of unsigned integers.Firefox for Android: Before Firefox for Android 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox for Android: Before Firefox for Android 14, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Safari: Although early versions of Apple's Safari browser don't require the closing tag, the specification indicates that it is required, so you should be sure to include it for broadest compatibility. Before version 2, Safari will render the content of the fallback in addition to the canvas itself unless you use CSS tricks to mask it.
html.elements.canvas.height 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 5, the canvas width and height were signed integers instead of unsigned integers.Firefox: Before Firefox 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox: Before Firefox 12, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Firefox for Android: Before Firefox for Android 5, the canvas width and height were signed integers instead of unsigned integers.Firefox for Android: Before Firefox for Android 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox for Android: Before Firefox for Android 14, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Safari: Although early versions of Apple's Safari browser don't require the closing tag, the specification indicates that it is required, so you should be sure to include it for broadest compatibility. Before version 2, Safari will render the content of the fallback in addition to the canvas itself unless you use CSS tricks to mask it.
html.elements.canvas.width 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 5, the canvas width and height were signed integers instead of unsigned integers.Firefox: Before Firefox 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox: Before Firefox 12, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Firefox for Android: Before Firefox for Android 5, the canvas width and height were signed integers instead of unsigned integers.Firefox for Android: Before Firefox for Android 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox for Android: Before Firefox for Android 14, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Safari: Although early versions of Apple's Safari browser don't require the closing tag, the specification indicates that it is required, so you should be sure to include it for broadest compatibility. Before version 2, Safari will render the content of the fallback in addition to the canvas itself unless you use CSS tricks to mask it.
html.elements.caption 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.caption.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.center 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.Firefox for Android: Before Firefox for Android 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.cite 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.code 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.col 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.col.align 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.col.span 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.col.valign 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.col.width 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.colgroup 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.colgroup.align 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.colgroup.span 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.colgroup.valign 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.colgroup.width 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.data 📋Chrome10/17/2017 Chrome Android10/24/20177
html.elements.data.value 📋Chrome10/17/2017 Chrome Android10/24/20177
html.elements.datalist 📋Chrome6/26/2012 Chrome Android2/26/2014610
Firefox for Android: The dropdown menu containing available options does not appear. See bug 1535985.
html.elements.datalist.input_type_color 📋Chrome6/26/2012 Chrome Android2/26/2014610
html.elements.datalist.input_type_date 📋Chrome6/26/2012 Chrome Android2/26/2014610
html.elements.datalist.input_type_email 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.datalist.input_type_number 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.datalist.input_type_range 📋Chrome6/26/2012 Chrome Android3/16/20171724
html.elements.datalist.input_type_search 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.datalist.input_type_tel 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.datalist.input_type_text 📋Chrome6/26/2012 Chrome Android2/26/2014610
html.elements.datalist.input_type_time 📋Chrome6/26/2012 Chrome Android2/26/2014610
html.elements.datalist.input_type_url 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.dd 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, this element was implemented using the HTMLSpanElement interface instead of HTMLElement.
html.elements.del 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.del.cite Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.del.datetime Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.details 📋Chrome6/7/2011 Chrome Android6/27/2012386
Firefox: Before Firefox 57, there was a bug meaning that <details> elements can't be made open by default using the open attribute if they have a CSS animation active on them.Firefox for Android: There is a bug meaning that <details> elements can't be made open by default using the open attribute if they have a CSS animation active on them.
html.elements.details.name Chrome12/5/2023 Chrome Android12/5/2023
html.elements.details.open Chrome6/7/2011 Chrome Android6/27/2012386
html.elements.details.search_match_opens Chrome1/4/2022 Chrome Android1/4/2022
Firefox: The browser does not correctly scroll to the matching text. See bug 2006040.Firefox for Android: The browser does not correctly scroll to the matching text. See bug 2006040.Safari: The browser does not correctly scroll to the matching text. See bug 304174.Safari on iOS: The browser does not correctly scroll to the matching text. See bug 304174.WebView on iOS: The browser does not correctly scroll to the matching text. See bug 304174.
html.elements.dfn 📋Chrome10/25/2011 Chrome Android6/27/2012246
html.elements.dialog 📋Chrome8/26/2014 Chrome Android9/3/20148
html.elements.dialog.closedby 📋Chrome3/4/2025 Chrome Android3/4/2025
html.elements.dialog.open Chrome8/26/2014 Chrome Android9/3/20148
html.elements.dir 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.dir.compact Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.div 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.div.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.dl 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.dt 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.em 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.embed 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.embed.align 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.embed.height 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.embed.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.embed.src 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.embed.type 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.embed.width 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.fencedframe 📋Chrome6/11/2024 Chrome Android6/11/2024
html.elements.fencedframe.allow 📋Chrome6/11/2024 Chrome Android6/11/2024
html.elements.fencedframe.height 📋Chrome6/11/2024 Chrome Android6/11/2024
html.elements.fencedframe.width 📋Chrome6/11/2024 Chrome Android6/11/2024
html.elements.fieldset 📋Chrome12/11/2008 Chrome Android6/27/20121294
Chrome: Before version 86, this element did not support flexbox and grid layouts within this element. See bug 41027853.Chrome Android: Before version 86, this element did not support flexbox and grid layouts within this element. See bug 41027853.Edge: Before version 86, this element did not support flexbox and grid layouts within this element. See bug 4511145.Quest Browser: Before version 12.0, this element did not support flexbox and grid layouts within this element. See bug 41027853.Samsung Internet: Before version 14.0, this element did not support flexbox and grid layouts within this element. See bug 41027853.WebView Android: Before version 86, this element did not support flexbox and grid layouts within this element. See bug 41027853.
html.elements.fieldset.disabled 📋Chrome6/26/2012 Chrome Android2/27/2013246
Edge: Does not work with nested fieldsets. For example: <fieldset disabled><fieldset><!--Still enabled--></fieldset></fieldset>Internet Explorer: Not all form control descendants of a disabled fieldset are properly disabled in IE11; see IE bug 817488: input[type='file'] not disabled inside disabled fieldset and IE bug 962368: Can still edit input[type='text'] within fieldset[disabled].
html.elements.fieldset.form 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.fieldset.name 📋Chrome5/15/2012 Chrome Android2/27/2013288
html.elements.figcaption 📋Chrome12/2/2010 Chrome Android6/27/2012573
html.elements.figure 📋Chrome12/2/2010 Chrome Android6/27/2012573
html.elements.font 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.font.color Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.font.face Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.font.size Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.footer 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.form 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.form.accept-charset 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.form.action 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.form.autocomplete 📋Chrome9/16/2011 Chrome Android6/27/2012285
Chrome: The Google Chrome UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Chrome might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Chrome Android: The Chrome Android UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Chrome Android might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Quest Browser: The Quest Browser UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Quest Browser might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Opera: The Opera UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Opera might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Opera Android: The Opera Android UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Opera Android might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Samsung Internet: The Samsung Internet UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Samsung Internet might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.WebView Android: The WebView Android UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, WebView Android might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.
html.elements.form.autocomplete.one-time-code Chrome Android7/27/2020 Chrome8/31/2021400
html.elements.form.autocomplete.webauthn 📋Chrome11/29/2022 Chrome Android11/29/2022
html.elements.form.enctype 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.form.method 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.form.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.form.novalidate 📋Chrome3/8/2011 Chrome Android6/27/2012477
html.elements.form.rel 📋Chrome11/29/2022 Chrome Android11/29/2022
html.elements.form.target 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frame 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frame.frameborder Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frame.marginheight Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frame.marginwidth Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frame.name Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frame.noresize Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frame.scrolling Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frame.src Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frameset 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frameset.cols Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.frameset.rows Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.geolocation 📋Chrome1/13/2026 Chrome Android1/13/2026
html.elements.geolocation.autolocate 📋Chrome1/13/2026 Chrome Android1/13/2026
html.elements.geolocation.watch 📋Chrome1/13/2026 Chrome Android1/13/2026
html.elements.h1 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.h2 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.h3 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.h4 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.h5 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.h6 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.head 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.header 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.hgroup 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.hr 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.hr.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.hr.color Chrome2/20/2014 Chrome Android2/26/20146
html.elements.hr.noshade Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.hr.size Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.hr.width Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.html 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.html.version 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.html.xmlns Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.i 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: The resize CSS property doesn't have any effect on this element due to bug 680823.Firefox for Android: The resize CSS property doesn't have any effect on this element due to bug 680823.Safari: Safari has a bug that prevents iframes from loading if the iframe element was hidden when added to the page. iframeElement.src = iframeElement.src should cause it to load the iframe.Safari on iOS: Safari on iOS has a bug that prevents iframes from loading if the iframe element was hidden when added to the page. iframeElement.src = iframeElement.src should cause it to load the iframe.WebView on iOS: WebView on iOS has a bug that prevents iframes from loading if the iframe element was hidden when added to the page. iframeElement.src = iframeElement.src should cause it to load the iframe.
html.elements.iframe.align 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe.allow 📋Chrome7/25/2017 Chrome Android8/1/20177
html.elements.iframe.allow.accelerometer 📋Chrome4/17/2018 Chrome Android4/17/2018
html.elements.iframe.allow.ambient-light-sensor 📋Chrome4/17/2018 Chrome Android4/17/2018
html.elements.iframe.allow.attribution-reporting 📋Chrome9/12/2023 Chrome Android9/12/2023
html.elements.iframe.allow.autoplay 📋Chrome1/23/2018 Chrome Android1/23/2018
html.elements.iframe.allow.bluetooth 📋Chrome8/2/2022 Chrome Android8/2/2022
html.elements.iframe.allow.browsing-topics Chrome7/18/2023 Chrome Android7/21/20233
html.elements.iframe.allow.camera 📋Chrome1/23/2018 Chrome Android1/23/2018
html.elements.iframe.allow.cross-origin-isolated 📋Chrome11/17/2020 Chrome Android11/17/2020
html.elements.iframe.allow.display-capture 📋Chrome9/21/2021 Chrome Android9/21/2021
html.elements.iframe.allow.encrypted-media 📋Chrome1/23/2018 Chrome Android1/23/2018
html.elements.iframe.allow.fullscreen 📋Chrome10/17/2017 Chrome Android10/24/20177
html.elements.iframe.allow.geolocation 📋Chrome1/23/2018 Chrome Android1/23/2018
html.elements.iframe.allow.gyroscope 📋Chrome4/17/2018 Chrome Android4/17/2018
html.elements.iframe.allow.hid 📋Chrome3/2/2021 Chrome Android3/2/2021
html.elements.iframe.allow.identity-credentials-get 📋Chrome2/7/2023 Chrome Android2/7/2023
html.elements.iframe.allow.idle-detection 📋Chrome9/21/2021 Chrome Android9/21/2021
html.elements.iframe.allow.magnetometer 📋Chrome4/17/2018 Chrome Android4/17/2018
html.elements.iframe.allow.microphone 📋Chrome1/23/2018 Chrome Android1/23/2018
html.elements.iframe.allow.midi 📋Chrome1/23/2018 Chrome Android1/23/2018
html.elements.iframe.allow.otp-credentials 📋Chrome Android7/27/2020 Chrome8/31/2021400
html.elements.iframe.allow.payment 📋Chrome7/25/2017 Chrome Android8/1/20177
html.elements.iframe.allow.picture-in-picture 📋Chrome9/4/2018 Chrome Android9/2/20221459
html.elements.iframe.allow.publickey-credentials-get 📋Chrome7/27/2020 Chrome Android7/27/2020
html.elements.iframe.allow.screen-wake-lock 📋Chrome7/27/2020 Chrome Android7/27/2020
html.elements.iframe.allow.serial 📋Chrome3/2/2021 Chrome Android3/2/2021
html.elements.iframe.allow.storage-access 📋Chrome5/2/2023 Chrome Android5/2/2023
html.elements.iframe.allow.usb 📋Chrome7/25/2017 Chrome Android8/1/20177
html.elements.iframe.allow.web-share 📋Chrome10/20/2020 Chrome Android10/20/2020
Firefox: Firefox recognizes the web-share permissions policy, but this has no effect in versions of Firefox that do not support the share() method.Firefox for Android: Firefox for Android recognizes the web-share permissions policy, but this has no effect in versions of Firefox for Android that do not support the share() method.
html.elements.iframe.allow.wildcards Chrome11/29/2022 Chrome Android11/29/2022
html.elements.iframe.allow.window-management 📋Chrome3/29/2022 Chrome Android3/29/2022
html.elements.iframe.allow.xr-spatial-tracking 📋Chrome12/10/2019 Chrome Android12/17/20197
html.elements.iframe.allowfullscreen 📋Chrome10/7/2014 Chrome Android10/8/20141
Safari on iOS: Only available on iPad, not on iPhone.Safari on iOS: Shows an overlay button which can not be disabled. Swiping down exits fullscreen mode, making it unsuitable for some use cases like games.WebView on iOS: Only available on iPad, not on iPhone.WebView on iOS: Shows an overlay button which can not be disabled. Swiping down exits fullscreen mode, making it unsuitable for some use cases like games.
html.elements.iframe.allowpaymentrequest Chrome7/25/2017 Chrome Android8/1/20177
html.elements.iframe.browsingtopics Chrome6/11/2024 Chrome Android6/11/2024
html.elements.iframe.credentialless 📋Chrome2/7/2023 Chrome Android2/7/2023
html.elements.iframe.cross-origin-top-navigation-by-user-activation Chrome7/24/2018 Chrome Android7/24/2018
Chrome: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Chrome Android: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Edge: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Firefox: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Firefox for Android: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Quest Browser: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Opera: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Opera Android: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Safari: If a top-navigation is blocked, no redirect occurs, and an error is reported in the developer console.Safari on iOS: If a top-navigation is blocked, no redirect occurs, and an error is reported in the developer console.Samsung Internet: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.WebView Android: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.WebView on iOS: If a top-navigation is blocked, no redirect occurs, and an error is reported in the developer console.
html.elements.iframe.csp 📋Chrome9/5/2017 Chrome Android9/5/2017
html.elements.iframe.frameborder 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe.height 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe.loading 📋Chrome9/10/2019 Chrome Android9/10/2019
html.elements.iframe.longdesc 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe.marginheight 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe.marginwidth 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe.privateToken 📋Chrome9/12/2023 Chrome Android9/12/2023
html.elements.iframe.referrerpolicy 📋Chrome5/25/2016 Chrome Android6/8/201614
html.elements.iframe.referrerpolicy.no-referrer-when-downgrade Chrome5/25/2016 Chrome Android6/8/201614
html.elements.iframe.referrerpolicy.origin-when-cross-origin Chrome5/25/2016 Chrome Android6/8/201614
html.elements.iframe.referrerpolicy.unsafe-url Chrome5/25/2016 Chrome Android6/8/201614
html.elements.iframe.sandbox 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.iframe.sandbox.allow-downloads 📋Chrome5/19/2020 Chrome Android5/19/2020
html.elements.iframe.sandbox.allow-forms 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.iframe.sandbox.allow-modals 📋Chrome10/13/2015 Chrome Android10/14/20151
html.elements.iframe.sandbox.allow-orientation-lock 📋Chrome7/24/2018 Chrome Android7/24/2018
html.elements.iframe.sandbox.allow-popups 📋Chrome2/8/2012 Chrome Android6/27/2012140
html.elements.iframe.sandbox.allow-popups-to-escape-sandbox 📋Chrome10/13/2015 Chrome Android10/14/20151
html.elements.iframe.sandbox.allow-presentation 📋Chrome8/31/2016 Chrome Android9/7/20167
html.elements.iframe.sandbox.allow-same-origin 📋Chrome5/25/2010 Chrome Android6/27/2012764
Chrome: Chrome 70 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Chrome Android: Chrome Android 70 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Edge: Edge 79 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Quest Browser: Quest Browser 6.0 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Opera: Opera 57 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Opera Android: Opera Android 49 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Safari: Safari blocks script execution without allow-scripts even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Safari on iOS: Safari blocks script execution without allow-scripts even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Samsung Internet: Samsung Internet 10.0 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.WebView Android: WebView Android 70 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.WebView on iOS: Safari blocks script execution without allow-scripts even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.
html.elements.iframe.sandbox.allow-scripts 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.iframe.sandbox.allow-storage-access-by-user-activation Chrome5/2/2023 Chrome Android5/2/2023
html.elements.iframe.sandbox.allow-top-navigation 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.iframe.sandbox.allow-top-navigation-by-user-activation 📋Chrome4/19/2017 Chrome Android4/25/20176
html.elements.iframe.scrolling 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe.src 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.iframe.srcdoc 📋Chrome6/26/2012 Chrome Android2/27/2013246
html.elements.iframe.width 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.align 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.alt 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.aspect_ratio_computed_from_attributes Chrome12/10/2019 Chrome Android12/17/20197
Safari: Safari doesn't preserve space for images without a valid src, which may disrupt layouts that rely on lazy loading (see bug 224197).Safari on iOS: Safari on iOS doesn't preserve space for images without a valid src, which may disrupt layouts that rely on lazy loading (see bug 224197).WebView on iOS: WebView on iOS doesn't preserve space for images without a valid src, which may disrupt layouts that rely on lazy loading (see bug 224197).
html.elements.img.attributionsrc 📋Chrome5/14/2024 Chrome Android5/14/2024
html.elements.img.border 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.crossorigin 📋Chrome8/2/2011 Chrome Android6/27/2012330
html.elements.img.decoding 📋Chrome3/6/2018 Chrome Android3/6/2018
html.elements.img.fetchpriority 📋Chrome4/26/2022 Chrome Android4/26/2022
html.elements.img.height 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.hspace 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.ismap 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.loading 📋Chrome9/10/2019 Chrome Android9/10/2019
html.elements.img.longdesc 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.referrerpolicy 📋Chrome5/25/2016 Chrome Android6/8/201614
html.elements.img.referrerpolicy.no-referrer-when-downgrade Chrome5/25/2016 Chrome Android6/8/201614
html.elements.img.referrerpolicy.origin-when-cross-origin Chrome5/25/2016 Chrome Android6/8/201614
html.elements.img.referrerpolicy.unsafe-url Chrome5/25/2016 Chrome Android6/8/201614
html.elements.img.sizes 📋Chrome10/7/2014 Chrome Android10/8/20141
html.elements.img.sizes.auto 📋Chrome6/11/2024 Chrome Android6/11/2024
html.elements.img.src 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.srcset 📋Chrome Android4/2/2014 Chrome4/8/20146
html.elements.img.usemap 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.usemap.case_sensitive Chrome4/19/2017 Chrome Android4/25/20176
html.elements.img.vspace 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.img.width 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 89, manipulating the content of <input> elements using Document.execCommand() commands requires workarounds (see bug 1220696).Firefox for Android: Before Firefox for Android 89, manipulating the content of <input> elements using Document.execCommand() commands requires workarounds (see bug 1220696).
html.elements.input.accept 📋Chrome12/11/2008 Chrome Android6/27/20121294
Safari on iOS: Does not support audio/* MIME type. See bug 242110.WebView on iOS: Does not support audio/* MIME type. See bug 242110.
html.elements.input.align 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.alt 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.autocomplete 📋Chrome9/16/2011 Chrome Android6/27/2012285
html.elements.input.checked 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.dirname 📋Chrome2/8/2012 Chrome Android6/27/2012140
html.elements.input.disabled 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.form 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.formaction 📋Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.input.formenctype 📋Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.input.formmethod 📋Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.input.formnovalidate 📋Chrome1/25/2010 Chrome Android6/27/2012884
html.elements.input.formtarget 📋Chrome2/3/2011 Chrome Android6/27/2012510
html.elements.input.max 📋Chrome1/25/2010 Chrome Android6/27/2012884
html.elements.input.maxlength 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.min 📋Chrome1/25/2010 Chrome Android6/27/2012884
html.elements.input.minlength 📋Chrome1/21/2015 Chrome Android1/21/2015
html.elements.input.multiple 📋Chrome5/21/2009 Chrome Android6/27/20121133
html.elements.input.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.pattern 📋Chrome1/25/2010 Chrome Android6/27/2012884
html.elements.input.placeholder 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.input.popovertarget 📋Chrome5/30/2023 Chrome Android5/30/2023
html.elements.input.popovertarget.implicit_anchor_reference 📋Chrome2/4/2025 Chrome Android2/4/2025
html.elements.input.popovertargetaction 📋Chrome5/30/2023 Chrome Android5/30/2023
html.elements.input.readonly 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.required 📋Chrome1/25/2010 Chrome Android6/27/2012884
html.elements.input.size 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.src 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.step 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.input.type_button 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.type_checkbox 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.type_color 📋Chrome6/26/2012 Chrome Android2/27/2013246
Firefox for Android: Firefox for Android doesn't allow the user to choose a custom color, only one of the predefined ones.
html.elements.input.type_color.list 📋Chrome6/26/2012 Chrome Android2/26/2014610
html.elements.input.type_date 📋Chrome6/26/2012 Chrome Android2/27/2013246
html.elements.input.type_date.disables_invalid_values_in_picker_ui Chrome6/26/2012 Chrome Android2/27/2013246
html.elements.input.type_date.list 📋Chrome6/26/2012 Chrome Android2/26/2014610
html.elements.input.type_datetime-local 📋Chrome6/26/2012 Chrome Android2/27/2013246
Firefox: Only displays a date picker without a time picker, see bug 1726107 and bug 1726108.Firefox for Android: Only displays a date picker without a time picker, see bug 1726107 and bug 1726108.Safari: Safari only displays a date picker and does not display a time picker.
html.elements.input.type_email 📋Chrome5/25/2010 Chrome Android6/27/2012764
Safari on iOS: Doesn't do validation, but instead offers a custom 'email' keyboard, which is designed to make entering email addresses easier.Safari on iOS: The custom 'email' keyboard does not provide a comma key, so users cannot enter multiple email addresses.Safari on iOS: Automatically applies a default style of opacity: 0.4 to disable textual <input> elements, including those of type 'email'. Other major browsers don't currently share this particular default style.WebView on iOS: Doesn't do validation, but instead offers a custom 'email' keyboard, which is designed to make entering email addresses easier.WebView on iOS: The custom 'email' keyboard does not provide a comma key, so users cannot enter multiple email addresses.WebView on iOS: Automatically applies a default style of opacity: 0.4 to disable textual <input> elements, including those of type 'email'. Other major browsers don't currently share this particular default style.
html.elements.input.type_email.list 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.input.type_file 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: You can set as well as get the value of HTMLInputElement.files in all modern browsers; this was most recently added to Firefox, in version 57 (see bug 1384030).
html.elements.input.type_hidden 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.type_image 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.type_month 📋Chrome6/26/2012 Chrome Android2/27/2013246
Safari: The input type is recognized, but there is no month-specific control. See bug 200416.
html.elements.input.type_number 📋Chrome10/19/2010 Chrome Android6/27/2012617
Chrome: Prevents users from typing non-numeric content.Chrome Android: Prevents users from typing non-numeric content.Firefox: Allows users to type non-numeric content, with the value reflecting an empty string.Firefox for Android: Allows users to type non-numeric content, with the value reflecting an empty string.Quest Browser: Prevents users from typing non-numeric content.Opera: Prevents users from typing non-numeric content.Opera Android: Prevents users from typing non-numeric content.Safari: Allows users to type non-numeric content, with the value reflecting an empty string.Safari on iOS: Allows users to type non-numeric content, with the value reflecting an empty string.Samsung Internet: Prevents users from typing non-numeric content.WebView Android: Prevents users from typing non-numeric content.WebView on iOS: Allows users to type non-numeric content, with the value reflecting an empty string.
html.elements.input.type_number.list 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.input.type_password 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.type_radio 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.type_range 📋Chrome1/25/2010 Chrome Android3/16/20172607
WebView Android: Pre-Chromium Android WebView recognizes the range type, but doesn't implement a range-specific control.
html.elements.input.type_range.labeled_values 📋Chrome10/7/2014 Chrome Android3/16/2017891
html.elements.input.type_range.list 📋Chrome6/26/2012 Chrome Android3/16/20171724
html.elements.input.type_range.tick_marks Chrome5/29/2018 Chrome Android5/31/20182
html.elements.input.type_range.vertical_orientation Chrome4/16/2024 Chrome Android4/16/2024
Chrome: Vertical orientation available via the writing-mode property (see Creating vertical controls).Chrome: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Chrome Android: Vertical orientation available via the writing-mode property (see Creating vertical controls).Chrome Android: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Edge: Vertical orientation available by setting the writing-mode: bt-lr style on the input element.Firefox: Vertical orientation available via the writing-mode property (see Creating vertical controls).Firefox: Supported using the non-standard orient="vertical" attribute.Firefox for Android: Vertical orientation available via the writing-mode property (see Creating vertical controls).Firefox for Android: Supported using the non-standard orient="vertical" attribute.Internet Explorer: Vertical orientation available by setting the writing-mode: bt-lr style on the input element.Quest Browser: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Opera: Vertical orientation available via the writing-mode property (see Creating vertical controls).Opera: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Opera Android: Vertical orientation available via the writing-mode property (see Creating vertical controls).Opera Android: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Safari: Vertical orientation available via the writing-mode property (see Creating vertical controls).Safari: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Safari on iOS: Vertical orientation available via the writing-mode property (see Creating vertical controls).Safari on iOS: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Samsung Internet: Vertical orientation available via the writing-mode property (see Creating vertical controls).Samsung Internet: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.WebView Android: Vertical orientation available via the writing-mode property (see Creating vertical controls).WebView Android: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.WebView on iOS: Vertical orientation available via the writing-mode property (see Creating vertical controls).WebView on iOS: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.
html.elements.input.type_reset 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Unlike other browsers, Firefox by default persists the dynamic disabled state of a <button> across page loads. Use the autocomplete attribute to control this feature.Firefox for Android: Unlike other browsers, Firefox for Android by default persists the dynamic disabled state of a <button> across page loads. Use the autocomplete attribute to control this feature.
html.elements.input.type_search 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.input.type_search.list 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.input.type_submit 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Unlike other browsers, Firefox by default persists the dynamic disabled state of a <button> across page loads. Use the autocomplete attribute to control this feature.Firefox for Android: Unlike other browsers, Firefox for Android by default persists the dynamic disabled state of a <button> across page loads. Use the autocomplete attribute to control this feature.
html.elements.input.type_tel 📋Chrome9/15/2009 Chrome Android6/27/20121016
Chrome: The field type doesn't demonstrate any special behavior.Safari: The field type doesn't demonstrate any special behavior.
html.elements.input.type_tel.list 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.input.type_text 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.type_text.list 📋Chrome6/26/2012 Chrome Android2/26/2014610
html.elements.input.type_time 📋Chrome6/26/2012 Chrome Android2/27/2013246
html.elements.input.type_time.list 📋Chrome6/26/2012 Chrome Android2/26/2014610
html.elements.input.type_url 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.type_url.list 📋Chrome9/25/2012 Chrome Android2/26/2014519
html.elements.input.type_week 📋Chrome6/26/2012 Chrome Android2/27/2013246
html.elements.input.usemap 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.input.webkitdirectory Chrome10/19/2010 Chrome Android1/14/20255201
Chrome Android: In Chrome for Android 131, choosing a directory crashes the browser (see bug 376834374).Chrome Android: Before version 131, users cannot choose a directory, only individual files (see bug 40248532.Safari on iOS: Before version 18.4, the attribute can be set but users cannot choose a directory, only individual files (see bug 271705).WebView Android: In Chrome for Android 131, choosing a directory crashes the browser (see bug 376834374).WebView Android: Before version 131, users cannot choose a directory, only individual files (see bug 40248532.WebView on iOS: Before version 18.4, the attribute can be set but users cannot choose a directory, only individual files (see bug 271705).
html.elements.ins 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.ins.cite Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.ins.datetime Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.kbd 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, creating a <kbd> element incorrectly resulted in an HTMLSpanElement object, instead of the expected HTMLElement.
html.elements.label 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.label.for 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.legend 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.legend.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.li 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.li.type 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.li.value 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.link 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.link.as 📋Chrome4/13/2016 Chrome Android4/13/2016
html.elements.link.blocking 📋Chrome9/2/2022 Chrome Android9/2/2022
html.elements.link.charset 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.link.crossorigin 📋Chrome Android4/2/2014 Chrome4/8/20146
Firefox: Before Firefox 83, crossorigin is not supported for rel="icon".Firefox for Android: Before Firefox for Android 83, crossorigin is not supported for rel="icon".
html.elements.link.disabled 📋Chrome12/11/2008 Chrome Android6/27/20121294
Chrome: In Chrome and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Chrome Android: In Chrome Android and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Edge: Since Edge 79, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Quest Browser: In Quest Browser and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Opera: In Chrome and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Opera Android: In Chrome and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Samsung Internet: In Samsung Internet and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.WebView Android: In WebView Android and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.
html.elements.link.fetchpriority 📋Chrome4/26/2022 Chrome Android4/26/2022
html.elements.link.href 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.link.hreflang 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.link.imagesizes 📋Chrome3/12/2019 Chrome Android3/12/2019
html.elements.link.imagesrcset 📋Chrome3/12/2019 Chrome Android3/12/2019
html.elements.link.integrity 📋Chrome9/1/2015 Chrome Android9/1/2015
html.elements.link.media 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.link.referrerpolicy 📋Chrome5/25/2016 Chrome Android6/8/201614
html.elements.link.referrerpolicy.no-referrer-when-downgrade Chrome5/25/2016 Chrome Android6/8/201614
html.elements.link.referrerpolicy.origin-when-cross-origin Chrome5/25/2016 Chrome Android6/8/201614
html.elements.link.referrerpolicy.unsafe-url Chrome5/25/2016 Chrome Android6/8/201614
html.elements.link.rel 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.link.rel.compression-dictionary 📋Chrome10/15/2024 Chrome Android10/15/2024
html.elements.link.rel.dns-prefetch 📋Chrome10/13/2015 Chrome Android10/14/20151
Firefox: Only HTTP pages were supported.Firefox for Android: Only HTTP pages were supported.
html.elements.link.rel.expect 📋Chrome4/16/2024 Chrome Android4/16/2024
html.elements.link.rel.icon Chrome1/25/2010 Chrome Android6/27/2012884
Chrome: If both ICO and PNG are available, will use ICO over PNG if ICO has better matching sizes set. (Per caniuse.com.).Edge: In version 79 and later (Blink-based Edge), if both ICO and PNG are available, will use ICO over PNG if ICO has better matching sizes set. (Per caniuse.com.)Firefox: Before Firefox 83, the crossorigin attribute is not supported for rel="icon".Firefox: The media attribute is not supported for rel="icon", see bug 1603885.Opera: In version 15 and later (Blink-based Opera), if both ICO and PNG are available, will use ICO over PNG if ICO has better matching sizes set. (Per caniuse.com.)Safari: If both ICO and PNG are available, will ALWAYS use ICO file, regardless of sizes set. (Per caniuse.com.)Safari on iOS: Does not use favicons at all (but may have alternative for bookmarks, etc.). (Per caniuse.com.)WebView on iOS: Does not use favicons at all (but may have alternative for bookmarks, etc.). (Per caniuse.com.)
html.elements.link.rel.manifest 📋Chrome Android11/12/2014 Chrome11/18/20146
html.elements.link.rel.modulepreload 📋Chrome4/17/2018 Chrome Android4/17/2018
html.elements.link.rel.modulepreload.as-json 📋Chrome4/7/2026 Chrome Android4/7/2026
html.elements.link.rel.modulepreload.as-script 📋Chrome4/17/2018 Chrome Android4/17/2018
html.elements.link.rel.modulepreload.as-style 📋Chrome4/7/2026 Chrome Android4/7/2026
html.elements.link.rel.preconnect 📋Chrome10/13/2015 Chrome Android10/14/20151
Firefox: Before Firefox 41, it doesn't obey the crossorigin attribute.Firefox for Android: Before Firefox for Android 41, it doesn't obey the crossorigin attribute.
html.elements.link.rel.prefetch 📋Chrome12/2/2010 Chrome Android6/27/2012573
Chrome: Requires secure contextChrome Android: Requires secure contextEdge: Requires secure contextFirefox: Requires secure contextFirefox for Android: Requires secure contextQuest Browser: Requires secure contextOpera: Requires secure contextOpera Android: Requires secure contextSamsung Internet: Requires secure contextWebView Android: Requires secure context
html.elements.link.rel.preload 📋Chrome4/13/2016 Chrome Android4/13/2016
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-fetch Chrome4/13/2016 Chrome Android4/13/2016
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-font Chrome4/13/2016 Chrome Android4/13/2016
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-image Chrome4/13/2016 Chrome Android4/13/2016
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-script Chrome4/13/2016 Chrome Android4/13/2016
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-style Chrome4/13/2016 Chrome Android4/13/2016
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-track Chrome4/13/2016 Chrome Android4/13/2016
html.elements.link.rel.prerender Chrome Android12/5/2017 Chrome12/6/20171
Chrome: Does not trigger prerendering. Triggers NoState Prefetch instead. See blog post.Chrome Android: Does not trigger prerendering. Triggers NoState Prefetch instead. See blog post.Edge: Does not trigger prerendering. Triggers NoState Prefetch instead. See blog post.Quest Browser: Does not trigger prerendering. Triggers NoState Prefetch instead. See blog post.Opera: Does not trigger prerendering. Triggers NoState Prefetch instead. See blog post.Opera Android: Does not trigger prerendering. Triggers NoState Prefetch instead. See blog post.WebView Android: Does not trigger prerendering. Triggers NoState Prefetch instead. See blog post.
html.elements.link.rev 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.link.sizes 📋Chrome10/25/2011 Chrome Android6/27/2012246
html.elements.link.target 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.link.type 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.main 📋Chrome3/26/2013 Chrome Android4/3/20138
html.elements.map 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 5, in Quirks Mode, empty maps were no longer skipped over in favor of non-empty ones when matching.Firefox: Before Firefox 17, the default styling of the <map> HTML element was display: block;. This is now display: inline; and matches the behavior of the other browsers. It was already the case in Quirks Mode.
html.elements.map.name Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.mark 📋Chrome10/19/2010 Chrome Android6/27/2012617
html.elements.marquee 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Implements the HTMLDivElement interface.Firefox for Android: Implements the HTMLDivElement interface.
html.elements.marquee.behavior Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.bgcolor Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.direction Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.height Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.hspace Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.loop Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.scrollamount Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.scrolldelay Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.truespeed Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.vspace Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.marquee.width Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.menu 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.meta 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.meta.charset 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.meta.content 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.meta.http-equiv 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.meta.http-equiv.content-language 📋Chrome6/5/2017 Chrome Android6/6/20171
html.elements.meta.http-equiv.content-security-policy 📋Chrome6/5/2017 Chrome Android6/6/20171
html.elements.meta.http-equiv.content-type 📋Chrome6/5/2017 Chrome Android6/6/20171
html.elements.meta.http-equiv.refresh 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.meta.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.meta.name.application-title Chrome3/4/2025 Chrome Android3/4/2025
html.elements.meta.name.color-scheme 📋Chrome4/7/2020 Chrome Android4/7/2020
html.elements.meta.name.referrer 📋Chrome2/8/2012 Chrome Android6/27/2012140
Chrome: Until Chrome 46, content values weren't constrained to the values listed in the spec.Chrome Android: Until Chrome Android 46, content values weren't constrained to the values listed in the spec.Firefox: The referrer value wasn't taken into account when navigation was happening via the context menu or middle click until Firefox 39.Firefox for Android: The referrer value wasn't taken into account when navigation was happening via the context menu or middle click until Firefox for Android 39.Internet Explorer: Browsers initially supported an early draft of the specification which can only use a meta tag and is only compatible with the origin value from the new spec.Quest Browser: Until Quest Browser 5.0, content values weren't constrained to the values listed in the spec.Opera: Until Opera 33, content values weren't constrained to the values listed in the spec.Opera Android: Until Opera Android 33, content values weren't constrained to the values listed in the spec.Samsung Internet: Until Samsung Internet 5.0, content values weren't constrained to the values listed in the spec.WebView Android: Until WebView Android 46, content values weren't constrained to the values listed in the spec.
html.elements.meta.name.theme-color 📋Chrome3/12/2019 Chrome Android7/20/2021861
Chrome: Chrome uses the color only on installed progressive web apps.Chrome: Chrome reports support, but does not actually use the color anywhere.Chrome Android: Chrome for Android does not use the color on devices with native dark mode enabled unless it's an installed progressive web app or a trusted web activity.Edge: Edge uses the color only on installed progressive web apps.Quest Browser: Chrome for Android does not use the color on devices with native dark mode enabled unless it's an installed progressive web app or a trusted web activity.
html.elements.meta.scheme 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.meter 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.meter.high 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.meter.low 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.meter.max 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.meter.min 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.meter.optimum 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.meter.value 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.nav 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.nobr 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.noembed 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.noframes 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.noscript 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.archive 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.border 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.classid 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.codetype 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.data 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.declare 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.form 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.height 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.standby 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.type 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.usemap 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.object.width 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.ol 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.ol.compact Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.ol.reversed 📋Chrome3/28/2012 Chrome Android6/27/201291
html.elements.ol.start 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.ol.type 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.optgroup 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.optgroup.disabled 📋Chrome12/11/2008 Chrome Android6/27/20121294
Safari: Before Safari 7, the attribute can be set, but has no effect.Safari on iOS: The attribute can be set, but has no effect.WebView on iOS: The attribute can be set, but has no effect.
html.elements.optgroup.label 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.option 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.option.disabled 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.option.label 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before 77, Firefox didn't display the value of the label attribute as option text if element's content was empty. See bug 40545.Firefox: Historically, Firefox has allowed keyboard and mouse events to bubble up from the <option> element to the parent <select> element, although this behavior is inconsistent across many browsers. For better Web compatibility (and for technical reasons), they will not bubble up when Firefox is in multi-process mode and the <select> element is displayed as a drop-down list. The behavior is unchanged if the <select> is presented inline and it has either the multiple attribute defined or a size attribute set to more than 1. Rather than watching <option> elements for events, you should watch for change events on <select>. See bug 1090602 for details.Firefox: When Mozilla introduced dedicated content threads to Firefox (through the Electrolysis, or e10s, project), support for styling <option> elements was removed temporarily. Starting in Firefox 54, you can apply foreground and background colors to <option> elements again, using the color and background-color CSS properties. See bug 910022 for more information. Note that this is still disabled in Linux due to lack of contrast (see bug 1338283 for progress on this).Firefox for Android: Before 77, Firefox didn't display the value of the label attribute as option text if element's content was empty. See bug 40545.
html.elements.option.selected 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.option.value 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.output 📋Chrome3/8/2011 Chrome Android6/27/2012477
html.elements.output.for 📋Chrome3/8/2011 Chrome Android6/27/2012477
html.elements.output.form 📋Chrome3/8/2011 Chrome Android6/27/2012477
html.elements.output.name 📋Chrome3/8/2011 Chrome Android6/27/2012477
html.elements.p 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.param 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.param.name Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.param.type Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.param.value Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.param.valuetype Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.picture 📋Chrome10/7/2014 Chrome Android10/8/20141
html.elements.plaintext 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.pre 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.pre.width Chrome12/11/2008 Chrome Android6/27/20121294
Chrome: Specifying the width attribute has no layout effect.Chrome Android: Specifying the width attribute has no layout effect.Edge: Specifying the width attribute has no layout effect.Firefox: Since Firefox 29, specifying the width attribute has no layout effect.Firefox for Android: Since Firefox for Android 29, specifying the width attribute has no layout effect.Internet Explorer: Specifying the width attribute has no layout effect.Quest Browser: Specifying the width attribute has no layout effect.Opera: Specifying the width attribute has no layout effect.Opera Android: Specifying the width attribute has no layout effect.Safari: Specifying the width attribute has no layout effect.Safari on iOS: Specifying the width attribute has no layout effect.Samsung Internet: Specifying the width attribute has no layout effect.WebView Android: Specifying the width attribute has no layout effect.WebView on iOS: Specifying the width attribute has no layout effect.
html.elements.progress 📋Chrome9/2/2010 Chrome Android6/27/2012664
Firefox: Before Firefox 14, the <progress> element was incorrectly classified as a form element, and therefore had a form attribute. This has been fixed.Firefox: Firefox provides the ::-moz-progress-bar pseudo-element, which lets you style the part of the interior of the progress bar representing the amount of work completed so far.Firefox for Android: Before Firefox for Android 14, the <progress> element was incorrectly classified as a form element, and therefore had a form attribute. This has been fixed.Firefox for Android: Firefox for Android provides the ::-moz-progress-bar pseudo-element, which lets you style the part of the interior of the progress bar representing the amount of work completed so far.Safari on iOS: Safari on iOS does not support indeterminate progress bars (they are rendered like 0%-completed progress bars).WebView on iOS: WebView on iOS does not support indeterminate progress bars (they are rendered like 0%-completed progress bars).
html.elements.progress.max 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.progress.value 📋Chrome9/2/2010 Chrome Android6/27/2012664
html.elements.q 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.q.cite 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.rb 📋Chrome5/25/2010 Chrome Android6/27/2012764
Chrome: Blink has support for parsing the rb element, but not for rendering rb content as expected.Chrome Android: Blink has support for parsing the rb element, but not for rendering rb content as expected.Edge: Blink has support for parsing the rb element, but not for rendering rb content as expected.Quest Browser: Blink has support for parsing the rb element, but not for rendering rb content as expected.Opera: Blink has support for parsing the rb element, but not for rendering rb content as expected.Opera Android: Blink has support for parsing the rb element, but not for rendering rb content as expected.Safari: Safari has support for parsing the rb element, but not for rendering rb content as expected.Safari on iOS: Safari on iOS has support for parsing the rb element, but not for rendering rb content as expected.Samsung Internet: Blink has support for parsing the rb element, but not for rendering rb content as expected.WebView Android: Blink has support for parsing the rb element, but not for rendering rb content as expected.WebView on iOS: WebView on iOS has support for parsing the rb element, but not for rendering rb content as expected.
html.elements.rp 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.rt 📋Chrome5/25/2010 Chrome Android6/27/2012764
Chrome: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Chrome Android: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Quest Browser: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Opera: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Opera Android: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Safari: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 265316.Safari on iOS: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 265316.Samsung Internet: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.WebView Android: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.WebView on iOS: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 265316.
html.elements.rtc 📋Chrome12/1/2015 Chrome Android12/2/20151
html.elements.ruby 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.s 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.samp 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.script 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Starting in Firefox 4, inserting <script> elements that have been created by calling document.createElement("script") no longer enforces execution in insertion order. This change lets Firefox properly abide by the specification. To make script-inserted external scripts execute in their insertion order, set .async=false on them.
html.elements.script.async 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.script.attributionsrc 📋Chrome5/14/2024 Chrome Android5/14/2024
html.elements.script.blocking 📋Chrome9/2/2022 Chrome Android9/2/2022
html.elements.script.crossorigin 📋Chrome5/15/2012 Chrome Android2/27/2013288
Safari: The crossorigin attribute was implemented in WebKit in WebKit bug 81438.Safari on iOS: The crossorigin attribute was implemented in WebKit in WebKit bug 81438.WebView on iOS: The crossorigin attribute was implemented in WebKit in WebKit bug 81438.
html.elements.script.defer 📋Chrome12/11/2008 Chrome Android6/27/20121294
Chrome: Chrome does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Chrome Android: Chrome Android does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Firefox: Since Firefox 3.6, the defer attribute is ignored on scripts that don't have the src attribute. However, in Firefox 3.5 even inline scripts are deferred if the defer attribute is set.Internet Explorer: Before version 10, Internet Explorer implemented defer by a proprietary specification. Since version 10 it conforms to the W3C specification.Quest Browser: Quest Browser does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Opera: Opera does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Opera Android: Opera Android does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Samsung Internet: Samsung Internet does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348WebView Android: WebView Android does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348
html.elements.script.fetchpriority 📋Chrome4/26/2022 Chrome Android4/26/2022
html.elements.script.integrity 📋Chrome9/1/2015 Chrome Android9/1/2015
html.elements.script.nomodule 📋Chrome9/5/2017 Chrome Android9/5/2017
html.elements.script.referrerpolicy 📋Chrome10/16/2018 Chrome Android10/17/20181
html.elements.script.referrerpolicy.no-referrer-when-downgrade Chrome10/16/2018 Chrome Android10/17/20181
html.elements.script.referrerpolicy.origin-when-cross-origin Chrome10/16/2018 Chrome Android10/17/20181
html.elements.script.referrerpolicy.unsafe-url Chrome10/16/2018 Chrome Android10/17/20181
html.elements.script.src 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.script.type 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.script.type.importmap 📋Chrome3/2/2021 Chrome Android3/2/2021
html.elements.script.type.importmap.integrity 📋Chrome7/23/2024 Chrome Android7/23/2024
html.elements.script.type.importmap.multiple_import_maps 📋Chrome2/4/2025 Chrome Android2/4/2025
html.elements.script.type.module Chrome9/5/2017 Chrome Android9/5/2017
Chrome: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Chrome Android: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Edge: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Quest Browser: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Opera: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Opera Android: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Safari: Module scripts do not load when the page is served as XHTML (application/xhtml+xml).Safari on iOS: Module scripts do not load when the page is served as XHTML (application/xhtml+xml).Samsung Internet: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.WebView Android: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.WebView on iOS: Module scripts do not load when the page is served as XHTML (application/xhtml+xml).
html.elements.script.type.speculationrules 📋Chrome1/10/2023 Chrome Android1/10/2023
Chrome: Initial support included same-origin prerendering only.Chrome Android: Initial support included same-origin prerendering only.Edge: Initial support included same-origin prerendering only.Quest Browser: Initial support included same-origin prerendering only.Opera: Initial support included same-origin prerendering only.Opera Android: Initial support included same-origin prerendering only.Samsung Internet: Initial support included same-origin prerendering only.WebView Android: Initial support included same-origin prerendering only.
html.elements.script.type.speculationrules.eagerness 📋Chrome1/23/2024 Chrome Android1/23/2024
Safari: Only conservative is supported for document rules (though moderate automatically falls back to conservative). Only eager and immediate is supported for list rules.Safari on iOS: Only conservative is supported for document rules (though moderate automatically falls back to conservative). Only eager and immediate is supported for list rules.
html.elements.script.type.speculationrules.expects_no_vary_search 📋Chrome7/23/2024 Chrome Android7/23/2024
Chrome: Supported for prefetch only.Chrome Android: Supported for prefetch only.Edge: Supported for prefetch only.Opera: Supported for prefetch only.Opera Android: Supported for prefetch only.Samsung Internet: Supported for prefetch only.WebView Android: Supported for prefetch only.
html.elements.script.type.speculationrules.prefetch 📋Chrome Android6/21/2022 Chrome2/7/2023231
html.elements.script.type.speculationrules.prerender 📋Chrome Android6/21/2022 Chrome9/2/202273
html.elements.script.type.speculationrules.referrer_policy 📋Chrome3/7/2023 Chrome Android3/7/2023
html.elements.script.type.speculationrules.relative_to 📋Chrome1/23/2024 Chrome Android1/23/2024
html.elements.script.type.speculationrules.requires 📋Chrome Android6/21/2022 Chrome2/7/2023231
html.elements.script.type.speculationrules.requires.anonymous-client-ip-when-cross-origin 📋Chrome Android6/21/2022 Chrome2/7/2023231
html.elements.script.type.speculationrules.source_optional 📋Chrome2/20/2024 Chrome Android2/20/2024
html.elements.script.type.speculationrules.tag 📋Chrome4/29/2025 Chrome Android4/29/2025
html.elements.script.type.speculationrules.target_hint 📋Chrome6/24/2025 Chrome Android6/24/2025
Chrome: Only "_blank" and "_self" are supported and only for prefetch.Chrome Android: Only "_blank" and "_self" are supported and only for prefetch.Edge: Only "_blank" and "_self" are supported and only for prefetch.Opera: Only "_blank" and "_self" are supported and only for prefetch.Opera Android: Only "_blank" and "_self" are supported and only for prefetch.WebView Android: Only "_blank" and "_self" are supported and only for prefetch.
html.elements.script.type.speculationrules.urls 📋Chrome Android6/21/2022 Chrome1/10/2023203
html.elements.script.type.speculationrules.where 📋Chrome1/23/2024 Chrome Android1/23/2024
html.elements.search 📋Chrome10/10/2023 Chrome Android10/10/2023
html.elements.section 📋Chrome5/25/2010 Chrome Android6/27/2012764
html.elements.select 📋Chrome12/11/2008 Chrome Android6/27/20121294
Chrome: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Chrome Android: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Firefox: Historically, Firefox has allowed keyboard and mouse events to bubble up from the <option> element to the parent <select> element, although this behavior is inconsistent across many browsers. For better Web compatibility (and for technical reasons), when Firefox is in multi-process mode the <select> element is displayed as a drop-down list. The behavior is unchanged if the <select> is presented inline and it has either the multiple attribute defined or a size attribute set to more than 1. Rather than watching <option> elements for events, you should watch for change events on <select>. See bug 1090602 for details.Firefox for Android: Firefox for Android, by default, sets a background-image gradient on all <select multiple> elements. This can be disabled using background-image: none.Quest Browser: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Safari: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Safari on iOS: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Samsung Internet: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.WebView Android: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.WebView on iOS: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.
html.elements.select.autocomplete 📋Chrome4/17/2018 Chrome Android4/17/2018
html.elements.select.disabled 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.select.form 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.select.multiple 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.select.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.select.required 📋Chrome3/8/2011 Chrome Android6/27/2012477
html.elements.selectedcontent 📋Chrome4/1/2025 Chrome Android4/1/2025
html.elements.slot 📋Chrome8/31/2016 Chrome Android9/7/20167
html.elements.slot.name Chrome8/31/2016 Chrome Android9/7/20167
html.elements.small 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.source 📋Chrome9/15/2009 Chrome Android6/27/20121016
Firefox: Until Firefox 15, Firefox picked the first source element that has a type matching the MIME-type of a supported media format; see bug 449363 for details.Firefox for Android: Until Firefox for Android 15, Firefox for Android picked the first source element that has a type matching the MIME-type of a supported media format; see bug 449363 for details.
html.elements.source.height 📋Chrome4/13/2021 Chrome Android4/13/2021
html.elements.source.media 📋Chrome9/15/2009 Chrome Android6/27/20121016
Firefox: media is supported in <source> within <picture>, <audio>, and <video>. In Firefox 53-119, media is supported only in <source> within <picture>.Firefox for Android: media is supported in <source> within <picture>, <audio>, and <video>. In Firefox for Android 53-119, media is supported only in <source> within <picture>.
html.elements.source.sizes 📋Chrome10/7/2014 Chrome Android10/8/20141
Chrome: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Chrome Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Opera: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Opera Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Samsung Internet: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).WebView Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).
html.elements.source.src 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.source.srcset 📋Chrome10/7/2014 Chrome Android10/8/20141
Chrome: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Chrome Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Opera: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Opera Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Samsung Internet: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).WebView Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).
html.elements.source.type 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.source.width 📋Chrome4/13/2021 Chrome Android4/13/2021
html.elements.span 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.strike 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.Firefox for Android: Before Firefox for Android 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.strong 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, creating a <strong> element incorrectly resulted in an HTMLSpanElement object, instead of the expected HTMLElement.
html.elements.style 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.style.blocking 📋Chrome9/2/2022 Chrome Android9/2/2022
html.elements.style.media 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.style.type 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before 75, Firefox accepted any CSS media (MIME) type, with optional parameters. Starting in 75, this has been restricted to the string 'text/css', per the spec.
html.elements.sub 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.summary 📋Chrome6/7/2011 Chrome Android6/27/2012386
html.elements.summary.display_list_item Chrome3/2/2021 Chrome Android3/2/2021
html.elements.sup 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table.bgcolor Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table.border Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table.cellpadding Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table.cellspacing Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table.frame Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table.rules Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table.summary Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.table.width Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tbody 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tbody.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tbody.bgcolor Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tbody.valign Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.abbr Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.axis Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.bgcolor Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.colspan Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.headers Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.rowspan Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.rowspan.rowspan_zero Chrome3/6/2018 Chrome Android3/6/2018
html.elements.td.scope Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.valign Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.td.width Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.template 📋Chrome3/26/2013 Chrome Android4/3/20138
html.elements.template.shadowrootclonable 📋Chrome4/16/2024 Chrome Android4/16/2024
html.elements.template.shadowrootdelegatesfocus 📋Chrome3/19/2024 Chrome Android3/19/2024
html.elements.template.shadowrootmode 📋Chrome3/7/2023 Chrome Android3/7/2023
html.elements.template.shadowrootreferencetarget Chrome2/4/2025 Chrome Android2/4/2025
html.elements.template.shadowrootserializable 📋Chrome5/14/2024 Chrome Android5/14/2024
html.elements.textarea 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 6, when a <textarea> was focused, the insertion point was placed at the end of the text by default. Other major browsers place the insertion point at the beginning of the text.Firefox: A default background-image gradient is applied to all <textarea> elements, which can be disabled using background-image: none.Firefox: Before Firefox 89, manipulating the content of <textarea> elements using Document.execCommand() commands requires workarounds (see bug 1220696).Firefox for Android: Before Firefox for Android 6, when a <textarea> was focused, the insertion point was placed at the end of the text by default. Other major browsers place the insertion point at the beginning of the text.Firefox for Android: A default background-image gradient is applied to all <textarea> elements, which can be disabled using background-image: none.Firefox for Android: Before Firefox for Android 89, manipulating the content of <textarea> elements using Document.execCommand() commands requires workarounds (see bug 1220696).Safari on iOS: Unlike other major browsers, a default style of opacity: 0.4 is applied to disabled <textarea> elements.WebView on iOS: Unlike other major browsers, a default style of opacity: 0.4 is applied to disabled <textarea> elements.
html.elements.textarea.autocomplete 📋Chrome4/17/2018 Chrome Android4/17/2018
html.elements.textarea.autocomplete.one-time-code Chrome Android7/27/2020 Chrome8/31/2021400
html.elements.textarea.autocomplete.webauthn 📋Chrome11/29/2022 Chrome Android11/29/2022
html.elements.textarea.cols 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.textarea.dirname 📋Chrome2/8/2012 Chrome Android6/27/2012140
html.elements.textarea.disabled 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.textarea.form 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.textarea.maxlength 📋Chrome1/25/2010 Chrome Android6/27/2012884
Safari: Before Safari 17, newline characters counted as two characters instead of one. See bug 249916.Safari on iOS: Before Safari on iOS 17, newline characters counted as two characters instead of one. See bug 249916.WebView on iOS: Before WebView on iOS 17, newline characters counted as two characters instead of one. See bug 249916.
html.elements.textarea.minlength 📋Chrome1/21/2015 Chrome Android1/21/2015
html.elements.textarea.name 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.textarea.placeholder 📋Chrome1/25/2010 Chrome Android6/27/2012884
html.elements.textarea.placeholder.line_breaks Chrome7/16/2014 Chrome Android7/16/2014
html.elements.textarea.readonly 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.textarea.required 📋Chrome1/25/2010 Chrome Android6/27/2012884
html.elements.textarea.rows 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.textarea.wrap 📋Chrome12/13/2011 Chrome Android6/27/2012197
html.elements.textarea.wrap.hard Chrome12/13/2011 Chrome Android6/27/2012197
html.elements.tfoot 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tfoot.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tfoot.bgcolor Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tfoot.valign Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.abbr Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.axis Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.bgcolor Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.colspan Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.headers Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.rowspan Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.scope Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.valign Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.th.width Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.thead 📋Chrome12/11/2008 Chrome Android6/27/20121294
Safari: Backgrounds applied to <thead> elements will be applied to each table cell, rather than the entire header. To mimic the behavior of other browsers, set the background-attachment CSS property to fixed.Safari on iOS: Backgrounds applied to <thead> elements will be applied to each table cell, rather than the entire header. To mimic the behavior of other browsers, set the background-attachment CSS property to fixed.WebView on iOS: Backgrounds applied to <thead> elements will be applied to each table cell, rather than the entire header. To mimic the behavior of other browsers, set the background-attachment CSS property to fixed.
html.elements.thead.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.thead.bgcolor Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.thead.valign Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.time 📋Chrome10/17/2017 Chrome Android10/24/20177
html.elements.time.datetime Chrome10/17/2017 Chrome Android10/24/20177
html.elements.title 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tr 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tr.align Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tr.bgcolor Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.tr.valign Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.track 📋Chrome11/6/2012 Chrome Android2/27/2013113
Chrome Android: Doesn't work for fullscreen video.Quest Browser: Doesn't work for fullscreen video.Samsung Internet: Doesn't work for fullscreen video.WebView Android: Doesn't work for fullscreen video.
html.elements.track.default 📋Chrome11/6/2012 Chrome Android2/27/2013113
html.elements.track.kind 📋Chrome11/6/2012 Chrome Android2/27/2013113
html.elements.track.label 📋Chrome11/6/2012 Chrome Android2/27/2013113
html.elements.track.src 📋Chrome11/6/2012 Chrome Android2/27/2013113
Firefox: Before Firefox 50, setting the src didn't work, though it didn't raise an error.Firefox for Android: Before Firefox for Android 50, setting the src didn't work, though it didn't raise an error.
html.elements.track.srclang 📋Chrome11/6/2012 Chrome Android2/27/2013113
html.elements.tt 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.Firefox for Android: Before Firefox for Android 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.u 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.ul 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.ul.compact 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.ul.type 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.var 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.video 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.video.aspect_ratio_computed_from_attributes Chrome12/10/2019 Chrome Android12/17/20197
html.elements.video.autoplay 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.video.autoplay.requires_muted_audio Chrome5/29/2018 Chrome Android5/31/20182
Firefox for Android: Between versions 79 and 91, the default behavior was to block videos from autoplaying, regardless of whether audio was muted.
html.elements.video.controls 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.video.controlslist 📋Chrome4/19/2017 Chrome Android4/25/20176
html.elements.video.crossorigin 📋Chrome2/20/2014 Chrome Android2/26/20146
Firefox: With crossorigin="use-credentials", cookies aren't sent during seek. See bug 1532722.Firefox for Android: With crossorigin="use-credentials", cookies aren't sent during seek. See bug 1532722.
html.elements.video.disablepictureinpicture 📋Chrome9/4/2018 Chrome Android9/2/20221459
Firefox: When this attribute is set, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.Firefox: When this attribute is set, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.Firefox for Android: When this attribute is set, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.Firefox for Android: When this attribute is set, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.
html.elements.video.disableremoteplayback 📋Chrome Android2/1/2017 Chrome1/23/20242547
html.elements.video.height 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.video.loop 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.video.muted 📋Chrome10/1/2013 Chrome Android10/2/20131
html.elements.video.playsinline 📋Chrome6/4/2019 Chrome Android6/4/2019
html.elements.video.poster 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.video.preload 📋Chrome9/15/2009 Chrome Android6/27/20121016
Chrome: Defaults to metadata in Chrome 64.Chrome Android: Defaults to metadata in Chrome Android 64.Quest Browser: Defaults to metadata in Quest Browser 5.0.Opera: Defaults to metadata in Opera 51.Opera Android: Defaults to metadata in Opera Android 47.Samsung Internet: Defaults to metadata in Samsung Internet 9.0.WebView Android: Defaults to metadata in WebView Android 64.
html.elements.video.src 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.video.width 📋Chrome9/15/2009 Chrome Android6/27/20121016
html.elements.wbr 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.elements.xmp 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.Firefox for Android: Before Firefox for Android 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.global_attributes.accesskey 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.global_attributes.autocapitalize 📋Chrome5/19/2015 Chrome Android5/27/20158
html.global_attributes.autofocus 📋Chrome12/10/2019 Chrome Android12/17/20197
Chrome: Supported for the <button>, <input>, <select>, and <textarea> elements.Chrome Android: Supported for the <button>, <input>, <select>, and <textarea> elements.Edge: Supported for the <button>, <input>, <select>, and <textarea> elements.Firefox: Supported for the <button>, <input>, <select>, and <textarea> elements.Firefox for Android: Supported for the <button>, <input>, <select>, and <textarea> elements.Internet Explorer: Supported for the <button>, <input>, <select>, and <textarea> elements.Quest Browser: Supported for the <button>, <input>, <select>, and <textarea> elements.Opera: Supported for the <button>, <input>, <select>, and <textarea> elements.Opera Android: Supported for the <button>, <input>, <select>, and <textarea> elements.Safari: Supported for the <button>, <input>, <select>, and <textarea> elements.Safari on iOS: If there's no hardware keyboard connected, then the autofocus attribute has no effect (for example, the focus event doesn't fire and the element does not match the :focus selector).Samsung Internet: Supported for the <button>, <input>, <select>, and <textarea> elements.WebView Android: Supported for the <button>, <input>, <select>, and <textarea> elements.WebView on iOS: If there's no hardware keyboard connected, then the autofocus attribute has no effect (for example, the focus event doesn't fire and the element does not match the :focus selector).
html.global_attributes.class 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.global_attributes.contenteditable 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.global_attributes.contenteditable.plaintext-only Chrome5/25/2016 Chrome Android6/8/201614
html.global_attributes.data_attributes 📋Chrome10/19/2010 Chrome Android6/27/2012617
html.global_attributes.dir 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.global_attributes.draggable 📋Chrome1/25/2010 Chrome Android6/27/2012884
html.global_attributes.enterkeyhint 📋Chrome9/10/2019 Chrome Android9/10/2019
html.global_attributes.exportparts 📋Chrome3/12/2019 Chrome Android3/12/2019
html.global_attributes.hidden 📋Chrome3/8/2011 Chrome Android6/27/2012477
Safari: This attribute has no effect on <option> elements.Safari on iOS: This attribute has no effect on <option> elements.WebView on iOS: This attribute has no effect on <option> elements.
html.global_attributes.hidden.until-found 📋Chrome5/24/2022 Chrome Android5/24/2022
Firefox: The browser does not correctly scroll to the matching text. See bug 2006040.Firefox for Android: The browser does not correctly scroll to the matching text. See bug 2006040.Safari: The browser does not correctly scroll to the matching text. See bug 304174.Safari on iOS: The browser does not correctly scroll to the matching text. See bug 304174.WebView on iOS: The browser does not correctly scroll to the matching text. See bug 304174.
html.global_attributes.id 📋Chrome12/11/2008 Chrome Android6/27/20121294
Firefox: id is a true global attribute only since Firefox 32.Firefox for Android: id is a true global attribute only since Firefox for Android 32.
html.global_attributes.inert 📋Chrome5/24/2022 Chrome Android5/24/2022
html.global_attributes.inert.ignores_find_in_page 📋Chrome4/16/2024 Chrome Android4/16/2024
html.global_attributes.inputmode 📋Chrome4/17/2018 Chrome Android4/17/2018
Safari on iOS: Before iOS 13, inputmode="none" had no effect.WebView on iOS: Before iOS 13, inputmode="none" had no effect.
html.global_attributes.is 📋Chrome5/29/2018 Chrome Android5/31/20182
html.global_attributes.lang 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.global_attributes.nonce 📋Chrome9/5/2017 Chrome Android9/5/2017
Firefox: Firefox does not prevent nonce exfiltration through content attributes.Firefox for Android: Firefox for Android does not prevent nonce exfiltration through content attributes.Safari: Safari does not prevent nonce exfiltration through content attributes.Safari on iOS: Safari on iOS does not prevent nonce exfiltration through content attributes.WebView on iOS: WebView on iOS does not prevent nonce exfiltration through content attributes.
html.global_attributes.part 📋Chrome3/12/2019 Chrome Android3/12/2019
html.global_attributes.popover 📋Chrome5/30/2023 Chrome Android5/30/2023
html.global_attributes.popover.hint 📋Chrome2/4/2025 Chrome Android2/4/2025
html.global_attributes.slot 📋Chrome8/31/2016 Chrome Android9/7/20167
html.global_attributes.spellcheck 📋Chrome2/3/2011 Chrome Android12/2/20151763
Chrome Android: Only supported on <textarea>.Firefox for Android: Only supported on <textarea>.Opera Android: Only supported on <textarea>.Safari on iOS: Only supported on <textarea>.Samsung Internet: Only supported on <textarea>.WebView Android: Only supported on <textarea>.WebView on iOS: Only supported on <textarea>.
html.global_attributes.style 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.global_attributes.tabindex 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.global_attributes.title 📋Chrome12/11/2008 Chrome Android6/27/20121294
html.global_attributes.title.multi-line_titles Chrome1/23/2018 Chrome Android1/23/2018
html.global_attributes.translate 📋Chrome5/15/2012 Chrome Android2/27/2013288
html.global_attributes.virtualkeyboardpolicy 📋Chrome9/21/2021 Chrome Android9/21/2021
html.global_attributes.writingsuggestions 📋Chrome4/16/2024 Chrome Android4/16/2024