[csswg-drafts] [css-overflow] Scroll direction of unicode-bidi: plaintext. (#13816)

emilio has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-overflow] Scroll direction of unicode-bidi: plaintext. ==
Consider this test-case:

```html
<!doctype html>
<meta charset=utf-8>
<style>
  div,
  input,
  textarea {
    outline: 1px solid;
    background-color: transparent;
    color: inherit;
    width: 200px;
    padding: 0;
    border: 0;
    font: 30px sans-serif;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    white-space: nowrap;
    unicode-bidi: plaintext;
  }
</style>
<input value="اسماء.شبكة/%20/test/"><br>
<textarea rows="1">اسماء.شبكة/%20/test/</textarea>
<div style="overflow: scroll">
  <span style="display: block; unicode-bidi: inherit;">
    اسماء.شبكة/%20/test/
  </span>
</div>
<div style="overflow: scroll">
  اسماء.شبكة/%20/test/
</div>
```

As of today:

 * WebKit always treats all these scrollers as ltr (can't scroll at all, or scroll to blank).
 * Blink treats the `<input>` and last `<div>` as rtl, but the `<textarea>` and the first `<div>` are not scrollable.
 * Gecko treats `<input>` / `<textarea>` / the second `<div>` as rtl, but the first `<div>` as RTL.

My expectation is that all four things should be scrollable, and this should be a bit better defined.

Right now Gecko does a [very simplistic check](https://searchfox.org/firefox-main/rev/662d18616bbb2da4c5a8758da50fc9d591d18c19/layout/generic/ScrollContainerFrame.cpp#6943-6952) that effectively doesn't drill through the `<span>`, causing this issue.

What is Blink doing? What should the spec say?

cc @jfkthame 

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/13816 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 16 April 2026 12:01:13 UTC