73 lines
1.8 KiB
HTML
73 lines
1.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body id="body">
|
|
<script src="../resources/js-test-pre.js"></script>
|
|
<div id="content">
|
|
|
|
<div id="test" data="some data">
|
|
|
|
</div>
|
|
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
|
|
description("This tests ARIA IDL Attribute Reflection.");
|
|
|
|
var element = document.getElementById("test");
|
|
var data = element.getAttribute("data");
|
|
var otherData = "other data";
|
|
var currentProperty;
|
|
var currentAttribute;
|
|
|
|
function testElement() {
|
|
currentAttribute = currentProperty.replace("aria", "aria-").toLowerCase();
|
|
|
|
debug("\nTest " + currentProperty + " < - > " + currentAttribute);
|
|
shouldBeNull("element[currentProperty]");
|
|
shouldBeNull("element.getAttribute(currentAttribute)");
|
|
|
|
// Set the property value
|
|
debug("element[\"" + currentProperty + "\"] = data;");
|
|
element[currentProperty] = data;
|
|
shouldBe("element.getAttribute(currentAttribute)", "data");
|
|
|
|
// Set the attribute value
|
|
debug("element.setAttribute(\"" + currentAttribute + "\", otherData);");
|
|
element.setAttribute(currentAttribute, otherData);
|
|
shouldBe("element[currentProperty]", "otherData");
|
|
}
|
|
|
|
function testRole() {
|
|
currentProperty = "role";
|
|
testElement();
|
|
}
|
|
|
|
if (window.accessibilityController) {
|
|
|
|
testRole();
|
|
|
|
// There are 46 ARIA attributes in total.
|
|
var count = 0;
|
|
for (var propertyName in element) {
|
|
if (propertyName.startsWith("aria")) {
|
|
currentProperty = propertyName;
|
|
testElement();
|
|
count++;
|
|
}
|
|
}
|
|
|
|
debug("\n");
|
|
shouldBe("count", "38");
|
|
|
|
} else {
|
|
testFailed("Could not load accessibility controller");
|
|
}
|
|
|
|
</script>
|
|
|
|
<script src="../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|