diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs
index 54c9d710dd3..a4df1059a0c 100644
--- a/components/script/dom/htmlformelement.rs
+++ b/components/script/dom/htmlformelement.rs
@@ -1328,7 +1328,7 @@ pub struct FormDatum {
impl FormDatum {
pub fn replace_value(&self, charset: &str) -> String {
- if self.name == "_charset_" && self.ty == "hidden" {
+ if self.name.to_ascii_lowercase() == "_charset_" && self.ty == "hidden" {
return charset.to_string();
}
@@ -1753,7 +1753,7 @@ pub fn encode_multipart_form_data(
// Step 3
for entry in form_data.iter_mut() {
// 3.1
- if entry.name == "_charset_" && entry.ty == "hidden" {
+ if entry.name.to_ascii_lowercase() == "_charset_" && entry.ty == "hidden" {
entry.value = FormDatumValue::String(DOMString::from(charset.clone()));
}
// TODO: 3.2
diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index b4056514c13..aefbea6f30e 100755
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -1759,7 +1759,7 @@ impl HTMLInputElement {
// Step 5.10: it's a hidden field named _charset_
InputType::Hidden => {
- if name == "_charset_" {
+ if name.to_ascii_lowercase() == "_charset_" {
return vec![FormDatum {
ty: ty.clone(),
name: name,
diff --git a/tests/wpt/metadata/html/semantics/forms/the-input-element/hidden-charset-case-sensitive.html.ini b/tests/wpt/metadata/html/semantics/forms/the-input-element/hidden-charset-case-sensitive.html.ini
deleted file mode 100644
index 19910c0b95b..00000000000
--- a/tests/wpt/metadata/html/semantics/forms/the-input-element/hidden-charset-case-sensitive.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hidden-charset-case-sensitive.html]
- [keyword _charset_]
- expected: FAIL
-