зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1703169: Support XUL buttons labelled by text children. r=morgan
Previously, text children were excluded from the a11y tree, so they weren't considered when computing name from subtree. Differential Revision: https://phabricator.services.mozilla.com/D111029
This commit is contained in:
Родитель
cc19c08fbf
Коммит
1e3921cd84
|
@ -131,6 +131,9 @@
|
||||||
// children.
|
// children.
|
||||||
testName("box_children", "14");
|
testName("box_children", "14");
|
||||||
|
|
||||||
|
// Button labelled by a text child.
|
||||||
|
testName("button_text", "Text");
|
||||||
|
|
||||||
// ARIA role option is presented allowing the name calculation from
|
// ARIA role option is presented allowing the name calculation from
|
||||||
// the visible children (bug 443081)
|
// the visible children (bug 443081)
|
||||||
testName("lb_opt1_children_hidden", "i am visible");
|
testName("lb_opt1_children_hidden", "i am visible");
|
||||||
|
@ -299,6 +302,7 @@
|
||||||
|
|
||||||
<!-- name from children -->
|
<!-- name from children -->
|
||||||
<box id="box_children" role="button">14</box>
|
<box id="box_children" role="button">14</box>
|
||||||
|
<button id="button_text">Text</button>
|
||||||
|
|
||||||
<!-- name from children, hidden children -->
|
<!-- name from children, hidden children -->
|
||||||
<vbox role="listbox" tabindex="0">
|
<vbox role="listbox" tabindex="0">
|
||||||
|
|
|
@ -125,10 +125,16 @@ LocalAccessible* XULButtonAccessible::ContainerWidget() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool XULButtonAccessible::IsAcceptableChild(nsIContent* aEl) const {
|
bool XULButtonAccessible::IsAcceptableChild(nsIContent* aEl) const {
|
||||||
// In general XUL button has not accessible children. Nevertheless menu
|
// In general XUL buttons should not have accessible children. However:
|
||||||
// buttons can have popup accessibles (@type="menu" or columnpicker).
|
return
|
||||||
return aEl->IsXULElement(nsGkAtoms::menupopup) ||
|
// menu buttons can have popup accessibles (@type="menu" or
|
||||||
aEl->IsXULElement(nsGkAtoms::popup);
|
// columnpicker).
|
||||||
|
aEl->IsXULElement(nsGkAtoms::menupopup) ||
|
||||||
|
aEl->IsXULElement(nsGkAtoms::popup) ||
|
||||||
|
// A XUL button can be labelled by a child text node, so we need to allow
|
||||||
|
// that as a child so it will be picked up when computing name from
|
||||||
|
// subtree.
|
||||||
|
aEl->IsText();
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
Загрузка…
Ссылка в новой задаче