diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
index 94f07734df..05630127a0 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
@@ -1137,6 +1137,9 @@ void HTMLInputElement::did_receive_focus()
return;
m_text_node->invalidate_style();
+ if (m_placeholder_text_node)
+ m_placeholder_text_node->invalidate_style();
+
document().set_cursor_position(DOM::Position::create(realm(), *m_text_node, 0));
}
@@ -1145,6 +1148,9 @@ void HTMLInputElement::did_lose_focus()
if (m_text_node)
m_text_node->invalidate_style();
+ if (m_placeholder_text_node)
+ m_placeholder_text_node->invalidate_style();
+
commit_pending_changes();
}
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.cpp
index 56ff3bfcd8..d0d2242ab8 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.cpp
@@ -72,6 +72,9 @@ void HTMLTextAreaElement::did_receive_focus()
return;
m_text_node->invalidate_style();
+ if (m_placeholder_text_node)
+ m_placeholder_text_node->invalidate_style();
+
document().set_cursor_position(DOM::Position::create(realm(), *m_text_node, 0));
}
@@ -80,6 +83,9 @@ void HTMLTextAreaElement::did_lose_focus()
if (m_text_node)
m_text_node->invalidate_style();
+ if (m_placeholder_text_node)
+ m_placeholder_text_node->invalidate_style();
+
// The change event fires when the value is committed, if that makes sense for the control,
// or else when the control loses focus
queue_an_element_task(HTML::Task::Source::UserInteraction, [this] {