summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/dom/elements/global-attributes/dir_auto-textarea-script-mixed.html
blob: f0c6d4fe44be03546cce15c73173654847af854d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>HTML Test: textarea with dir=auto, script assigns to mixed L and R paragraphs</title>
    <link rel="match" href="dir_auto-textarea-script-mixed-ref.html" />
    <link rel="author" title="Aharon Lanin" href="mailto:aharon@google.com" />
    <link rel="author" title="HTML5 bidi test WG" href="mailto:html5bidi@googlegroups.com" />
    <link rel="help" href="https://html.spec.whatwg.org/multipage/#the-dir-attribute" />
    <link rel="help" href="http://dev.w3.org/csswg/css3-writing-modes/#unicode-bidi0" />
    <meta name="assert" content="
      When dir='auto', the direction is set according to the first strong character
      of the text.
      For textarea and pre elements, the heuristic is applied on a per-paragraph level." />
    <style>
      body, textarea {
        font-size:18px;
        text-align:left;
      }
      textarea {
        resize: none;
      }
      .test, .ref {
        border: medium solid gray;
        width: 400px;
        margin: 20px;
      }
      .comments {
        display: none;
      }
    </style>
  </head>
  <body>
    <div class="instructions"><p>Test passes if the two boxes below look exactly the same.</p></div>
    <div class="comments">
      Key to entities used below:
        &#x200E; - LRM, the invisible left-to-right mark (strongly LTR).
        &#x200F; - RLM, the invisible right-to-left mark (strongly RTL).
      This test makes sure that the direction is set correctly for a textarea whose value is set
      dynamically by script.
      We use text-align:left because neither the dir="auto" nor the unicode-bidi:plaintext
      specification states whether text-align:start and text-align:end should obey the paragraph
      direction or the direction property in a unicode-bidi:plaintext element.
    </div>
    <div id="test" class="test">
      <script>
        window.onload = function() {
          var test = document.getElementById('test');
          var textareas = test.getElementsByTagName('textarea');
          for (var i = 0; i != textareas.length; i++) {
            var input = textareas[i];
            if (input.parentNode.dir == 'ltr') {
              // Assign a value whose first strong is RTL.
              input.value =
                  '!\u200F123\u200E@\n' +
                  '@\u200E123\u200F!\n' +
                  '!123\u200F\u200E@\n' +
                  '@123\u200E\u200F!\n';
            } else {
              // Assign a value whose first strong is LTR.
              input.value =
                  '@\u200E123\u200F!\n' +
                  '!\u200F123\u200E@\n' +
                  '@123\u200E\u200F!\n' +
                  '!123\u200F\u200E@\n';
            }
          }
        }
      </script>
      <div dir="ltr">
        <textarea rows="5" dir="auto">
&#x200E;
        </textarea>
      </div>
      <div dir="rtl">
        <textarea rows="5" dir="auto">
&#x200F;
        </textarea>
      </div>
    </div>
    <div class="ref">
      <div dir="ltr">
        <textarea rows="5" dir="rtl">
!123@
!123@
!123@
!123@
        </textarea>
      </div>
      <div dir="rtl">
        <textarea rows="5" dir="ltr">
@123!
@123!
@123!
@123!
        </textarea>
      </div>
    </div>
  </body>
</html>