<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>HTML Test: input with dir=auto, script assigns to start with N+L</title>
    <link rel="match" href="dir_auto-input-script-N-L-ref.html" />
    <link rel="author" title="Matitiahu Allouche" href="mailto:matitiahu.allouche@google.com" />
    <link rel="author" title="Oren Roth" href="mailto:oren.roth@gmail.com" />
    <link rel="author" title="Shai Berger" href="mailto:shai@platonix.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" />
    <meta name="assert" content="
      When dir='auto', the direction of an input element is set according to
      the first strong character of its value.
      In this test, it is the Latin letter A since neutrals are not
      strongly directional, thus the direction must be resolved as LTR." />
    <style>
      input, textarea {
        font-size:1em;
      }
      body {
        font-size:2em;
      }
      .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:
      &#x05D0; - The Hebrew letter Alef (strongly RTL).
      &#x05D1; - The Hebrew letter Bet (strongly RTL).
      &#x05D2; - The Hebrew letter Gimel (strongly RTL).
      This test makes sure that the direction is set correctly for an input whose value is set
      dynamically by script.
    </div>
    <div id="test" class="test">
      <script>
        window.onload = function() {
          var test = document.getElementById('test');
          var inputs = test.getElementsByTagName('input');
          for (var i = 0; i != inputs.length; i++) {
            inputs[i].value = '.-=ABC\u05D0\u05D1\u05D2.';
          }
        }
      </script>
      <div dir="ltr">
        <input type="text" dir="auto" value="&#x05D0;" />
      </div>
      <div dir="rtl">
        <input type="text" dir="auto" value="&#x05D0;" />
      </div>
    </div>
    <div class="ref">
      <div dir="ltr">
        <input type="text" dir="ltr" value=".-=ABC&#x05D0;&#x05D1;&#x05D2;." />
      </div>
      <div dir="rtl">
        <input type="text" dir="ltr" value=".-=ABC&#x05D0;&#x05D1;&#x05D2;." />
      </div>
    </div>
  </body>
</html>
