diff --git a/Libraries/LibWeb/HTML/HTMLStyleElement.cpp b/Libraries/LibWeb/HTML/HTMLStyleElement.cpp
index a6d27d4635c..3e453aba764 100644
--- a/Libraries/LibWeb/HTML/HTMLStyleElement.cpp
+++ b/Libraries/LibWeb/HTML/HTMLStyleElement.cpp
@@ -59,6 +59,8 @@ void HTMLStyleElement::attribute_changed(FlyString const& name, Optional
if (name == HTML::AttributeNames::media) {
if (auto* sheet = m_style_element_utils.sheet())
sheet->set_media(value.value_or({}));
+ } else if (name == HTML::AttributeNames::type) {
+ m_style_element_utils.update_a_style_block(*this);
}
}
diff --git a/Tests/LibWeb/Text/expected/wpt-import/html/semantics/document-metadata/the-style-element/style_type_change.txt b/Tests/LibWeb/Text/expected/wpt-import/html/semantics/document-metadata/the-style-element/style_type_change.txt
new file mode 100644
index 00000000000..04f12003161
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/wpt-import/html/semantics/document-metadata/the-style-element/style_type_change.txt
@@ -0,0 +1,8 @@
+Harness status: OK
+
+Found 3 tests
+
+3 Pass
+Pass Check initial styleSheets length type
+Pass Change type from invalid type to valid type
+Pass Change type from valid type to invalid type
diff --git a/Tests/LibWeb/Text/input/wpt-import/html/semantics/document-metadata/the-style-element/style_type_change.html b/Tests/LibWeb/Text/input/wpt-import/html/semantics/document-metadata/the-style-element/style_type_change.html
new file mode 100644
index 00000000000..80147e07225
--- /dev/null
+++ b/Tests/LibWeb/Text/input/wpt-import/html/semantics/document-metadata/the-style-element/style_type_change.html
@@ -0,0 +1,39 @@
+
+
+
+
+ Dynamically changing HTMLStyleElement.type should change the rendering accordingly
+
+
+
+
+
+
+ Text content.
+
+
+
\ No newline at end of file