<!DOCTYPE html>
<html>
<head>
<style>
input:first-letter {
    color: blue;
}
</style>
<script>
if (window.testRunner)
    testRunner.waitUntilDone();
function test()
{
    var target = document.getElementById("target");
    target.focus();
    if (window.eventSender) {
        eventSender.keyDown("H");
        eventSender.keyDown("e");
        eventSender.keyDown("l");
        eventSender.keyDown("l");
        eventSender.keyDown("o");
        document.execCommand("selectAll"); // Does selectAll for aligning the @autofocus attribute on the expectation.
        testRunner.notifyDone();
    }
}
</script>
</head>
<body onload="test()">
    <input type="text" id="target" />
</body>
</html>
