// 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}`); }