Bug 1587104 - do not pick up accessible name from containing XUL toolbaritem r=Jamie

Differential Revision: https://phabricator.services.mozilla.com/D48581

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Alexander Surkov 2019-10-09 00:09:47 +00:00
Родитель bf1179ad8a
Коммит 9dc56a5bf5
4 изменённых файлов: 2 добавлений и 112 удалений

Просмотреть файл

@ -809,32 +809,6 @@ void Accessible::XULElmName(DocAccessible* aDocument, nsIContent* aElm,
}
aName.CompressWhitespace();
if (!aName.IsEmpty()) return;
// Can get text from title of <toolbaritem> if we're a child of a
// <toolbaritem>
nsIContent* bindingParent = aElm->GetBindingParent();
nsIContent* parent =
bindingParent ? bindingParent->GetParent() : aElm->GetParent();
nsAutoString ancestorTitle;
while (parent) {
if (parent->IsXULElement(nsGkAtoms::toolbaritem) &&
parent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::title,
ancestorTitle)) {
// Before returning this, check if the element itself has a tooltip:
if (aElm->IsElement() &&
aElm->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::tooltiptext,
aName)) {
aName.CompressWhitespace();
return;
}
aName.Assign(ancestorTitle);
aName.CompressWhitespace();
return;
}
parent = parent->GetParent();
}
}
nsresult Accessible::HandleAccEvent(AccEvent* aEvent) {

Просмотреть файл

@ -18,5 +18,4 @@ skip-if = (os == 'linux' && !debug) || (verify && !debug && (os == 'win')) # Bug
[test_markup.html]
skip-if = (debug && os == 'win') # Bug 1296784
[test_svg.html]
[test_toolbaritem.xul]
[test_tree.xul]

Просмотреть файл

@ -145,10 +145,10 @@
// Name from the @title attribute of <toolbaritem/> (original bug 237249).
// Direct child of toolbaritem.
var toolbarItemChildAcc = testName("toolbaritem_child", "ooospspss");
var toolbarItemChildAcc = testName("toolbaritem_child", null);
// Child from subtree of toolbaritem.
testName("toolbaritem_hboxbutton", "ooospspss");
testName("toolbaritem_hboxbutton", "button");
//////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -1,83 +0,0 @@
<?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 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>