blob: d9539a2b19adf9da1c111db8ed1577736c19d905 [file] [log] [blame] [edit]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test.js"></script>
<script src="../resources/accessibility-helper.js"></script>
</head>
<body>
<div id="content">
<!-- N.B. The variety of whitespace chars separating the ids is deliberate -->
<div tabindex="0" id="test" role="group"
aria-flowto="flowto1 flowto2"
aria-owns="owned1 owned2"
aria-controls="controlled1
controlled2"
aria-details="details"
aria-labelledby="label1 label2"
aria-describedby="description1 description2"
aria-invalid="true"
aria-errormessage="error">
</div>
<div id="owned1" role="button">owned 1</div>
<div id="owned2" role="radio">owned 2</div>
<div id="controlled1" role="group" aria-label="controlled 1"></div>
<div id="controlled2" role="group" aria-label="controlled 2"></div>
<p id="label1">label 1</p>
<div id="label2">label 2</div>
<p id="description1">description 1</p>
<div id="description2">description 2</div>
<div tabindex="0" id="flowto1" role="group" aria-label="next group (1 of 2)" aria-describedby="description1"></div>
<div tabindex="0" id="flowto2" role="group" aria-label="next group (2 of 2)" aria-describedby="description2"></div>
<div id="details">Detailed descriptive information.</div>
<div id="error">Information about the error.</div>
</div>
<script>
let output = "This verifies the exposure of aria-properties via accessible relations.\n\n";
if (window.accessibilityController) {
let axElement = accessibilityController.accessibleElementById("test");
var owned = axElement.ariaOwnsElementAtIndex(0);
var owner = owned.ownerElementAtIndex(0);
output += expect("owned.domIdentifier", "'owned1'");
output += expect("owner.domIdentifier", "'test'");
owned = axElement.ariaOwnsElementAtIndex(1);
owner = owned.ownerElementAtIndex(0);
output += expect("owned.domIdentifier", "'owned2'");
output += expect("owner.domIdentifier", "'test'");
var controlled = axElement.ariaControlsElementAtIndex(0);
var controller = controlled.controllerElementAtIndex(0);
output += expect("controlled.domIdentifier", "'controlled1'");
output += expect("controller.domIdentifier", "'test'");
controlled = axElement.ariaControlsElementAtIndex(1);
controller = controlled.controllerElementAtIndex(0);
output += expect("controlled.domIdentifier", "'controlled2'");
output += expect("controller.domIdentifier", "'test'");
var labelledBy = axElement.ariaLabelledByElementAtIndex(0);
var label = labelledBy.labelForElementAtIndex(0);
output += expect("labelledBy.domIdentifier", "'label1'");
output += expect("label.domIdentifier", "'test'");
labelledBy = axElement.ariaLabelledByElementAtIndex(1);
label = labelledBy.labelForElementAtIndex(0);
output += expect("labelledBy.domIdentifier", "'label2'");
output += expect("label.domIdentifier", "'test'");
var description = axElement.ariaDescribedByElementAtIndex(0);
var descriptionFor = description.descriptionForElementAtIndex(0);
var alsoDescriptionFor = description.descriptionForElementAtIndex(1);
output += expect("description.domIdentifier", "'description1'");
output += expect("descriptionFor.domIdentifier", "'test'");
output += expect("alsoDescriptionFor.domIdentifier", "'flowto1'");
description = axElement.ariaDescribedByElementAtIndex(1);
descriptionFor = description.descriptionForElementAtIndex(0);
alsoDescriptionFor = description.descriptionForElementAtIndex(1);
output += expect("description.domIdentifier", "'description2'");
output += expect("descriptionFor.domIdentifier", "'test'");
output += expect("alsoDescriptionFor.domIdentifier", "'flowto2'");
var flowTo = axElement.ariaFlowToElementAtIndex(0);
var flowFrom = flowTo.flowFromElementAtIndex(0);
output += expect("flowTo.domIdentifier", "'flowto1'");
output += expect("flowFrom.domIdentifier", "'test'");
flowTo = axElement.ariaFlowToElementAtIndex(1);
flowFrom = flowTo.flowFromElementAtIndex(0);
output += expect("flowTo.domIdentifier", "'flowto2'");
output += expect("flowFrom.domIdentifier", "'test'");
var details = axElement.ariaDetailsElementAtIndex(0);
var detailsFor = details.detailsForElementAtIndex(0);
output += expect("details.domIdentifier", "'details'");
output += expect("detailsFor.domIdentifier", "'test'");
var error = axElement.ariaErrorMessageElementAtIndex(0);
var errorFor = error.errorMessageForElementAtIndex(0);
output += expect("error.domIdentifier", "'error'");
output += expect("errorFor.domIdentifier", "'test'");
document.getElementById("content").style.visibility = "hidden";
debug(output);
}
</script>
</body>
</html>