diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index f75fd670465..e14a91ae9d7 100644
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -862,10 +862,6 @@ impl VirtualMethods for HTMLInputElement {
}
if event.type_() == atom!("click") && !event.DefaultPrevented() {
- if let InputType::InputRadio = self.input_type.get() {
- self.update_checked_state(true, true);
- }
-
// TODO: Dispatch events for non activatable inputs
// https://html.spec.whatwg.org/multipage/#common-input-element-events
diff --git a/components/script/dom/htmllabelelement.rs b/components/script/dom/htmllabelelement.rs
index 7042b98f0d7..90d4a16b86e 100644
--- a/components/script/dom/htmllabelelement.rs
+++ b/components/script/dom/htmllabelelement.rs
@@ -63,12 +63,15 @@ impl Activatable for HTMLLabelElement {
// https://html.spec.whatwg.org/multipage/#run-post-click-activation-steps
fn activation_behavior(&self, _event: &Event, _target: &EventTarget) {
- synthetic_click_activation(self.upcast::(),
- false,
- false,
- false,
- false,
- ActivationSource::NotFromClick);
+ if let Some(e) = self.GetControl() {
+ let elem = e.upcast::();
+ synthetic_click_activation(elem,
+ false,
+ false,
+ false,
+ false,
+ ActivationSource::NotFromClick);
+ }
}
// https://html.spec.whatwg.org/multipage/#implicit-submission
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index ab8bdf7ddb9..2a6f388a612 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -6030,6 +6030,12 @@
"url": "/_mozilla/mozilla/htmlfontelement_size_attribute.html"
}
],
+ "mozilla/htmllabel-activation.html": [
+ {
+ "path": "mozilla/htmllabel-activation.html",
+ "url": "/_mozilla/mozilla/htmllabel-activation.html"
+ }
+ ],
"mozilla/htmlspacechars.html": [
{
"path": "mozilla/htmlspacechars.html",
diff --git a/tests/wpt/mozilla/tests/mozilla/htmllabel-activation.html b/tests/wpt/mozilla/tests/mozilla/htmllabel-activation.html
new file mode 100644
index 00000000000..ff77c80a18f
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/htmllabel-activation.html
@@ -0,0 +1,170 @@
+
+
+Click action on label
+
+
+
+
+
+
diff --git a/tests/wpt/mozilla/tests/mozilla/htmllabel-form-activation.html b/tests/wpt/mozilla/tests/mozilla/htmllabel-form-activation.html
new file mode 100644
index 00000000000..68296b3c724
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/htmllabel-form-activation.html
@@ -0,0 +1,4 @@
+
+
+Click action on label with nested form
+