153 lines
5.1 KiB
HTML
153 lines
5.1 KiB
HTML
<html>
|
|
<head>
|
|
<script>
|
|
var sliderAXObject;
|
|
var thumbAXObject;
|
|
var valueDiv;
|
|
|
|
if (window.testRunner)
|
|
{
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
}
|
|
|
|
function consoleWrite(text)
|
|
{
|
|
document.getElementById("console").innerHTML += text + "<br>";
|
|
}
|
|
|
|
function logResult(success, text)
|
|
{
|
|
if (success)
|
|
consoleWrite(text + " <span style='color:green'>OK<" + "/span>");
|
|
else
|
|
consoleWrite(text + " <span style='color:red'>FAIL<" + "/span>");
|
|
}
|
|
|
|
function testExpected(testFuncString, expected)
|
|
{
|
|
try {
|
|
var observed = eval(testFuncString);
|
|
} catch (ex) {
|
|
consoleWrite(ex);
|
|
return;
|
|
}
|
|
|
|
var success = (observed == expected);
|
|
var msg = msg = "EXPECTED (<em>" + testFuncString + " </em> == '<em>" + expected + "</em>')";
|
|
if (!success)
|
|
msg += ", OBSERVED '<em>" + observed + "</em>'";
|
|
logResult(success, msg);
|
|
}
|
|
|
|
function run(testFuncString)
|
|
{
|
|
consoleWrite("RUN(" + testFuncString + ")");
|
|
try {
|
|
eval(testFuncString);
|
|
} catch (ex) {
|
|
consoleWrite(ex);
|
|
}
|
|
}
|
|
|
|
function testRanges(min, max)
|
|
{
|
|
testExpected("sliderAXObject.minValue", min);
|
|
testExpected("sliderAXObject.maxValue", max);
|
|
}
|
|
|
|
function testValues(oldValue, direction)
|
|
{
|
|
// increment and decrement change by 5% of the slider's range
|
|
var range = sliderInput.getAttribute('max') - sliderInput.getAttribute('min');
|
|
var expected = direction * range * 0.05 + (oldValue * 1);
|
|
testExpected("sliderInput.value", expected);
|
|
testExpected("valueDiv.innerText", expected);
|
|
}
|
|
|
|
function testIncrement()
|
|
{
|
|
var oldValue = sliderInput.value;
|
|
run("sliderAXObject.increment()");
|
|
testValues(oldValue, 1)
|
|
}
|
|
|
|
function testDecrement()
|
|
{
|
|
var oldValue = sliderInput.value;
|
|
run("sliderAXObject.decrement()");
|
|
testValues(oldValue, -1)
|
|
}
|
|
|
|
function test()
|
|
{
|
|
if (!window.accessibilityController)
|
|
return;
|
|
|
|
var oldValue;
|
|
var newValue;
|
|
|
|
valueDiv = document.getElementById("val");
|
|
sliderInput = document.getElementById("slider");
|
|
|
|
sliderInput.focus();
|
|
|
|
consoleWrite("** Test slider accessibility attributes");
|
|
run("sliderAXObject = accessibilityController.focusedElement");
|
|
testRanges(0, 100);
|
|
testExpected("sliderAXObject.childrenCount", 1);
|
|
testExpected("sliderAXObject.role", "AXRole: AXSlider");
|
|
|
|
consoleWrite("");
|
|
consoleWrite("** Test thumb accessibility attributes");
|
|
run("thumbAXObject = sliderAXObject.childAtIndex(0)");
|
|
testExpected("thumbAXObject.childrenCount", 0);
|
|
consoleWrite("thumbAXObject.role = " + thumbAXObject.role);
|
|
testExpected("thumbAXObject.role", "AXRole: AXValueIndicator");
|
|
|
|
consoleWrite("");
|
|
consoleWrite("** Increment the slider, test slider value and div set on 'update' event");
|
|
testIncrement();
|
|
|
|
consoleWrite("");
|
|
consoleWrite("** Decrement the slider, test slider value and div set on 'update' event");
|
|
run("sliderInput.value = 22");
|
|
testDecrement();
|
|
|
|
consoleWrite("");
|
|
consoleWrite("** Change slider range");
|
|
run("sliderInput.setAttribute('max', 1000)");
|
|
run("sliderInput.setAttribute('min', 500)");
|
|
testRanges(500, 1000);
|
|
|
|
consoleWrite("");
|
|
consoleWrite("** Re-test incrementing the slider");
|
|
run("sliderInput.value = 600");
|
|
testIncrement();
|
|
|
|
consoleWrite("");
|
|
consoleWrite("** Re-test decrementing the slider");
|
|
run("sliderInput.value = 850");
|
|
testDecrement();
|
|
|
|
testRunner.notifyDone();
|
|
}
|
|
|
|
function update(obj)
|
|
{
|
|
document.getElementById('val').innerText = obj.value;
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="test()">
|
|
|
|
<input type=range min=0 max=100 value=50 id=slider onchange="update(this)" >
|
|
<span id=val>50</span>
|
|
|
|
<br><br><br><br>
|
|
<div id=console></div>
|
|
|
|
</body>
|
|
</html>
|