<head>
<script>

function log(str)
{
    document.getElementById("log").innerHTML += str + " ";
}

function runTest()
{
    if (window.testRunner)
        testRunner.dumpAsText();

    if (!window.eventSender)
        return;

    for (var i = 0; i < 7; ++i)
        eventSender.keyDown("\t");
}

</script>
</head>
<body onload="runTest()">
<p>This test checks whether you can tab in and out of various focusable objects including pages and content-editable areas. As you tab through, each element will log its number in order.</p>
<hr>
<input type="search" onfocus="log(1)" value="search">
<input type="text" onfocus="log(2)" value="text">
<div style="display: inline-block" contentEditable="true" onfocus="log(3)">contentEditable</div>
<select onfocus="log(4)"><option>select</option></select>
<textarea onfocus="log(5)">textarea</textarea>
<input type="password" onfocus="log(6)" value="password">
<input type="text" onfocus="log(7)" value="text 2">
<hr>
<p id="log"></p>
</body>
