<!DOCTYPE html>
<title>Type in an onscreen sticky positioned input box should not scroll the page.</title>
<link rel="help" href="https://www.w3.org/TR/css-position-3/#stickypos-scroll" />
<meta name="assert" content="This test checks that typing in an onscreen sticky positioned
input box should reset the scroll to unshifted position." />
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<style>
body {
display: inline;
}
#spacer {
height:2000px;
}
</style>
<input type="text" style="position:sticky;" id="test"/>
<input type="text" id="reference"/>
<div id="spacer"></div>
<script>
test(() => {
var test = document.getElementById('test');
test.focus();
window.scrollTo(0, 100);
assert_not_equals(window.eventSender, undefined, 'This test requires eventSender');
eventSender.keyDown('T');
eventSender.keyDown('E');
eventSender.keyDown('S');
eventSender.keyDown('T');
const sticky_position = window.scrollY;
// The reference element is vertically in the position the sticky element would be if
// it were not shifted by its sticky position offset.
// We can use this to determine where the browser should scroll to move this unshifted
// input into view per spec.
var reference = document.getElementById('reference');
reference.focus();
window.scrollTo(0, 100);
eventSender.keyDown('T');
eventSender.keyDown('E');
eventSender.keyDown('S');
eventSender.keyDown('T');
assert_equals(sticky_position, window.scrollY);
}, 'Type in the onscreen sticky input box should reset the scroll to unshifted position.');
</script>