80 lines
3.7 KiB
HTML
80 lines
3.7 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<ruby id="rubyElemId">
|
|
<rb>basetext</rb>
|
|
<rp>(</rp>
|
|
<rt>rubytext</rt>
|
|
<rp>)</rp>
|
|
</ruby>
|
|
|
|
<script>
|
|
if (window.accessibilityController) {
|
|
description("This tests that the ruby containers are exposed with the appropriate hierarchy and roles.")
|
|
// At the moment, this is implemented only for OSX.
|
|
var platform = accessibilityController.platformName;
|
|
if ("mac" == platform) {
|
|
// Expected values for roles and subroles.
|
|
var expectedRubyRole = "AXRole: AXGroup"; // all ruby containers have AXGroup role
|
|
var expectedRubyInlineSubrole = "AXSubrole: AXRubyInline";
|
|
var expectedRubyBlockSubrole = "AXSubrole: AXRubyBlock";
|
|
var expectedRubyRunSubrole = "AXSubrole: AXRubyRun";
|
|
var expectedRubyTextSubrole = "AXSubrole: AXRubyText";
|
|
var expectedRubyBaseSubrole = "AXSubrole: AXRubyBase";
|
|
|
|
// Try inline style first, block style second
|
|
var rubyElem = document.getElementById("rubyElemId");
|
|
shouldBeTrue("rubyElem != null");
|
|
rubyElem.style.display = "inline";
|
|
checkHierarchyAndRoles(rubyElem);
|
|
|
|
rubyElem.style.display = "block";
|
|
checkHierarchyAndRoles(rubyElem);
|
|
|
|
function checkHierarchyAndRoles(rubyElem) {
|
|
axRuby = window.accessibilityController.accessibleElementById("rubyElemId");
|
|
shouldBeTrue("axRuby != null");
|
|
role = axRuby.role;
|
|
subrole = axRuby.subrole;
|
|
shouldBe("role", "expectedRubyRole");
|
|
if (rubyElem.style.display == "inline") {
|
|
shouldBe("subrole", "expectedRubyInlineSubrole");
|
|
}
|
|
else {
|
|
shouldBe("subrole", "expectedRubyBlockSubrole");
|
|
}
|
|
|
|
// RubyRun
|
|
axRubyRun = axRuby.childAtIndex(0);
|
|
shouldBeTrue("axRubyRun != null");
|
|
role = axRubyRun.role;
|
|
subrole = axRubyRun.subrole;
|
|
shouldBe("role", "expectedRubyRole");
|
|
shouldBe("subrole", "expectedRubyRunSubrole");
|
|
|
|
// RubyText
|
|
axRubyText = axRubyRun.childAtIndex(0);
|
|
shouldBeTrue("axRubyText != null");
|
|
role = axRubyText.role;
|
|
subrole = axRubyText.subrole;
|
|
shouldBe("role", "expectedRubyRole");
|
|
shouldBe("subrole", "expectedRubyTextSubrole");
|
|
|
|
// RubyBase
|
|
axRubyBase = axRubyRun.childAtIndex(1);
|
|
shouldBeTrue("axRubyBase != null");
|
|
role = axRubyBase.role;
|
|
subrole = axRubyBase.subrole;
|
|
shouldBe("role", "expectedRubyRole");
|
|
shouldBe("subrole", "expectedRubyBaseSubrole");
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|