gecko/accessible/tests/mochitest/test_nsIAccessibleHyperText.html

111 lines
3.7 KiB
HTML

<!DOCTYPE html>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=428248
-->
<head>
<title>nsIHyper>TextAccessible chrome tests</title>
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
<script type="application/javascript"
src="chrome://mochikit/content/MochiKit/packed.js"></script>
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript"
src="chrome://mochikit/content/a11y/accessible/common.js"></script>
<script type="application/javascript">
var gParagraphAcc;
function testThis(aID, aCharIndex, aExpectedLinkIndex, aName)
{
is(gParagraphAcc.getLinkIndex(aCharIndex), aExpectedLinkIndex,
"Wrong link index for ID " + aID + "!");
var linkAcc = null;
try {
linkAcc = gParagraphAcc.getLink(aExpectedLinkIndex);
} catch(e) { }
ok(linkAcc, "No accessible for link " + aID + "!");
// Just test the link's name to make sure we get the right one.
is(linkAcc.getAnchor(0).name, aName, "Wrong name for " + aID + "!");
}
function doTest()
{
gParagraphAcc = getAccessible("testParagraph", [nsIAccessibleHyperText]);
// Test link count
is(gParagraphAcc.linkCount, 7, "Wrong link count for paragraph!");
// normal hyperlink
testThis("NormalHyperlink", 14, 0, "Mozilla Foundation");
// ARIA hyperlink
testThis("AriaHyperlink", 28, 1, "Mozilla Foundation Home");
// ARIA hyperlink with status invalid
testThis("InvalidAriaHyperlink", 64, 2, "Invalid link");
// image map, but not its link children. They are not part of hypertext.
testThis("imgmap", 78, 3, "b");
// empty hyperlink
testThis("emptyLink", 93, 4, null);
// normal hyperlink with embedded span
testThis("LinkWithSpan", 119, 5, "Heise Online");
// Named anchor
testThis("namedAnchor", 197, 6, "This should never be of state_linked");
SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
addLoadEvent(doTest);
</script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=418368">Mozilla Bug 418368</a>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test">
</pre>
<p id="testParagraph">
<br>Simple link:<br>
<a id="NormalHyperlink" href="http://www.mozilla.org">Mozilla Foundation</a>
<br>ARIA link:<br>
<span id="AriaHyperlink" role="link"
onclick="window.open('http://www.mozilla.org/');"
tabindex="0">Mozilla Foundation Home</span>
<br>Invalid, non-focusable hyperlink:<br>
<span id="InvalidAriaHyperlink" role="link" aria-invalid="true"
onclick="window.open('http:/www.mozilla.org/');">Invalid link</span>
<br>Image map:<br>
<map name="atoz_map">
<area href="http://www.bbc.co.uk/radio4/atoz/index.shtml#b"
coords="17,0,30,14"
alt="b"
shape="rect"></area>
<area href="http://www.bbc.co.uk/radio4/atoz/index.shtml#a"
coords="0,0,13,14"
alt="a"
shape="rect"></area>
</map>
<img width="447" id="imgmap"
height="15"
usemap="#atoz_map"
src="letters.gif"></img>
<br>Empty link:<br>
<a id="emptyLink" href=""><img src=""></img></a>
<br>Link with embedded span<br>
<a id="LinkWithSpan" href="http://www.heise.de/"><span lang="de">Heise Online</span></a>
<br>Named anchor, must not have "linked" state for it to be exposed correctly:<br>
<a id="namedAnchor" name="named_anchor">This should never be of state_linked</a>
</p>
</body>
</html>