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 +