<html>
<head>
    <style>
        div.overflow { margin: 20px; width: 150px; height: 50px; overflow: auto;}
        div.overflow div { width: 200px; }
    </style>
</head>
<body>
    <p>
        Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=14875">http://bugs.webkit.org/show_bug.cgi?id=14875</a>
        Textarea with nowrap - left/right nav, Up/down nav both hide text</i>.
    </p>
    <p>
        The letter A should be fully visible in each one of the eight boxes below.
    </p>
    <div id="t1" contenteditable="true" class="overflow">
        <div style="text-align: right;">
            A
        </div>
    </div>
    
    <div id="t2" contenteditable="true" class="overflow" style="border-left: 10px solid;">
        <div style="text-align: right;">
            A
        </div>
    </div>
    
    <div id="t3" contenteditable="true" class="overflow" style="border-right: 10px solid;">
        <div style="text-align: right;">
            A
        </div>
    </div>
    
    <div id="t4" contenteditable="true" class="overflow" style="overflow-y: scroll;">
        <div style="text-align: right;">
            A
        </div>
    </div>
    
    <div id="t5" contenteditable="true" class="overflow">
        <div>
            A
        </div>
    </div>
    
    <div id="t6" contenteditable="true" class="overflow" style="border-left: 10px solid;">
        <div>
            A
        </div>
    </div>
    
    <div id="t7" contenteditable="true" class="overflow" style="border-right: 10px solid;">
        <div>
            A
        </div>
    </div>
    
    <div id="t8" contenteditable="true" class="overflow" style="overflow-y: scroll;">
        <div>
            A
        </div>
    </div>
    
    <script>
        function focusDiv(id)
        {
            var div = document.getElementById(id);
            div.focus();
            div.blur();
        }

        function scrollAndFocusDiv(id)
        {
            var div = document.getElementById(id);
            div.scrollLeft = 400;
            div.focus();
            div.blur();
        }

        focusDiv("t1");
        focusDiv("t2");
        focusDiv("t3");
        focusDiv("t4");
        scrollAndFocusDiv("t5");
        scrollAndFocusDiv("t6");
        scrollAndFocusDiv("t7");
        scrollAndFocusDiv("t8");
    </script>
</body>
</html>
