From 8ad427d45e40fdbf25efe87195226acb0dec1f06 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Tue, 14 Oct 2025 14:00:25 +0200 Subject: [PATCH 1/5] Extract HTML `` input type subfeatures --- html/elements/datalist.json | 180 +++++++++++++++++++++++++++++++++--- 1 file changed, 167 insertions(+), 13 deletions(-) diff --git a/html/elements/datalist.json b/html/elements/datalist.json index 2309c3c195bd66..156e14ac9543d9 100644 --- a/html/elements/datalist.json +++ b/html/elements/datalist.json @@ -18,19 +18,9 @@ "edge": { "version_added": "12" }, - "firefox": [ - { - "version_added": "110", - "partial_implementation": true, - "notes": "The `date` and `time` input types are not supported." - }, - { - "version_added": "4", - "version_removed": "110", - "partial_implementation": true, - "notes": "The `` element will only create a dropdown for textual types, such as `text`, `search`, `url`, `tel`, `email` and `number`. The `date`, `time`, `range` and `color` types are not supported." - } - ], + "firefox": { + "version_added": "4" + }, "firefox_android": [ { "version_added": "79", @@ -63,6 +53,170 @@ "standard_track": true, "deprecated": false } + }, + "input_type_color": { + "__compat": { + "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/color)", + "support": { + "chrome": { + "version_added": "20" + }, + "chrome_android": { + "version_added": "33" + }, + "edge": { + "version_added": "12" + }, + "firefox": { + "version_added": "110" + }, + "firefox_android": { + "version_added": false + }, + "ie": { + "version_added": "10" + }, + "oculus": "mirror", + "opera": { + "version_added": "9.5" + }, + "opera_android": "mirror", + "safari": { + "version_added": "12.1" + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } + }, + "input_type_date": { + "__compat": { + "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/date)", + "support": { + "chrome": { + "version_added": "20" + }, + "chrome_android": { + "version_added": "33" + }, + "edge": { + "version_added": "12" + }, + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "ie": { + "version_added": "10" + }, + "oculus": "mirror", + "opera": { + "version_added": "9.5" + }, + "opera_android": "mirror", + "safari": { + "version_added": "12.1" + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } + }, + "input_type_range": { + "__compat": { + "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/range)", + "support": { + "chrome": { + "version_added": "20" + }, + "chrome_android": { + "version_added": "33" + }, + "edge": { + "version_added": "12" + }, + "firefox": { + "version_added": "110" + }, + "firefox_android": { + "version_added": false + }, + "ie": { + "version_added": "10" + }, + "oculus": "mirror", + "opera": { + "version_added": "9.5" + }, + "opera_android": "mirror", + "safari": { + "version_added": "12.1" + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } + }, + "input_type_time": { + "__compat": { + "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/time)", + "support": { + "chrome": { + "version_added": "20" + }, + "chrome_android": { + "version_added": "33" + }, + "edge": { + "version_added": "12" + }, + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "ie": { + "version_added": "10" + }, + "oculus": "mirror", + "opera": { + "version_added": "9.5" + }, + "opera_android": "mirror", + "safari": { + "version_added": "12.1" + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } } } } From 2dcde744bf304d7115ceb6cb25bc5a6a1b48e98e Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Tue, 14 Oct 2025 14:12:34 +0200 Subject: [PATCH 2/5] Duplicate datalist subfeatures into input type data --- html/elements/input/color.json | 41 +++++++++++++++++++++++++++++ html/elements/input/date.json | 39 +++++++++++++++++++++++++++ html/elements/input/range.json | 48 ++++++++++++++++++++++++++++++++++ html/elements/input/time.json | 39 +++++++++++++++++++++++++++ 4 files changed, 167 insertions(+) diff --git a/html/elements/input/color.json b/html/elements/input/color.json index c71ef38ecadfbe..0ca02c5f418fcd 100644 --- a/html/elements/input/color.json +++ b/html/elements/input/color.json @@ -87,6 +87,47 @@ "deprecated": false } } + }, + "datalist": { + "__compat": { + "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "support": { + "chrome": { + "version_added": "20" + }, + "chrome_android": { + "version_added": "33" + }, + "edge": { + "version_added": "14" + }, + "firefox": { + "version_added": "110" + }, + "firefox_android": { + "version_added": false + }, + "oculus": "mirror", + "opera": { + "version_added": "12" + }, + "opera_android": { + "version_added": "12" + }, + "safari": { + "version_added": "12.1" + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } } } } diff --git a/html/elements/input/date.json b/html/elements/input/date.json index 280be05b36224f..3d0cbd4d2c7a55 100644 --- a/html/elements/input/date.json +++ b/html/elements/input/date.json @@ -45,6 +45,45 @@ "deprecated": false } }, + "datalist": { + "__compat": { + "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "support": { + "chrome": { + "version_added": "20" + }, + "chrome_android": "mirror", + "edge": { + "version_added": "12" + }, + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "oculus": "mirror", + "opera": { + "version_added": "11" + }, + "opera_android": { + "version_added": "11" + }, + "safari": { + "version_added": "14.1" + }, + "safari_ios": { + "version_added": "5" + }, + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } + }, "disables_invalid_values_in_picker_ui": { "__compat": { "description": "Disables invalid values in picker UI", diff --git a/html/elements/input/range.json b/html/elements/input/range.json index 8fed1a0f77c809..05cfccbcded405 100644 --- a/html/elements/input/range.json +++ b/html/elements/input/range.json @@ -62,6 +62,54 @@ "deprecated": false } }, + "datalist": { + "__compat": { + "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "support": { + "chrome": { + "version_added": "4" + }, + "chrome_android": { + "version_added": "57" + }, + "edge": { + "version_added": "12" + }, + "firefox": { + "version_added": "110" + }, + "firefox_android": { + "version_added": false + }, + "ie": { + "version_added": "10" + }, + "oculus": "mirror", + "opera": { + "version_added": "11" + }, + "opera_android": { + "version_added": "11" + }, + "safari": { + "version_added": "3.1" + }, + "safari_ios": { + "version_added": "5" + }, + "samsunginternet_android": "mirror", + "webview_android": { + "version_added": "4.4" + }, + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } + }, "labeled_values": { "__compat": { "description": "Labeled values support", diff --git a/html/elements/input/time.json b/html/elements/input/time.json index 362c62b33d5b48..c2427a3894d10e 100644 --- a/html/elements/input/time.json +++ b/html/elements/input/time.json @@ -44,6 +44,45 @@ "standard_track": true, "deprecated": false } + }, + "datalist": { + "__compat": { + "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "support": { + "chrome": { + "version_added": "20" + }, + "chrome_android": "mirror", + "edge": { + "version_added": "12" + }, + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "oculus": "mirror", + "opera": { + "version_added": "10" + }, + "opera_android": { + "version_added": "10.1" + }, + "safari": { + "version_added": "14.1" + }, + "safari_ios": { + "version_added": "5" + }, + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } } } } From d250c0fe812da5c35e4d9f1416050e0451f9dfcf Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Tue, 14 Oct 2025 14:21:51 +0200 Subject: [PATCH 3/5] Fix datalist data based on input type support data --- html/elements/datalist.json | 33 ++++++++++++++------------------- html/elements/input/color.json | 4 +--- html/elements/input/date.json | 12 +++++------- html/elements/input/range.json | 14 +++++--------- html/elements/input/time.json | 10 +++++----- 5 files changed, 30 insertions(+), 43 deletions(-) diff --git a/html/elements/datalist.json b/html/elements/datalist.json index 156e14ac9543d9..50b3bdeed8e4fc 100644 --- a/html/elements/datalist.json +++ b/html/elements/datalist.json @@ -65,7 +65,7 @@ "version_added": "33" }, "edge": { - "version_added": "12" + "version_added": "14" }, "firefox": { "version_added": "110" @@ -73,12 +73,9 @@ "firefox_android": { "version_added": false }, - "ie": { - "version_added": "10" - }, "oculus": "mirror", "opera": { - "version_added": "9.5" + "version_added": "12" }, "opera_android": "mirror", "safari": { @@ -113,16 +110,13 @@ "version_added": false }, "firefox_android": "mirror", - "ie": { - "version_added": "10" - }, "oculus": "mirror", "opera": { - "version_added": "9.5" + "version_added": "11" }, "opera_android": "mirror", "safari": { - "version_added": "12.1" + "version_added": "14.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", @@ -144,7 +138,7 @@ "version_added": "20" }, "chrome_android": { - "version_added": "33" + "version_added": "57" }, "edge": { "version_added": "12" @@ -160,9 +154,11 @@ }, "oculus": "mirror", "opera": { - "version_added": "9.5" + "version_added": "11" + }, + "opera_android": { + "version_added": "20" }, - "opera_android": "mirror", "safari": { "version_added": "12.1" }, @@ -195,18 +191,17 @@ "version_added": false }, "firefox_android": "mirror", - "ie": { - "version_added": "10" - }, "oculus": "mirror", "opera": { - "version_added": "9.5" + "version_added": "10" }, "opera_android": "mirror", "safari": { - "version_added": "12.1" + "version_added": "14.1" + }, + "safari_ios": { + "version_added": "12.2" }, - "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" diff --git a/html/elements/input/color.json b/html/elements/input/color.json index 0ca02c5f418fcd..f2b24d7066866e 100644 --- a/html/elements/input/color.json +++ b/html/elements/input/color.json @@ -111,9 +111,7 @@ "opera": { "version_added": "12" }, - "opera_android": { - "version_added": "12" - }, + "opera_android": "mirror", "safari": { "version_added": "12.1" }, diff --git a/html/elements/input/date.json b/html/elements/input/date.json index 3d0cbd4d2c7a55..3e200ccfd1fccf 100644 --- a/html/elements/input/date.json +++ b/html/elements/input/date.json @@ -52,7 +52,9 @@ "chrome": { "version_added": "20" }, - "chrome_android": "mirror", + "chrome_android": { + "version_added": "33" + }, "edge": { "version_added": "12" }, @@ -64,15 +66,11 @@ "opera": { "version_added": "11" }, - "opera_android": { - "version_added": "11" - }, + "opera_android": "mirror", "safari": { "version_added": "14.1" }, - "safari_ios": { - "version_added": "5" - }, + "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" diff --git a/html/elements/input/range.json b/html/elements/input/range.json index 05cfccbcded405..2e27be23cc012e 100644 --- a/html/elements/input/range.json +++ b/html/elements/input/range.json @@ -67,7 +67,7 @@ "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", "support": { "chrome": { - "version_added": "4" + "version_added": "20" }, "chrome_android": { "version_added": "57" @@ -89,18 +89,14 @@ "version_added": "11" }, "opera_android": { - "version_added": "11" + "version_added": "20" }, "safari": { - "version_added": "3.1" - }, - "safari_ios": { - "version_added": "5" + "version_added": "12.1" }, + "safari_ios": "mirror", "samsunginternet_android": "mirror", - "webview_android": { - "version_added": "4.4" - }, + "webview_android": "mirror", "webview_ios": "mirror" }, "status": { diff --git a/html/elements/input/time.json b/html/elements/input/time.json index c2427a3894d10e..e8932bf5f152e0 100644 --- a/html/elements/input/time.json +++ b/html/elements/input/time.json @@ -52,7 +52,9 @@ "chrome": { "version_added": "20" }, - "chrome_android": "mirror", + "chrome_android": { + "version_added": "33" + }, "edge": { "version_added": "12" }, @@ -64,14 +66,12 @@ "opera": { "version_added": "10" }, - "opera_android": { - "version_added": "10.1" - }, + "opera_android": "mirror", "safari": { "version_added": "14.1" }, "safari_ios": { - "version_added": "5" + "version_added": "12.2" }, "samsunginternet_android": "mirror", "webview_android": "mirror", From 3d54188fb79b3358f8bed6cc808f78c8831e5b64 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Tue, 14 Oct 2025 14:27:03 +0200 Subject: [PATCH 4/5] Tag datalist subfeatures --- html/elements/datalist.json | 12 ++++++++++++ html/elements/input/color.json | 3 +++ html/elements/input/date.json | 3 +++ html/elements/input/range.json | 3 +++ html/elements/input/time.json | 3 +++ 5 files changed, 24 insertions(+) diff --git a/html/elements/datalist.json b/html/elements/datalist.json index 50b3bdeed8e4fc..77029be2eac51d 100644 --- a/html/elements/datalist.json +++ b/html/elements/datalist.json @@ -57,6 +57,9 @@ "input_type_color": { "__compat": { "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/color)", + "tags": [ + "web-features:datalist" + ], "support": { "chrome": { "version_added": "20" @@ -96,6 +99,9 @@ "input_type_date": { "__compat": { "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/date)", + "tags": [ + "web-features:datalist" + ], "support": { "chrome": { "version_added": "20" @@ -133,6 +139,9 @@ "input_type_range": { "__compat": { "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/range)", + "tags": [ + "web-features:datalist" + ], "support": { "chrome": { "version_added": "20" @@ -177,6 +186,9 @@ "input_type_time": { "__compat": { "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/time)", + "tags": [ + "web-features:datalist" + ], "support": { "chrome": { "version_added": "20" diff --git a/html/elements/input/color.json b/html/elements/input/color.json index f2b24d7066866e..283ed56dd51719 100644 --- a/html/elements/input/color.json +++ b/html/elements/input/color.json @@ -91,6 +91,9 @@ "datalist": { "__compat": { "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "tags": [ + "web-features:datalist" + ], "support": { "chrome": { "version_added": "20" diff --git a/html/elements/input/date.json b/html/elements/input/date.json index 3e200ccfd1fccf..613d3d2b3fc1b3 100644 --- a/html/elements/input/date.json +++ b/html/elements/input/date.json @@ -48,6 +48,9 @@ "datalist": { "__compat": { "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "tags": [ + "web-features:datalist" + ], "support": { "chrome": { "version_added": "20" diff --git a/html/elements/input/range.json b/html/elements/input/range.json index 2e27be23cc012e..f39972121f1f11 100644 --- a/html/elements/input/range.json +++ b/html/elements/input/range.json @@ -65,6 +65,9 @@ "datalist": { "__compat": { "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "tags": [ + "web-features:datalist" + ], "support": { "chrome": { "version_added": "20" diff --git a/html/elements/input/time.json b/html/elements/input/time.json index e8932bf5f152e0..f2a9b8527ac29d 100644 --- a/html/elements/input/time.json +++ b/html/elements/input/time.json @@ -48,6 +48,9 @@ "datalist": { "__compat": { "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "tags": [ + "web-features:datalist" + ], "support": { "chrome": { "version_added": "20" From a430cbe96b609aa8b0269f510b2d24ce234153c1 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 15 Oct 2025 15:58:03 +0200 Subject: [PATCH 5/5] Add spec URLs for dataset features --- html/elements/datalist.json | 16 ++++++++++++++++ html/elements/input/color.json | 4 ++++ html/elements/input/date.json | 4 ++++ html/elements/input/range.json | 4 ++++ html/elements/input/time.json | 4 ++++ 5 files changed, 32 insertions(+) diff --git a/html/elements/datalist.json b/html/elements/datalist.json index 77029be2eac51d..c9ed241dff718b 100644 --- a/html/elements/datalist.json +++ b/html/elements/datalist.json @@ -57,6 +57,10 @@ "input_type_color": { "__compat": { "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/color)", + "spec_url": [ + "https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element", + "https://html.spec.whatwg.org/multipage/input.html#color-state-(type=color)" + ], "tags": [ "web-features:datalist" ], @@ -99,6 +103,10 @@ "input_type_date": { "__compat": { "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/date)", + "spec_url": [ + "https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element", + "https://html.spec.whatwg.org/multipage/input.html#date-state-(type=date)" + ], "tags": [ "web-features:datalist" ], @@ -139,6 +147,10 @@ "input_type_range": { "__compat": { "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/range)", + "spec_url": [ + "https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element", + "https://html.spec.whatwg.org/multipage/input.html#range-state-(type=range)" + ], "tags": [ "web-features:datalist" ], @@ -186,6 +198,10 @@ "input_type_time": { "__compat": { "description": "Support with [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/input/time)", + "spec_url": [ + "https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element", + "https://html.spec.whatwg.org/multipage/input.html#time-state-(type=time)" + ], "tags": [ "web-features:datalist" ], diff --git a/html/elements/input/color.json b/html/elements/input/color.json index 283ed56dd51719..069fcaef4ad392 100644 --- a/html/elements/input/color.json +++ b/html/elements/input/color.json @@ -91,6 +91,10 @@ "datalist": { "__compat": { "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "spec_url": [ + "https://html.spec.whatwg.org/multipage/input.html#color-state-(type=color)", + "https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element" + ], "tags": [ "web-features:datalist" ], diff --git a/html/elements/input/date.json b/html/elements/input/date.json index 613d3d2b3fc1b3..51ef283b9f40c3 100644 --- a/html/elements/input/date.json +++ b/html/elements/input/date.json @@ -48,6 +48,10 @@ "datalist": { "__compat": { "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "spec_url": [ + "https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element", + "https://html.spec.whatwg.org/multipage/input.html#date-state-(type=date)" + ], "tags": [ "web-features:datalist" ], diff --git a/html/elements/input/range.json b/html/elements/input/range.json index f39972121f1f11..00c59c48cd4f02 100644 --- a/html/elements/input/range.json +++ b/html/elements/input/range.json @@ -65,6 +65,10 @@ "datalist": { "__compat": { "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "spec_url": [ + "https://html.spec.whatwg.org/multipage/input.html#range-state-(type=range)", + "https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element" + ], "tags": [ "web-features:datalist" ], diff --git a/html/elements/input/time.json b/html/elements/input/time.json index f2a9b8527ac29d..a7fb7e6f2126d1 100644 --- a/html/elements/input/time.json +++ b/html/elements/input/time.json @@ -48,6 +48,10 @@ "datalist": { "__compat": { "description": "Supports [``](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/datalist)", + "spec_url": [ + "https://html.spec.whatwg.org/multipage/input.html#time-state-(type=time)", + "https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element" + ], "tags": [ "web-features:datalist" ],