at (10,10) content-size 38.84375x100 table-row children: not-inline
+ BlockContainer at (11,51.5) content-size 36.84375x17 table-cell [BFC] children: not-inline
+ BlockContainer <(anonymous)> at (11,51.5) content-size 36.84375x17 children: inline
+ frag 0 from TextNode start: 0, length: 5, rect: [11,51.5 36.84375x17] baseline: 13.296875
+ "hello"
+ TextNode <#text>
+ BlockContainer <(anonymous)> at (8,112) content-size 784x0 children: inline
+ TextNode <#text>
+ BlockContainer at (8,112) content-size 784x100 children: inline
+ frag 0 from TextNode start: 0, length: 5, rect: [8,112 36.84375x17] baseline: 13.296875
+ "hello"
+ TextNode <#text>
+ BlockContainer <(anonymous)> at (8,212) content-size 784x0 children: inline
+ TextNode <#text>
+
+ViewportPaintable (Viewport<#document>) [0,0 800x600]
+ PaintableWithLines (BlockContainer) [0,0 800x600]
+ PaintableWithLines (BlockContainer) [8,8 784x204]
+ PaintableWithLines (TableWrapper(anonymous)) [8,8 42.84375x104]
+ PaintableBox (Box ) [8,8 42.84375x104]
+ PaintableBox (Box) [10,10 38.84375x100]
+ PaintableBox (Box) [10,10 38.84375x100]
+ PaintableWithLines (BlockContainer) [10,10 38.84375x100]
+ PaintableWithLines (BlockContainer(anonymous)) [11,51.5 36.84375x17]
+ TextPaintable (TextNode<#text>)
+ PaintableWithLines (BlockContainer(anonymous)) [8,112 784x0]
+ PaintableWithLines (BlockContainer) [8,112 784x100]
+ TextPaintable (TextNode<#text>)
+ PaintableWithLines (BlockContainer(anonymous)) [8,212 784x0]
diff --git a/Tests/LibWeb/Layout/expected/table/vertical-align-middle-vs-top.txt b/Tests/LibWeb/Layout/expected/table/vertical-align-middle-vs-top.txt
new file mode 100644
index 00000000000..0a3c01b052a
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/table/vertical-align-middle-vs-top.txt
@@ -0,0 +1,31 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 800x129 [BFC] children: not-inline
+ BlockContainer at (8,8) content-size 784x113 children: not-inline
+ BlockContainer at (8,8) content-size 784x113 children: not-inline
+ TableWrapper <(anonymous)> at (8,8) content-size 346.5x113 [BFC] children: not-inline
+ Box at (8,8) content-size 346.5x113 table-box [TFC] children: not-inline
+ Box at (10,10) content-size 342.5x109 table-row-group children: not-inline
+ Box at (10,10) content-size 342.5x109 table-row children: not-inline
+ BlockContainer at (10,10) content-size 342.5x109 table-cell [BFC] children: not-inline
+ BlockContainer <(anonymous)> at (10,10) content-size 342.5x109 children: inline
+ frag 0 from TextNode start: 0, length: 3, rect: [10,10 169.734375x109] baseline: 84.484375
+ "foo"
+ TextNode <#text>
+ InlineNode
+ frag 0 from TextNode start: 0, length: 3, rect: [179.734375,10 172.765625x109] baseline: 84.484375
+ "bar"
+ TextNode <#text>
+
+ViewportPaintable (Viewport<#document>) [0,0 800x600]
+ PaintableWithLines (BlockContainer) [0,0 800x129]
+ PaintableWithLines (BlockContainer) [8,8 784x113]
+ PaintableWithLines (BlockContainer) [8,8 784x113]
+ PaintableWithLines (TableWrapper(anonymous)) [8,8 346.5x113]
+ PaintableBox (Box) [8,8 346.5x113]
+ PaintableBox (Box) [10,10 342.5x109]
+ PaintableBox (Box) [10,10 342.5x109]
+ PaintableWithLines (BlockContainer) [10,10 342.5x109]
+ PaintableWithLines (BlockContainer(anonymous)) [10,10 342.5x109]
+ TextPaintable (TextNode<#text>)
+ PaintableWithLines (InlineNode)
+ TextPaintable (TextNode<#text>)
diff --git a/Tests/LibWeb/Layout/input/table/vertical-align-middle-td-vs-div.html b/Tests/LibWeb/Layout/input/table/vertical-align-middle-td-vs-div.html
new file mode 100644
index 00000000000..894d451ef56
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/table/vertical-align-middle-td-vs-div.html
@@ -0,0 +1,11 @@
+
+
+ hello
diff --git a/Tests/LibWeb/Layout/input/table/vertical-align-middle-vs-top.html b/Tests/LibWeb/Layout/input/table/vertical-align-middle-vs-top.html
new file mode 100644
index 00000000000..b970ba19489
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/table/vertical-align-middle-vs-top.html
@@ -0,0 +1,35 @@
+ | | | |