diff --git a/html/rendering/bidi-rendering/slot-direction.window.js b/html/rendering/bidi-rendering/slot-direction.window.js
new file mode 100644
index 00000000000000..673f6c0b0fc3ad
--- /dev/null
+++ b/html/rendering/bidi-rendering/slot-direction.window.js
@@ -0,0 +1,72 @@
+// https://html.spec.whatwg.org/multipage/rendering.html#bidi-rendering
+// https://github.com/whatwg/html/pull/9796
+// https://github.com/whatwg/html/pull/9880
+
+for (let t of [
+ {
+ description: " inherits direction from parent",
+ shadow_tree: `
+
+
+
+ `,
+ host_dir: "rtl",
+ },
+ {
+ description: " inherits CSS direction from parent",
+ shadow_tree: `
+
+
+
+ `,
+ host_dir: "rtl",
+ },
+ {
+ description: "",
+ shadow_tree: `
+
+ `,
+ host_dir: "rtl",
+ },
+ {
+ description: "",
+ shadow_tree: `
+
+ `,
+ host_dir: "ltr",
+ },
+ {
+ description: " resolving to LTR",
+ shadow_tree: `
+
+ `,
+ host_dir: "rtl",
+ host_contents: "A",
+ },
+ {
+ description: " resolving to RTL",
+ shadow_tree: `
+
+ `,
+ host_dir: "ltr",
+ host_contents: "\u0627",
+ },
+]) {
+ test(() => {
+ let host = document.createElement("div");
+ document.body.appendChild(host);
+ host.dir = t.host_dir;
+ if ("host_contents" in t) {
+ host.innerHTML = t.host_contents;
+ }
+
+ let root = host.attachShadow({mode: "open"});
+ root.innerHTML = t.shadow_tree;
+
+ for (let e of Array.from(root.querySelectorAll("[data-expected]"))) {
+ assert_equals(getComputedStyle(e).direction, e.getAttribute("data-expected"), `direction of ${e.nodeName}`);
+ }
+
+ host.remove();
+ }, ` element sets CSS direction property: ${t.description}`);
+}
diff --git a/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html b/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html
new file mode 100644
index 00000000000000..6675f0a16644c8
--- /dev/null
+++ b/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html
@@ -0,0 +1,8 @@
+
+HTML Rendering: slot element has unicode-bidi: isolate
+
+
+
+ב-א
+
+normal
diff --git a/html/rendering/bidi-rendering/slot-no-isolate-001.html b/html/rendering/bidi-rendering/slot-no-isolate-001.html
new file mode 100644
index 00000000000000..bb2e927c08bad7
--- /dev/null
+++ b/html/rendering/bidi-rendering/slot-no-isolate-001.html
@@ -0,0 +1,22 @@
+
+HTML Rendering: slot element has unicode-bidi: isolate
+
+
+
+
+
+
+א-ב
+
+
+
+