diff --git a/Tests/LibWeb/Text/expected/hit_testing/box-outside-of-abspos-containing-block-border-rect.txt b/Tests/LibWeb/Text/expected/hit_testing/box-outside-of-abspos-containing-block-border-rect.txt
new file mode 100644
index 0000000000..e80c100df8
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/hit_testing/box-outside-of-abspos-containing-block-border-rect.txt
@@ -0,0 +1 @@
+Run Clicked!
diff --git a/Tests/LibWeb/Text/expected/hit_testing/open-details-by-clicking-on-triangle.txt b/Tests/LibWeb/Text/expected/hit_testing/open-details-by-clicking-on-triangle.txt
new file mode 100644
index 0000000000..a602eabb63
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/hit_testing/open-details-by-clicking-on-triangle.txt
@@ -0,0 +1 @@
+here be bugsyou can't see me toggle open
diff --git a/Tests/LibWeb/Text/input/hit_testing/box-outside-of-abspos-containing-block-border-rect.html b/Tests/LibWeb/Text/input/hit_testing/box-outside-of-abspos-containing-block-border-rect.html
new file mode 100644
index 0000000000..155d0b31f7
--- /dev/null
+++ b/Tests/LibWeb/Text/input/hit_testing/box-outside-of-abspos-containing-block-border-rect.html
@@ -0,0 +1,28 @@
+
+
+
diff --git a/Tests/LibWeb/Text/input/hit_testing/open-details-by-clicking-on-triangle.html b/Tests/LibWeb/Text/input/hit_testing/open-details-by-clicking-on-triangle.html
new file mode 100644
index 0000000000..67ca58d7aa
--- /dev/null
+++ b/Tests/LibWeb/Text/input/hit_testing/open-details-by-clicking-on-triangle.html
@@ -0,0 +1,16 @@
+
+here be bugs
you can't see me
+
+
diff --git a/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp b/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp
index ca5436aafe..1241e83973 100644
--- a/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp
+++ b/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp
@@ -861,9 +861,6 @@ TraversalDecision PaintableBox::hit_test(CSSPixelPoint position, HitTestType typ
return stacking_context()->hit_test(position, type, callback);
}
- if (!absolute_border_box_rect().contains(position_adjusted_by_scroll_offset.x(), position_adjusted_by_scroll_offset.y()))
- return TraversalDecision::Continue;
-
for (auto const* child = last_child(); child; child = child->previous_sibling()) {
auto z_index = child->computed_values().z_index();
if (child->layout_node().is_positioned() && z_index.value_or(0) == 0)
@@ -872,6 +869,9 @@ TraversalDecision PaintableBox::hit_test(CSSPixelPoint position, HitTestType typ
return TraversalDecision::Break;
}
+ if (!absolute_border_box_rect().contains(position_adjusted_by_scroll_offset.x(), position_adjusted_by_scroll_offset.y()))
+ return TraversalDecision::Continue;
+
if (!visible_for_hit_testing())
return TraversalDecision::Continue;