<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
<style>
.inside { list-style-position: inside; }
.img { list-style-image: url(resources/white.gif) }
</style>
<script>
    function select() {
        var s = document.getElementById("start");
        var e = document.getElementById("end");
        window.getSelection().setBaseAndExtent(s, 0, e, 0);
    }
</script>
</HEAD>
<BODY onload="select();">
<p>
    Test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=8408">http://bugzilla.opendarwin.org/show_bug.cgi?id=8408</a>
    Paint the highlight behind selected list markers</i>.
</p>
<p>
    This tests the rendering of list markers inside the selection.
</p>
<a id="start"></a>
<hr>
<UL>
<LI>Item with outside marker
</UL>

<UL class="inside">
<LI>Item with inside marker
</UL>

<UL class="img">
<LI>Item with outside image marker
</UL>

<UL class="img inside">
<LI>Item with inside image marker
</UL>

<OL>
<LI>Item with outside ordinal
<LI>and another one
</OL>

<OL class="inside">
<LI>Item with inside ordinal
<LI>and another one
</OL>
<hr>
<a id="end"></a>
</BODY>
</HTML>
