74 lines
2.5 KiB
HTML
74 lines
2.5 KiB
HTML
<!DOCTYPE html>
|
|
<head>
|
|
<script src="../resources/js-test.js"></script>
|
|
</head>
|
|
<body>
|
|
|
|
<p id="description"></p>
|
|
|
|
<div id="container" style="height: 100px; overflow: scroll">
|
|
<button id="upper_target">Upper Target</button>
|
|
<div style="border: 1px solid #000; height: 5000px;">5000-pixel box</div>
|
|
<button id="lower_target">Lower Target</button>
|
|
</div>
|
|
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
description("Tests that scrolling to make an element visible successfully scrolls an arbitrary HTML element that has CSS overflow set to 'scroll'.");
|
|
|
|
function runTest() {
|
|
window.container = document.getElementById("container");
|
|
var upperTarget = document.getElementById("upper_target");
|
|
var lowerTarget = document.getElementById("lower_target");
|
|
|
|
var lowerTargetAccessibleObject;
|
|
var upperTargetAccessibleObject;
|
|
if (window.accessibilityController) {
|
|
lowerTarget.focus();
|
|
lowerTargetAccessibleObject = accessibilityController.focusedElement;
|
|
upperTarget.focus();
|
|
upperTargetAccessibleObject = accessibilityController.focusedElement;
|
|
}
|
|
|
|
// Reset the initial scroll position (since calling focus() can scroll the page too).
|
|
container.scrollTop = 0;
|
|
shouldBeZero("container.scrollTop");
|
|
|
|
// Scroll to make lower target visible and check.
|
|
if (window.accessibilityController)
|
|
lowerTargetAccessibleObject.scrollToMakeVisible();
|
|
var top = lowerTarget.offsetTop - container.offsetTop;
|
|
window.minYOffset = top + lowerTarget.offsetHeight - container.offsetHeight;
|
|
window.maxYOffset = top;
|
|
shouldBeTrue("container.scrollTop >= minYOffset");
|
|
shouldBeTrue("container.scrollTop <= maxYOffset");
|
|
|
|
// Do it again. It shouldn't scroll.
|
|
if (window.accessibilityController)
|
|
lowerTargetAccessibleObject.scrollToMakeVisible();
|
|
var top = lowerTarget.offsetTop - container.offsetTop;
|
|
window.minYOffset = top + lowerTarget.offsetHeight - container.offsetHeight;
|
|
window.maxYOffset = top;
|
|
shouldBeTrue("container.scrollTop >= minYOffset");
|
|
shouldBeTrue("container.scrollTop <= maxYOffset");
|
|
|
|
// Scroll to make upper target visible and check.
|
|
if (window.accessibilityController)
|
|
upperTargetAccessibleObject.scrollToMakeVisible();
|
|
top = upperTarget.offsetTop - container.offsetTop;
|
|
window.minYOffset = top + upperTarget.offsetHeight - container.offsetHeight;
|
|
window.maxYOffset = top;
|
|
shouldBe("container.scrollTop >= minYOffset", "true");
|
|
shouldBe("container.scrollTop <= maxYOffset", "true");
|
|
|
|
finishJSTest();
|
|
}
|
|
|
|
runTest();
|
|
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|