diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index a8ca388c172..cc402f20bf1 100755
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -2728,18 +2728,18 @@ impl Activatable for HTMLInputElement {
// https://html.spec.whatwg.org/multipage/#reset-button-state-%28type=reset%29:activation-behaviour-2
// https://html.spec.whatwg.org/multipage/#checkbox-state-%28type=checkbox%29:activation-behaviour-2
// https://html.spec.whatwg.org/multipage/#radio-button-state-%28type=radio%29:activation-behaviour-2
- InputType::Submit |
- InputType::Reset |
- InputType::File |
- InputType::Checkbox |
- InputType::Radio => self.is_mutable(),
+ InputType::Submit | InputType::Reset | InputType::File => self.is_mutable(),
+ InputType::Checkbox | InputType::Radio => true,
_ => false,
}
}
// https://dom.spec.whatwg.org/#eventtarget-legacy-pre-activation-behavior
fn legacy_pre_activation_behavior(&self) -> Option {
- if !self.is_mutable() {
+ if !self.is_mutable() &&
+ self.input_type() != InputType::Checkbox &&
+ self.input_type() != InputType::Radio
+ {
return None;
}
@@ -2777,7 +2777,10 @@ impl Activatable for HTMLInputElement {
// https://dom.spec.whatwg.org/#eventtarget-legacy-canceled-activation-behavior
fn legacy_canceled_activation_behavior(&self, cache: Option) {
// Step 1
- if !self.is_mutable() {
+ if !self.is_mutable() &&
+ self.input_type() != InputType::Checkbox &&
+ self.input_type() != InputType::Radio
+ {
return;
}
let ty = self.input_type();
diff --git a/tests/wpt/metadata/dom/events/Event-dispatch-click.html.ini b/tests/wpt/metadata/dom/events/Event-dispatch-click.html.ini
index 4b9fdba1aca..33709ceac1c 100644
--- a/tests/wpt/metadata/dom/events/Event-dispatch-click.html.ini
+++ b/tests/wpt/metadata/dom/events/Event-dispatch-click.html.ini
@@ -2,16 +2,3 @@
type: testharness
[event state during post-click handling]
expected: FAIL
-
- [disabled radio should be checked from dispatchEvent(new MouseEvent("click"))]
- expected: FAIL
-
- [disabled checkbox should be checked from dispatchEvent(new MouseEvent("click"))]
- expected: FAIL
-
- [disabled radio should get legacy-canceled-activation behavior]
- expected: FAIL
-
- [disabled checkbox should get legacy-canceled-activation behavior]
- expected: FAIL
-