Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- Manifest: accessible/tests/mochitest/a11y.toml
<html>
<head>
<title>nsIAccessible::description tests</title>
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
<script type="application/javascript"
src="common.js"></script>
<script type="application/javascript"
src="name.js"></script>
<script type="application/javascript">
function doTest() {
// Description from aria-describedby attribute
testDescr("img1", "aria description");
// No description from @title attribute because it is used to generate
// name.
testDescr("img2", "");
// Description from @title attribute, name is generated from @alt
// attribute.
testDescr("img3", "description");
// No description from aria-describedby since it is the same as the
// @alt attribute which is used as the name
testDescr("img4", "");
// No description from @title attribute since it is the same as the
// @alt attribute which is used as the name
testDescr("img5", "");
// Description from content of h2.
testDescr("p", "heading");
// Description from aria-description attribute
testDescr("p2", "I describe");
// Description from contents of h2 when both aria-describedby and
// aria-description are present
testDescr("p3", "heading");
// From table summary (caption is used as a name)
testDescr("table1", "summary");
// Empty (summary is used as a name)
testDescr("table2", "");
// From title (summary is used as a name)
testDescr("table3", "title");
// No description from <desc> element since it is the same as the
// <title> element.
testDescr("svg", "");
// role="alert" referenced by aria-describedby should include subtree.
testDescr("inputDescribedByAlert", "Error");
SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
addA11yLoadEvent(doTest);
</script>
</head>
<body>
<a target="_blank"
title="@title attribute no longer exposed on accDescription">
</a>
<a target="_blank"
title="summary attribute content mapped to accessible name in MSAA">
</a>
<a target="_blank"
title="Ensure that accDescription never duplicates AccessibleName">
</a>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test">
</pre>
<p id="description">aria description</p>
<img id="img1" aria-describedby="description" />
<img id="img2" title="title" />
<img id="img3" alt="name" title="description" />
<img id="img4" alt="aria description" aria-describedby="description">
<img id="img5" alt="image" title="image">
<h2 id="heading">heading</h2>
<p id="p" aria-describedby="heading" role="button">click me</p>
<p id="p2" aria-description="I describe" role="button">click me</p>
<p id="p3" aria-description="I do not describe" aria-describedby="heading" role="button">click me</p>
<table id="table1" summary="summary">
<caption>caption</caption>
<tr><td>cell</td></tr>
</table>
<table id="table2" summary="summary">
<tr><td>cell</td></tr>
</table>
<table id="table3" summary="summary" title="title">
<tr><td>cell</td></tr>
</table>
viewBox="0 0 100 100" preserveAspectRatio="xMidYMid slice"
id="svg"
style="width:100px; height:100px;">
<title>SVG Image</title>
<desc>SVG Image</desc>
<linearGradient id="gradient">
<stop class="begin" offset="0%"/>
<stop class="end" offset="100%"/>
</linearGradient>
<rect x="0" y="0" width="100" height="100" style="fill:url(#gradient)" />
<circle cx="50" cy="50" r="30" style="fill:url(#gradient)" />
</svg>
<div id="alert" role="alert">Error</div>
<input type="text" id="inputDescribedByAlert" aria-describedby="alert">
</body>
</html>