diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
index 3b498108405..3b2ba909780 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp
@@ -85,7 +85,12 @@ void HTMLInputElement::set_checked(bool checked, ChangeSource change_source)
m_dirty_checkedness = true;
m_checked = checked;
- set_needs_style_update(true);
+
+ // This element's :checked pseudo-class could be used in a sibling's sibling-selector,
+ // so we need to invalidate the style of all siblings.
+ parent()->for_each_child([&](auto& child) {
+ child.invalidate_style();
+ });
}
void HTMLInputElement::set_checked_binding(bool checked)