| <!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: |
| ‎ - LRM, the invisible left-to-right mark (strongly LTR). |
| ‏ - 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"> |
| ‎ |
| </textarea> |
| </div> |
| <div dir="rtl"> |
| <textarea rows="5" dir="auto"> |
| ‏ |
| </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> |