diff --git a/src/core/drive/page_renderer.js b/src/core/drive/page_renderer.js index c2789639b..475cb1cb3 100644 --- a/src/core/drive/page_renderer.js +++ b/src/core/drive/page_renderer.js @@ -60,13 +60,18 @@ export class PageRenderer extends Renderer { #setLanguage() { const { documentElement } = this.currentSnapshot - const { lang } = this.newSnapshot + const { dir, lang } = this.newSnapshot if (lang) { documentElement.setAttribute("lang", lang) } else { documentElement.removeAttribute("lang") } + if (dir) { + documentElement.setAttribute("dir", dir) + } else { + documentElement.removeAttribute("dir") + } } async mergeHead() { diff --git a/src/core/drive/page_snapshot.js b/src/core/drive/page_snapshot.js index 4e54944c8..c1c56261d 100644 --- a/src/core/drive/page_snapshot.js +++ b/src/core/drive/page_snapshot.js @@ -45,6 +45,10 @@ export class PageSnapshot extends Snapshot { return this.documentElement.getAttribute("lang") } + get dir() { + return this.documentElement.getAttribute("dir") + } + get headElement() { return this.headSnapshot.element } diff --git a/src/tests/fixtures/dir_rtl.html b/src/tests/fixtures/dir_rtl.html new file mode 100644 index 000000000..2793c0e5d --- /dev/null +++ b/src/tests/fixtures/dir_rtl.html @@ -0,0 +1,12 @@ + + +
+ +