128 lines
5.3 KiB
HTML
128 lines
5.3 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/protocol-test.js"></script>
|
|
</head>
|
|
<body onLoad="runTest()">
|
|
|
|
<p>Checking Web Inspector protocol (specifically live region properties) for the Accessibility Node Inspector.</p>
|
|
|
|
<div id="examples">
|
|
|
|
<div class="ex" role="group" aria-live="off" aria-busy="true" aria-atomic="true">off</div>
|
|
<div class="ex" role="group" aria-live="polite" aria-busy="true" aria-atomic="true">polite</div>
|
|
<div class="ex" role="group" aria-live="assertive" aria-busy="true" aria-atomic="true">assertive</div>
|
|
<div class="ex" role="group" aria-live="off" aria-busy="true" aria-atomic="false">off</div>
|
|
<div class="ex" role="group" aria-live="polite" aria-busy="true" aria-atomic="false">polite</div>
|
|
<div class="ex" role="group" aria-live="assertive" aria-busy="true" aria-atomic="false">assertive</div>
|
|
|
|
<div class="ex" role="alert">assertive (default)</div>
|
|
<div class="ex" role="alert" aria-live="off">off</div>
|
|
<div class="ex" role="alert" aria-live="polite">polite</div>
|
|
<div class="ex" role="log">polite (default)</div>
|
|
<div class="ex" role="log" aria-live="assertive">assertive</div>
|
|
<div class="ex" role="log" aria-live="off">off</div>
|
|
<div class="ex" role="marquee">off (default)</div>
|
|
<div class="ex" role="status">polite (default)</div>
|
|
<div class="ex" role="status" aria-live="assertive">assertive</div>
|
|
<div class="ex" role="status" aria-live="off">off</div>
|
|
<div class="ex" role="timer">off (default)</div>
|
|
|
|
<div class="ex" role="alert">relevant: additions text (implicit)</div>
|
|
<div class="ex" role="alert" aria-relevant="additions text">relevant: additions text (explicit)</div>
|
|
<div class="ex" role="alert" aria-relevant="text additions">relevant: additions text (order should be normalized)</div>
|
|
<div class="ex" role="alert" aria-relevant="additions removals">relevant: additions removals</div>
|
|
<div class="ex" role="alert" aria-relevant="removals text">relevant: removals text</div>
|
|
<div class="ex" role="alert" aria-relevant="removals">relevant: removals</div>
|
|
<div class="ex" role="alert" aria-relevant="text">relevant: text</div>
|
|
<div class="ex" role="alert" aria-relevant="additions">relevant: additions</div>
|
|
<div class="ex" role="alert" aria-relevant="all">relevant: all (explicit)</div>
|
|
<div class="ex" role="alert" aria-relevant="additions removals text">relevant: all (implicit)</div>
|
|
<div class="ex" role="alert" aria-relevant="text additions removals">relevant: all (implicit)</div>
|
|
<div class="ex" role="alert" aria-relevant="text removals additions">relevant: all (implicit)</div>
|
|
<div class="ex" role="alert" aria-relevant="additions removals removals">relevant: additions removals (duplicate)</div>
|
|
<div class="ex" role="alert" aria-relevant="text text">relevant: text (duplicate)</div>
|
|
|
|
</div>
|
|
|
|
<script>
|
|
|
|
function $(id) {
|
|
return document.getElementById(id);
|
|
}
|
|
|
|
function cleanup() {
|
|
// Hide the test element container to avoid irrelevant output diffs on subsequent updates.
|
|
$("examples").style.display = "none";
|
|
}
|
|
|
|
function test() {
|
|
|
|
var examples = [];
|
|
var documentNodeId = null;
|
|
var bodyNodeId = null;
|
|
|
|
function onGotDocument(response) {
|
|
InspectorProtocol.checkForError(response);
|
|
documentNodeId = response.result.root.nodeId;
|
|
InspectorProtocol.sendCommand("DOM.querySelectorAll", {"nodeId": documentNodeId, "selector": ".ex"}, onGotQuerySelectorAll);
|
|
}
|
|
|
|
function onGotQuerySelectorAll(response) {
|
|
InspectorProtocol.checkForError(response);
|
|
examples = response.result.nodeIds;
|
|
ProtocolTest.log("Total elements to be tested: " + examples.length + ".");
|
|
loop();
|
|
}
|
|
|
|
function loop() {
|
|
if (examples.length) {
|
|
InspectorProtocol.sendCommand("DOM.getOuterHTML", {"nodeId": examples[examples.length-1]}, onGotOuterHTML);
|
|
} else {
|
|
finishTest();
|
|
}
|
|
}
|
|
|
|
function onGotOuterHTML(response) {
|
|
InspectorProtocol.checkForError(response);
|
|
var outerHTML = response.result.outerHTML;
|
|
outerHTML = outerHTML.replace(/ class="ex"/g, ""); // remove any duplicated, unnecessary class attributes
|
|
ProtocolTest.log("\n" + outerHTML);
|
|
InspectorProtocol.sendCommand("DOM.getAccessibilityPropertiesForNode", {"nodeId": examples[examples.length-1]}, onGotAccessibilityProperties);
|
|
}
|
|
|
|
function onGotAccessibilityProperties(response) {
|
|
InspectorProtocol.checkForError(response);
|
|
logAccessibilityProperties(response.result.properties);
|
|
examples.pop();
|
|
loop();
|
|
}
|
|
|
|
function logAccessibilityProperties(properties) {
|
|
for (var key in properties) {
|
|
var value = properties[key];
|
|
switch (key){
|
|
case "busy":
|
|
case "exists":
|
|
case "liveRegionAtomic":
|
|
case "liveRegionRelevant":
|
|
case "liveRegionStatus":
|
|
ProtocolTest.log(" " + key + ": " + value);
|
|
break;
|
|
default:
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
|
|
function finishTest() {
|
|
InspectorProtocol.sendCommand("Runtime.evaluate", {"expression": "cleanup()"}, function(){
|
|
ProtocolTest.completeTest();
|
|
});
|
|
}
|
|
|
|
InspectorProtocol.sendCommand("DOM.getDocument", {}, onGotDocument);
|
|
|
|
}
|
|
</script>
|
|
</body>
|
|
</html> |