Bug 1479642: Make Windows XULMenuitemAccessibleWrap::Name const so it overrides AccessibleWrap::Name. r?surkov
This again exposes the accelerator (e.g. Ctrl+T for New Tab) for menu items via IAccessible::accName on windows.
Bug 1438193 made Accessible::Name const.
On Windows, XULMenuitemAccessibleWrap::Name is overridden to append the accelerator to the name.
Unfortunately, this override was missed when converting Name to const (and wasn't a compile error because it didn't use the override keyword).
As such, this override stopped being called; we always called the const version, since that's the one inherited into AccessibleWrap.
Making this const causes this override to be called.
MozReview-Commit-ID: 7Gb199mzhHa
--- a/accessible/windows/msaa/XULMenuAccessibleWrap.cpp
+++ b/accessible/windows/msaa/XULMenuAccessibleWrap.cpp
@@ -14,17 +14,17 @@ using namespace mozilla::a11y;
XULMenuitemAccessibleWrap::
XULMenuitemAccessibleWrap(nsIContent* aContent, DocAccessible* aDoc) :
XULMenuitemAccessible(aContent, aDoc)
{
}
ENameValueFlag
-XULMenuitemAccessibleWrap::Name(nsString& aName)
+XULMenuitemAccessibleWrap::Name(nsString& aName) const
{
// XXX This should be done in MSAA's get_accName() so that Accessible::Name()]
// provides the same results on all platforms
XULMenuitemAccessible::Name(aName);
if (aName.IsEmpty())
return eNameOK;
nsAutoString accel;
--- a/accessible/windows/msaa/XULMenuAccessibleWrap.h
+++ b/accessible/windows/msaa/XULMenuAccessibleWrap.h
@@ -13,15 +13,15 @@ namespace a11y {
class XULMenuitemAccessibleWrap : public XULMenuitemAccessible
{
public:
XULMenuitemAccessibleWrap(nsIContent* aContent, DocAccessible* aDoc);
virtual ~XULMenuitemAccessibleWrap() {}
// nsIAccessible
- virtual mozilla::a11y::ENameValueFlag Name(nsString& aName);
+ virtual mozilla::a11y::ENameValueFlag Name(nsString& aName) const override;
};
} // namespace a11y
} // namespace mozilla
#endif