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 + + + + + + +
א-ב
+ +
+ +