75 lines
2.2 KiB
HTML
75 lines
2.2 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<body>
|
|
<script src="../resources/js-test-pre.js"></script>
|
|
<script src="../resources/accessibility-helper.js"></script>
|
|
|
|
<img tabindex="0" id="svg-image" alt="interactive SVG" >
|
|
|
|
<div id="console"></div>
|
|
<script>
|
|
|
|
description("This test ensures that accessibility elements can be created out of what a remote SVG image defines.")
|
|
window.jsTestIsAsync = true;
|
|
|
|
// Return the page's relative coordinates. If we rely on the x() or y() of the accessibility object, then
|
|
// accessibility transforms are applied that fail because there is no window available
|
|
function pageX(element) {
|
|
return element.clickPointX - element.width/2;
|
|
}
|
|
|
|
function pageY(element) {
|
|
return element.clickPointY - element.height/2;
|
|
}
|
|
|
|
function runAXTest() {
|
|
var container = accessibilityController.accessibleElementById("svg-image");
|
|
|
|
var x = pageX(container) - 1;
|
|
var y = pageY(container) - 1;
|
|
|
|
debug("container location: (" + x + ", " + y + ")");
|
|
|
|
var face = container.childAtIndex(0);
|
|
debug('Face role: ' + face.role);
|
|
debug('Face label: ' + platformValueForW3CName(face, true));
|
|
debug('FaceX: ' + (pageX(face) - x));
|
|
debug('FaceY: ' + Math.abs(pageY(face) - y));
|
|
debug('<br>');
|
|
|
|
var eye = container.childAtIndex(1);
|
|
debug('Eye role: ' + eye.role);
|
|
debug('Eye label: ' + platformValueForW3CName(eye, true));
|
|
debug('EyeX: ' + (pageX(eye) - x));
|
|
debug('EyeY: ' + Math.abs(pageY(eye) - y));
|
|
debug('<br>');
|
|
|
|
var nose = container.childAtIndex(3);
|
|
debug('Nose role: ' + nose.role);
|
|
debug('Nose label: ' + platformValueForW3CName(nose, true));
|
|
debug('NoseX: ' + (pageX(nose) - x));
|
|
debug('NoseY: ' + Math.abs(pageY(nose) - y));
|
|
debug('<br>');
|
|
|
|
var mouth = container.childAtIndex(4);
|
|
debug('Mouth role: ' + mouth.role);
|
|
debug('Mouth label: ' + platformValueForW3CName(mouth, true));
|
|
debug('MouthX: ' + (pageX(mouth) - x));
|
|
debug('MouthY: ' + Math.floor(Math.abs(pageY(mouth) - y)));
|
|
debug('<br>');
|
|
|
|
finishJSTest();
|
|
}
|
|
|
|
if (window.accessibilityController) {
|
|
document.getElementById("svg-image").addEventListener("load", runAXTest);
|
|
}
|
|
document.getElementById("svg-image").src = "resources/svg-face.svg";
|
|
|
|
</script>
|
|
|
|
<script src="../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|
|
|