diff --git a/Tests/LibWeb/Text/expected/HTML/Element-insertAdjacentHTML-documentElement.txt b/Tests/LibWeb/Text/expected/HTML/Element-insertAdjacentHTML-documentElement.txt
new file mode 100644
index 00000000000..aaecaf93c4a
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/HTML/Element-insertAdjacentHTML-documentElement.txt
@@ -0,0 +1 @@
+PASS (didn't crash)
diff --git a/Tests/LibWeb/Text/input/HTML/Element-insertAdjacentHTML-documentElement.html b/Tests/LibWeb/Text/input/HTML/Element-insertAdjacentHTML-documentElement.html
new file mode 100644
index 00000000000..66de31038f9
--- /dev/null
+++ b/Tests/LibWeb/Text/input/HTML/Element-insertAdjacentHTML-documentElement.html
@@ -0,0 +1,7 @@
+
+
diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp
index ebb3793e93c..6174f6d57eb 100644
--- a/Userland/Libraries/LibWeb/DOM/Element.cpp
+++ b/Userland/Libraries/LibWeb/DOM/Element.cpp
@@ -1489,8 +1489,7 @@ WebIDL::ExceptionOr Element::insert_adjacent_html(String const& position,
|| (context->document().document_type() == Document::Type::HTML
&& static_cast(*context).local_name() == "html"sv
&& static_cast(*context).namespace_uri() == Namespace::HTML)) {
- // FIXME: set context to the result of creating an element given this's node document, body, and the HTML namespace.
- TODO();
+ context = TRY(create_element(document(), HTML::TagNames::body, Namespace::HTML));
}
// 4. Let fragment be the result of invoking the fragment parsing algorithm steps with context and string.