Bug 1439761 - Move XBL accessibility role="xul:textbox" and role="xul:combobox" into XULMap.h
MozReview-Commit-ID: uKaDb2QafK
--- a/accessible/base/XULMap.h
+++ b/accessible/base/XULMap.h
@@ -89,16 +89,29 @@ XULMAP(
XULMAP(
popup,
[](nsIContent* aContent, Accessible* aContext) {
return CreateMenupopupAccessible(aContent, aContext);
}
)
XULMAP(
+ textbox,
+ [](nsIContent* aContent, Accessible* aContext) -> Accessible* {
+ if (aContent->IsElement() &&
+ aContent->AsElement()->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type,
+ nsGkAtoms::autocomplete, eIgnoreCase)) {
+ return new XULComboboxAccessible(aContent, aContext->Document());
+ }
+
+ return new EnumRoleAccessible<roles::SECTION>(aContent, aContext->Document());
+ }
+)
+
+XULMAP(
thumb,
[](nsIContent* aContent, Accessible* aContext) -> Accessible* {
if (aContent->IsElement() &&
aContent->AsElement()->ClassList()->Contains(NS_LITERAL_STRING("scale-thumb"))) {
return new XULThumbAccessible(aContent, aContext->Document());
}
return nullptr;
}
--- a/accessible/base/nsAccessibilityService.cpp
+++ b/accessible/base/nsAccessibilityService.cpp
@@ -1479,19 +1479,16 @@ nsAccessibilityService::CreateAccessible
#ifdef MOZ_XUL
// XUL controls
if (role.EqualsLiteral("xul:colorpicker")) {
accessible = new XULColorPickerAccessible(aContent, aDoc);
} else if (role.EqualsLiteral("xul:colorpickertile")) {
accessible = new XULColorPickerTileAccessible(aContent, aDoc);
- } else if (role.EqualsLiteral("xul:combobox")) {
- accessible = new XULComboboxAccessible(aContent, aDoc);
-
} else if (role.EqualsLiteral("xul:link")) {
accessible = new XULLinkAccessible(aContent, aDoc);
} else if(role.EqualsLiteral("xul:pane")) {
accessible = new EnumRoleAccessible<roles::PANE>(aContent, aDoc);
} else if (role.EqualsLiteral("xul:panel")) {
if (aContent->IsElement() &&
@@ -1500,19 +1497,16 @@ nsAccessibilityService::CreateAccessible
nsGkAtoms::_true, eCaseMatters))
accessible = new XULAlertAccessible(aContent, aDoc);
else
accessible = new EnumRoleAccessible<roles::PANE>(aContent, aDoc);
} else if (role.EqualsLiteral("xul:text")) {
accessible = new XULLabelAccessible(aContent, aDoc);
- } else if (role.EqualsLiteral("xul:textbox")) {
- accessible = new EnumRoleAccessible<roles::SECTION>(aContent, aDoc);
-
}
#endif // MOZ_XUL
return accessible.forget();
}
already_AddRefed<Accessible>
nsAccessibilityService::CreateAccessibleByFrameType(nsIFrame* aFrame,
--- a/toolkit/content/widgets/autocomplete.xml
+++ b/toolkit/content/widgets/autocomplete.xml
@@ -4,17 +4,17 @@
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<bindings id="autocompleteBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
- <binding id="autocomplete" role="xul:combobox"
+ <binding id="autocomplete"
extends="chrome://global/content/bindings/textbox.xml#textbox">
<resources>
<stylesheet src="chrome://global/content/autocomplete.css"/>
<stylesheet src="chrome://global/skin/autocomplete.css"/>
</resources>
<content sizetopopup="pref">
<children includes="image|deck|stack|box"/>
--- a/toolkit/content/widgets/textbox.xml
+++ b/toolkit/content/widgets/textbox.xml
@@ -13,17 +13,17 @@
]>
<bindings id="textboxBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
- <binding id="textbox" extends="xul:box" role="xul:textbox">
+ <binding id="textbox" extends="xul:box">
<resources>
<stylesheet src="chrome://global/content/textbox.css"/>
<stylesheet src="chrome://global/skin/textbox.css"/>
</resources>
<content>
<children/>
<xul:hbox class="textbox-input-box" flex="1" xbl:inherits="context,spellcheck">