diff --git a/Userland/Libraries/LibWeb/HTML/Focus.cpp b/Userland/Libraries/LibWeb/HTML/Focus.cpp
index f073205e5c..58b24ac564 100644
--- a/Userland/Libraries/LibWeb/HTML/Focus.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Focus.cpp
@@ -142,12 +142,12 @@ static Vector> focus_chain(DOM::Node* subject)
// 3. If currentObject is a focusable area, then set currentObject to currentObject's DOM anchor's node document.
current_object = ¤t_object->document();
} else if (is(*current_object)
- && static_cast(*current_object).browsing_context()
- && !static_cast(*current_object).browsing_context()->is_top_level()) {
- // Otherwise, if currentObject is a Document whose browsing context is a child browsing context,
- // then set currentObject to currentObject's browsing context's container.
- current_object = static_cast(*current_object).browsing_context()->container();
+ && current_object->navigable()
+ && current_object->navigable()->parent()) {
+ // Otherwise, if currentObject is a Document whose node navigable's parent is non-null, then set currentObject to currentObject's node navigable's parent.
+ current_object = current_object->navigable()->container();
} else {
+ // Otherwise, break.
break;
}
}