<!DOCTYPE html>
<meta charset="utf-8">
<title>HTML Test: focus - positive tabindex</title>
<link rel="author" title="Intel" href="http://www.intel.com/">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#sequential-focus-navigation-and-the-tabindex-attribute">
<meta assert="flag" content="interact">
<meta assert="assert" content="Check if the tabindex attribute controls whether an element is supposed to be focusable">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<h2>Steps:</h2>
<ol>
  <li>Press 'Tab' key in 10 seconds.</li>
</ol>
<h2>Expect results:</h2>
<p>PASS</p>
<div id="log"></div>
<form id="fm">
  <input id="test" tabindex="1">
</form>
<script>

//This test can be automated once we have an uniform way to use webdriver.
var t = async_test("The element with a positive tabindex must be focused by press 'Tab' key");

setup({timeout: 10000});

document.forms.fm.addEventListener("focus", function (evt) {
  t.step(function () {
    var testEle = document.getElementById("test");
    assert_equals(testEle.tabIndex, 1, "The tabIndex attribute of the input element should be 1.");
    assert_equals(evt.target, testEle, "The input element must be focused.");
    assert_equals(document.activeElement, testEle, "The input element must be activated.");
  });
  t.done();
}, true);

document.addEventListener("keydown", function (evt) {
  t.step(function () {
    assert_equals(evt.keyCode, 9, "Please press 'Tab' key.");
  });
}, true);

</script>
