<script>
if (window.layoutTestController)
     layoutTestController.dumpEditingCallbacks();
</script>
<p>This tests moving the caret backward through content of mixed editability. The caret should end up back at the start of the editable text inside the table.</p>

<div contenteditable="true">
editable
<table border="1" contenteditable="false"><tbody><tr><td><div style="display:inline-block; "><span>static</span><span id="test" contenteditable="plaintext-only">editable</span></div></td></tr></tbody></table>
editable
</div>

<script>
var e = document.getElementById("test");
var s = window.getSelection();

s.setPosition(e, 0);
s.modify("move", "forward", "character");

s.modify("move", "backward", "word");
</script>