mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 1216478 - prefer tooltiptext on a XUL element over title attribute on a containing toolbaritem when determining accessible name, r=surkov
MozReview-Commit-ID: Cv0Kl5U02jy --HG-- extra : rebase_source : 40ff881eabb42579a25e22c6c290ce3c5d0e7634
This commit is contained in:
parent
8657691921
commit
af8ae4ede1
@ -821,9 +821,17 @@ Accessible::XULElmName(DocAccessible* aDocument,
|
||||
nsIContent *bindingParent = aElm->GetBindingParent();
|
||||
nsIContent* parent =
|
||||
bindingParent? bindingParent->GetParent() : aElm->GetParent();
|
||||
nsAutoString ancestorTitle;
|
||||
while (parent) {
|
||||
if (parent->IsXULElement(nsGkAtoms::toolbaritem) &&
|
||||
parent->GetAttr(kNameSpaceID_None, nsGkAtoms::title, aName)) {
|
||||
parent->GetAttr(kNameSpaceID_None, nsGkAtoms::title, ancestorTitle)) {
|
||||
// Before returning this, check if the element itself has a tooltip:
|
||||
if (aElm->GetAttr(kNameSpaceID_None, nsGkAtoms::tooltiptext, aName)) {
|
||||
aName.CompressWhitespace();
|
||||
return;
|
||||
}
|
||||
|
||||
aName.Assign(ancestorTitle);
|
||||
aName.CompressWhitespace();
|
||||
return;
|
||||
}
|
||||
|
@ -13,4 +13,5 @@ support-files =
|
||||
[test_list.html]
|
||||
[test_markup.html]
|
||||
[test_svg.html]
|
||||
[test_toolbaritem.xul]
|
||||
[test_tree.xul]
|
||||
|
84
accessible/tests/mochitest/name/test_toolbaritem.xul
Normal file
84
accessible/tests/mochitest/name/test_toolbaritem.xul
Normal file
@ -0,0 +1,84 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
|
||||
type="text/css"?>
|
||||
<?xml-stylesheet href="general.css"
|
||||
type="text/css"?>
|
||||
|
||||
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
title="Accessibility Name Calculating Test.">
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
|
||||
|
||||
<script type="application/javascript"
|
||||
src="../common.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../role.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../name.js"></script>
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
var gQueue = null;
|
||||
function doTest() {
|
||||
let ids = [];
|
||||
for (let item of ["button", "textbox"]) {
|
||||
ids.push(item + "withtooltip");
|
||||
ids.push(item + "withouttooltip");
|
||||
ids.push("nested" + item + "withtooltip");
|
||||
ids.push("nested" + item + "withouttooltip");
|
||||
}
|
||||
|
||||
for (let id of ids) {
|
||||
if (id.endsWith("withtooltip")) {
|
||||
testName(id, id, id + " should have individual name from its tooltip - ");
|
||||
} else {
|
||||
testName(id, "Toolbaritem title", id + " should have toolbaritem's title for a name - ");
|
||||
}
|
||||
}
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addA11yLoadEvent(doTest);
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<hbox flex="1" style="overflow: auto;">
|
||||
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a target="_blank"
|
||||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1216478"
|
||||
title="Items with tooltips inside items with a label should use their own tooltip as an accessible name, not the ancestor's label">
|
||||
Mozilla Bug 1216478
|
||||
</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
</div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
</body>
|
||||
|
||||
<vbox flex="1">
|
||||
<toolbox>
|
||||
<toolbar>
|
||||
<toolbaritem title="Toolbaritem title">
|
||||
<toolbarbutton id="buttonwithtooltip" tooltiptext="buttonwithtooltip"/>
|
||||
<toolbarbutton id="buttonwithouttooltip"/>
|
||||
<textbox id="textboxwithtooltip" tooltiptext="textboxwithtooltip"/>
|
||||
<textbox id="textboxwithouttooltip"/>
|
||||
<vbox>
|
||||
<toolbarbutton id="nestedbuttonwithtooltip" tooltiptext="nestedbuttonwithtooltip"/>
|
||||
<toolbarbutton id="nestedbuttonwithouttooltip"/>
|
||||
<textbox id="nestedtextboxwithtooltip" tooltiptext="nestedtextboxwithtooltip"/>
|
||||
<textbox id="nestedtextboxwithouttooltip"/>
|
||||
</vbox>
|
||||
</toolbaritem>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
|
||||
|
||||
</vbox> <!-- close tests area -->
|
||||
</hbox> <!-- close main area -->
|
||||
</window>
|
Loading…
Reference in New Issue
Block a user