Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that disables it given conditions:
- os == "android" : https://bugzilla.mozilla.org/show_bug.cgi?id=1512079
- This WPT test may be referenced by the following Test IDs:
- /html/dom/elements/global-attributes/dir_auto-textarea-script-mixed.html - WPT Dashboard Interop Dashboard
<!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" />
<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>