<p>
    Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=13013">http://bugs.webkit.org/show_bug.cgi?id=13013</a>
    REGRESSION: Selection box does not scroll to where the focus jumps when pressing an alphanumeric key</i>.
</p>
<select id="list" size="3">
	<option>aardvark</option>
	<option>blue</option>
	<option>navy</option>
	<option>indigo</option>
	<option>azure</option>
</select>
<div id="result">Cannot run interactively.</div>
<script>
    if (window.layoutTestController) {
        layoutTestController.dumpAsText();
        var list = document.getElementById("list");
        list.focus();
        eventSender.keyDown("a");
        document.body.offsetTop;
        eventSender.keyDown("z");
        var result = document.getElementById("result");
        result.innerText = list.scrollTop > 0 ? "SUCCESS" : "FAIL";
    }
</script>
