Bug 810572, part 3 - merge Accessible::AccessibleTypes with AccTypes, r=tbsaude

This commit is contained in:
Alexander Surkov 2012-12-18 14:22:26 +09:00
parent c0033a480e
commit 29945b3499
35 changed files with 182 additions and 150 deletions

View File

@ -4,15 +4,20 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#pragma once
#ifndef mozilla_a11y_AccTypes_h
#define mozilla_a11y_AccTypes_h
namespace mozilla {
namespace a11y {
/**
* Accessible object types used when creating an accessible based on the frame.
* Accessible object types. Each accessible class can have own type.
*/
enum AccType {
/**
* This set of types is used for accessible creation, keep them together in
* alphabetical order since they are used in switch statement.
*/
eNoType,
eHTMLBRType,
eHTMLButtonType,
@ -36,9 +41,45 @@ enum AccType {
eHyperTextType,
eImageType,
eOuterDocType,
ePlugin,
eTextLeafType
};
}
}
ePluginType,
eTextLeafType,
/**
* Other accessible types.
*/
eApplicationType,
eImageMapType,
eMenuPopupType,
eProgressType,
eRootType,
eXULDeckType,
eXULTreeType,
eLastAccType = eXULTreeType
};
/**
* Generic accessible type, different accessible classes can share the same
* type, the same accessible class can have several types.
*/
enum AccGenericType {
eAutoComplete = 1 << 0,
eAutoCompletePopup = 1 << 1,
eCombobox = 1 << 2,
eDocument = 1 << 3,
eHyperText = 1 << 4,
eList = 1 << 5,
eListControl = 1 << 6,
eMenuButton = 1 << 7,
eSelect = 1 << 8,
eTable = 1 << 9,
eTableCell = 1 << 10,
eTableRow = 1 << 11,
eLastAccGenericType = eTableRow
};
} // namespace a11y
} // namespace mozilla
#endif // mozilla_a11y_AccTypes_h

View File

@ -110,7 +110,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eSortAction,
eNoLiveAttr,
Accessible::eTableCellAccessible,
eTableCell,
kNoReqStates,
eARIASelectable,
eARIAReadonly
@ -144,7 +144,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eNoAction,
eNoLiveAttr,
Accessible::eListAccessible,
eList,
kNoReqStates
},
{ // document
@ -175,7 +175,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eNoAction,
eNoLiveAttr,
Accessible::eSelectAccessible | Accessible::eTableAccessible,
eSelect | eTable,
states::FOCUSABLE,
eARIAMultiSelectable,
eARIAReadonly
@ -187,7 +187,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eNoAction,
eNoLiveAttr,
Accessible::eTableCellAccessible,
eTableCell,
kNoReqStates,
eARIASelectable,
eARIAReadonly
@ -239,7 +239,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eNoAction,
eNoLiveAttr,
Accessible::eListAccessible,
eList,
states::READONLY
},
{ // listbox
@ -249,7 +249,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eNoAction,
eNoLiveAttr,
Accessible::eSelectAccessible,
eSelect,
kNoReqStates,
eARIAMultiSelectable,
eARIAReadonly
@ -429,7 +429,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eNoAction,
eNoLiveAttr,
Accessible::eTableRowAccessible,
eTableRow,
kNoReqStates,
eARIASelectable
},
@ -450,7 +450,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eSortAction,
eNoLiveAttr,
Accessible::eTableCellAccessible,
eTableCell,
kNoReqStates,
eARIASelectable,
eARIAReadonly
@ -529,7 +529,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eNoAction,
ePoliteLiveAttr,
Accessible::eSelectAccessible,
eSelect,
kNoReqStates
},
{ // tabpanel
@ -591,7 +591,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eNoAction,
eNoLiveAttr,
Accessible::eSelectAccessible,
eSelect,
kNoReqStates,
eARIAReadonly,
eARIAMultiSelectable
@ -603,7 +603,7 @@ static nsRoleMapEntry sWAIRoleMaps[] =
eNoValue,
eNoAction,
eNoLiveAttr,
Accessible::eSelectAccessible | Accessible::eTableAccessible,
eSelect | eTable,
kNoReqStates,
eARIAReadonly,
eARIAMultiSelectable

View File

@ -797,14 +797,14 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
if (roleMapEntry) {
// Create pure ARIA grid/treegrid related accessibles if they weren't used
// on accessible HTML table elements.
if ((roleMapEntry->accTypes & Accessible::eTableCellAccessible)) {
if (aContext->IsOfType(Accessible::eTableRowAccessible) &&
if ((roleMapEntry->accTypes & eTableCell)) {
if (aContext->IsTableRow() &&
(frame->AccessibleType() != eHTMLTableCellType ||
aContext->GetContent() != content->GetParent())) {
newAcc = new ARIAGridCellAccessibleWrap(content, document);
}
} else if ((roleMapEntry->accTypes & Accessible::eTableAccessible) &&
} else if ((roleMapEntry->accTypes & eTable) &&
frame->AccessibleType() != eHTMLTableType) {
newAcc = new ARIAGridAccessibleWrap(content, document);
}
@ -824,8 +824,7 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
if (!roleMapEntry && newAcc) {
if (frame->AccessibleType() == eHTMLTableRowType) {
nsRoleMapEntry* contextRoleMap = aContext->ARIARoleMap();
if (contextRoleMap &&
!(contextRoleMap->accTypes & Accessible::eTableAccessible))
if (contextRoleMap && !(contextRoleMap->accTypes & eTable))
roleMapEntry = &nsARIAMap::gEmptyRoleMap;
} else if (frame->AccessibleType() == eHTMLTableCellType &&
@ -837,8 +836,7 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
content->Tag() == nsGkAtoms::dd ||
frame->AccessibleType() == eHTMLLiType) {
nsRoleMapEntry* contextRoleMap = aContext->ARIARoleMap();
if (contextRoleMap &&
!(contextRoleMap->accTypes & Accessible::eListAccessible))
if (contextRoleMap && !(contextRoleMap->accTypes & eList))
roleMapEntry = &nsARIAMap::gEmptyRoleMap;
}
}
@ -1176,7 +1174,7 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsIFrame* aFrame,
Accessible* aContext)
{
DocAccessible* document = aContext->Document();
if (aContext->IsOfType(Accessible::eTableRowAccessible)) {
if (aContext->IsTableRow()) {
if (nsCoreUtils::IsHTMLTableHeader(aContent) &&
aContext->GetContent() == aContent->GetParent()) {
Accessible* accessible = new HTMLTableHeaderCellAccessibleWrap(aContent,
@ -1244,7 +1242,7 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsIFrame* aFrame,
return accessible;
}
if (aContext->IsOfType(Accessible::eListAccessible)) {
if (aContext->IsList()) {
// If list item is a child of accessible list then create an accessible for
// it unconditionally by tag name. nsBlockFrame creates the list item
// accessible for other elements styled as list items.
@ -1318,7 +1316,7 @@ nsAccessibilityService::CreateAccessibleByFrameType(nsIFrame* aFrame,
newAcc = new HTMLCanvasAccessible(aContent, document);
break;
case eHTMLCaptionType:
if (aContext->IsOfType(Accessible::eTableAccessible) &&
if (aContext->IsTable() &&
aContext->GetContent() == aContent->GetParent()) {
newAcc = new HTMLCaptionAccessible(aContent, document);
}
@ -1345,7 +1343,7 @@ nsAccessibilityService::CreateAccessibleByFrameType(nsIFrame* aFrame,
newAcc = new HTMLLabelAccessible(aContent, document);
break;
case eHTMLLiType:
if (aContext->IsOfType(Accessible::eListAccessible) &&
if (aContext->IsList() &&
aContext->GetContent() == aContent->GetParent()) {
newAcc = new HTMLLIAccessible(aContent, document);
}
@ -1364,14 +1362,14 @@ nsAccessibilityService::CreateAccessibleByFrameType(nsIFrame* aFrame,
break;
case eHTMLTableCellType:
// Accessible HTML table cell must be a child of accessible HTML table row.
if (aContext->IsOfType(Accessible::eHTMLTableRowAccessible))
if (aContext->IsHTMLTableRow())
newAcc = new HTMLTableCellAccessibleWrap(aContent, document);
break;
case eHTMLTableRowType: {
// Accessible HTML table row must be a child of tbody/tfoot/thead of
// accessible HTML table or must be a child of accessible of HTML table.
if (aContext->IsOfType(Accessible::eTableAccessible)) {
if (aContext->IsTable()) {
nsIContent* parentContent = aContent->GetParent();
nsIFrame* parentFrame = parentContent->GetPrimaryFrame();
if (parentFrame->GetType() == nsGkAtoms::tableRowGroupFrame) {
@ -1400,7 +1398,7 @@ nsAccessibilityService::CreateAccessibleByFrameType(nsIFrame* aFrame,
case eOuterDocType:
newAcc = new OuterDocAccessible(aContent, document);
break;
case ePlugin: {
case ePluginType: {
nsObjectFrame* objectFrame = do_QueryFrame(aFrame);
newAcc = CreatePluginAccessible(objectFrame, aContent, aContext);
break;

View File

@ -36,7 +36,7 @@ Accessible::SetRoleMapEntry(nsRoleMapEntry* aRoleMapEntry)
{
mRoleMapEntry = aRoleMapEntry;
if (mRoleMapEntry)
mFlags |= mRoleMapEntry->accTypes;
mGenericTypes |= mRoleMapEntry->accTypes;
}
inline bool

View File

@ -73,6 +73,7 @@
#include "nsIDOMCharacterData.h"
#endif
#include "mozilla/Assertions.h"
#include "mozilla/unused.h"
#include "mozilla/Preferences.h"
#include "mozilla/dom/Element.h"
@ -146,7 +147,8 @@ Accessible::QueryInterface(REFNSIID aIID, void** aInstancePtr)
Accessible::Accessible(nsIContent* aContent, DocAccessible* aDoc) :
nsAccessNodeWrap(aContent, aDoc),
mParent(nullptr), mIndexInParent(-1), mChildrenFlags(eChildrenUninitialized),
mStateFlags(0), mFlags(0), mIndexOfEmbeddedChild(-1), mRoleMapEntry(nullptr)
mStateFlags(0), mType(0), mGenericTypes(0), mIndexOfEmbeddedChild(-1),
mRoleMapEntry(nullptr)
{
#ifdef NS_DEBUG_X
{
@ -3175,6 +3177,19 @@ Accessible::GetLevelInternal()
return level;
}
void
Accessible::StaticAsserts() const
{
MOZ_STATIC_ASSERT(eLastChildrenFlag <= (2 << kChildrenFlagsBits) - 1,
"Accessible::mChildrenFlags was oversized by eLastChildrenFlag!");
MOZ_STATIC_ASSERT(eLastStateFlag <= (2 << kStateFlagsBits) - 1,
"Accessible::mStateFlags was oversized by eLastStateFlag!");
MOZ_STATIC_ASSERT(eLastAccType <= (2 << kTypeBits) - 1,
"Accessible::mType was oversized by eLastAccType!");
MOZ_STATIC_ASSERT(eLastAccGenericType <= (2 << kGenericTypesBits) - 1,
"Accessible::mGenericType was oversized by eLastAccGenericType!");
}
////////////////////////////////////////////////////////////////////////////////
// KeyBinding class

View File

@ -6,6 +6,7 @@
#ifndef _Accessible_H_
#define _Accessible_H_
#include "mozilla/a11y/AccTypes.h"
#include "mozilla/a11y/Role.h"
#include "mozilla/a11y/States.h"
#include "nsAccessNodeWrap.h"
@ -465,53 +466,63 @@ public:
(mContent->Tag() == nsGkAtoms::abbr || mContent->Tag() == nsGkAtoms::acronym);
}
inline bool IsApplication() const { return mFlags & eApplicationAccessible; }
bool IsApplication() const { return mType == eApplicationType; }
bool IsAutoComplete() const { return mFlags & eAutoCompleteAccessible; }
bool IsAutoComplete() const { return mGenericTypes & eAutoComplete; }
inline bool IsAutoCompletePopup() const { return mFlags & eAutoCompletePopupAccessible; }
bool IsAutoCompletePopup() const
{ return mGenericTypes & eAutoCompletePopup; }
inline bool IsCombobox() const { return mFlags & eComboboxAccessible; }
bool IsCombobox() const { return mGenericTypes & eCombobox; }
inline bool IsDoc() const { return mFlags & eDocAccessible; }
bool IsDoc() const { return mGenericTypes & eDocument; }
DocAccessible* AsDoc();
inline bool IsHyperText() const { return mFlags & eHyperTextAccessible; }
bool IsHyperText() const { return mGenericTypes & eHyperText; }
HyperTextAccessible* AsHyperText();
inline bool IsHTMLFileInput() const { return mFlags & eHTMLFileInputAccessible; }
bool IsHTMLFileInput() const { return mType == eHTMLFileInputType; }
inline bool IsHTMLListItem() const { return mFlags & eHTMLListItemAccessible; }
mozilla::a11y::HTMLLIAccessible* AsHTMLListItem();
bool IsHTMLListItem() const { return mType == eHTMLLiType; }
HTMLLIAccessible* AsHTMLListItem();
inline bool IsImage() const { return mFlags & eImageAccessible; }
mozilla::a11y::ImageAccessible* AsImage();
bool IsHTMLTableRow() const { return mType == eHTMLTableRowType; }
bool IsImageMapAccessible() const { return mFlags & eImageMapAccessible; }
mozilla::a11y::HTMLImageMapAccessible* AsImageMap();
bool IsImage() const { return mType == eImageType; }
ImageAccessible* AsImage();
inline bool IsXULTree() const { return mFlags & eXULTreeAccessible; }
mozilla::a11y::XULTreeAccessible* AsXULTree();
bool IsImageMap() const { return mType == eImageMapType; }
HTMLImageMapAccessible* AsImageMap();
inline bool IsXULDeck() const { return mFlags & eXULDeckAccessible; }
bool IsList() const { return mGenericTypes & eList; }
inline bool IsListControl() const { return mFlags & eListControlAccessible; }
bool IsListControl() const { return mGenericTypes & eListControl; }
inline bool IsMenuButton() const { return mFlags & eMenuButtonAccessible; }
bool IsMenuButton() const { return mGenericTypes & eMenuButton; }
inline bool IsMenuPopup() const { return mFlags & eMenuPopupAccessible; }
bool IsMenuPopup() const { return mType == eMenuPopupType; }
inline bool IsProgress() const { return mFlags & eProgressAccessible; }
bool IsProgress() const { return mType == eProgressType; }
inline bool IsRoot() const { return mFlags & eRootAccessible; }
mozilla::a11y::RootAccessible* AsRoot();
bool IsRoot() const { return mType == eRootType; }
a11y::RootAccessible* AsRoot();
virtual mozilla::a11y::TableAccessible* AsTable() { return nullptr; }
bool IsSelect() const { return mGenericTypes & eSelect; }
virtual mozilla::a11y::TableCellAccessible* AsTableCell() { return nullptr; }
bool IsTable() const { return mGenericTypes & eTable; }
virtual TableAccessible* AsTable() { return nullptr; }
inline bool IsTextLeaf() const { return mFlags & eTextLeafAccessible; }
mozilla::a11y::TextLeafAccessible* AsTextLeaf();
virtual TableCellAccessible* AsTableCell() { return nullptr; }
bool IsTableRow() const { return mGenericTypes & eTableRow; }
bool IsTextLeaf() const { return mType == eTextLeafType; }
TextLeafAccessible* AsTextLeaf();
bool IsXULDeck() const { return mType == eXULDeckType; }
bool IsXULTree() const { return mType == eXULTreeType; }
XULTreeAccessible* AsXULTree();
//////////////////////////////////////////////////////////////////////////////
// ActionAccessible
@ -587,12 +598,6 @@ public:
//////////////////////////////////////////////////////////////////////////////
// SelectAccessible
/**
* Return true if the accessible is a select control containing selectable
* items.
*/
bool IsSelect() const { return mFlags & eSelectAccessible; }
/**
* Return an array of selected items.
*/
@ -697,11 +702,6 @@ public:
bool HasOwnContent() const
{ return mContent && !(mStateFlags & eSharedNode); }
/**
* Return true if accessible is of given type.
*/
bool IsOfType(uint32_t aType) const { return mFlags & aType; }
/**
* Return true if the accessible has a numeric value.
*/
@ -747,7 +747,9 @@ protected:
enum ChildrenFlags {
eChildrenUninitialized = 0, // children aren't initialized
eMixedChildren = 1 << 0, // text leaf children are presented
eEmbeddedChildren = 1 << 1 // all children are embedded objects
eEmbeddedChildren = 1 << 1, // all children are embedded objects
eLastChildrenFlag = eEmbeddedChildren
};
/**
@ -770,39 +772,9 @@ protected:
eIsNotInDocument = 1 << 1, // accessible is not in document
eSharedNode = 1 << 2, // accessible shares DOM node from another accessible
eNotNodeMapEntry = 1 << 3, // accessible shouldn't be in document node map
eHasNumericValue = 1 << 4 // accessible has a numeric value
};
eHasNumericValue = 1 << 4, // accessible has a numeric value
public: // XXX: a small hack to make these visible for nsARIAMap
/**
* Flags describing the type of this accessible.
* @note keep these flags in sync with ChildrenFlags and StateFlags
*/
enum AccessibleTypes {
eApplicationAccessible = 1 << 0,
eAutoCompleteAccessible = 1 << 1,
eAutoCompletePopupAccessible = 1 << 2,
eComboboxAccessible = 1 << 3,
eDocAccessible = 1 << 4,
eHyperTextAccessible = 1 << 5,
eHTMLFileInputAccessible = 1 << 6,
eHTMLListItemAccessible = 1 << 7,
eHTMLTableRowAccessible = 1 << 8,
eImageAccessible = 1 << 9,
eImageMapAccessible = 1 << 10,
eListAccessible = 1 << 11,
eListControlAccessible = 1 << 12,
eMenuButtonAccessible = 1 << 13,
eMenuPopupAccessible = 1 << 14,
eProgressAccessible = 1 << 15,
eRootAccessible = 1 << 16,
eSelectAccessible = 1 << 17,
eTableAccessible = 1 << 18,
eTableCellAccessible = 1 << 19,
eTableRowAccessible = 1 << 20,
eTextLeafAccessible = 1 << 21,
eXULDeckAccessible = 1 << 22,
eXULTreeAccessible = 1 << 23
eLastStateFlag = eHasNumericValue
};
protected:
@ -909,12 +881,20 @@ protected:
nsTArray<nsRefPtr<Accessible> > mChildren;
int32_t mIndexInParent;
static const uint8_t kChildrenFlagsBits = 2;
static const uint8_t kStateFlagsBits = 5;
static const uint8_t kTypeBits = 5;
static const uint8_t kGenericTypesBits = 12;
/**
* Keep in sync with ChildrenFlags, StateFlags and AccessibleTypes.
* Keep in sync with ChildrenFlags, StateFlags and AccTypes.
*/
uint32_t mChildrenFlags : 2;
uint32_t mStateFlags : 5;
uint32_t mFlags : 25;
uint32_t mChildrenFlags : kChildrenFlagsBits;
uint32_t mStateFlags : kStateFlagsBits;
uint32_t mType : kTypeBits;
uint32_t mGenericTypes : kGenericTypesBits;
void StaticAsserts() const;
friend class DocAccessible;

View File

@ -26,7 +26,7 @@ using namespace mozilla::a11y;
ApplicationAccessible::ApplicationAccessible() :
AccessibleWrap(nullptr, nullptr)
{
mFlags |= eApplicationAccessible;
mType = eApplicationType;
mAppInfo = do_GetService("@mozilla.org/xre/app-info;1");
}

View File

@ -79,7 +79,7 @@ DocAccessible::
mVirtualCursor(nullptr),
mPresShell(aPresShell)
{
mFlags |= eDocAccessible;
mGenericTypes |= eDocument;
mStateFlags |= eNotNodeMapEntry;
MOZ_ASSERT(mPresShell, "should have been given a pres shell");
@ -92,7 +92,7 @@ DocAccessible::
// If this is a XUL Document, it should not implement nsHyperText
if (mDocumentNode && mDocumentNode->IsXUL())
mFlags &= ~eHyperTextAccessible;
mGenericTypes &= ~eHyperText;
// For GTK+ native window, we do nothing here.
if (!mDocumentNode)

View File

@ -574,8 +574,7 @@ private:
inline DocAccessible*
Accessible::AsDoc()
{
return mFlags & eDocAccessible ?
static_cast<DocAccessible*>(this) : nullptr;
return IsDoc() ? static_cast<DocAccessible*>(this) : nullptr;
}
} // namespace a11y

View File

@ -22,7 +22,7 @@ public:
LeafAccessible(aContent, aDoc)
{
mStateFlags |= eHasNumericValue;
mFlags |= eProgressAccessible;
mType = eProgressType;
}
NS_DECL_ISUPPORTS_INHERITED

View File

@ -41,7 +41,7 @@ HyperTextAccessible::
HyperTextAccessible(nsIContent* aNode, DocAccessible* aDoc) :
AccessibleWrap(aNode, aDoc)
{
mFlags |= eHyperTextAccessible;
mGenericTypes |= eHyperText;
}
NS_IMPL_ADDREF_INHERITED(HyperTextAccessible, AccessibleWrap)

View File

@ -400,8 +400,7 @@ private:
inline HyperTextAccessible*
Accessible::AsHyperText()
{
return mFlags & eHyperTextAccessible ?
static_cast<HyperTextAccessible*>(this) : nullptr;
return IsHyperText() ? static_cast<HyperTextAccessible*>(this) : nullptr;
}
} // namespace a11y

View File

@ -31,7 +31,7 @@ ImageAccessible::
ImageAccessible(nsIContent* aContent, DocAccessible* aDoc) :
LinkableAccessible(aContent, aDoc)
{
mFlags |= eImageAccessible;
mType = eImageType;
}
NS_IMPL_ISUPPORTS_INHERITED1(ImageAccessible, Accessible,

View File

@ -61,7 +61,7 @@ RootAccessible::
nsIPresShell* aPresShell) :
DocAccessibleWrap(aDocument, aRootContent, aPresShell)
{
mFlags |= eRootAccessible;
mType = eRootType;
}
RootAccessible::~RootAccessible()

View File

@ -85,8 +85,7 @@ protected:
inline RootAccessible*
Accessible::AsRoot()
{
return mFlags & eRootAccessible ?
static_cast<mozilla::a11y::RootAccessible*>(this) : nullptr;
return IsRoot() ? static_cast<mozilla::a11y::RootAccessible*>(this) : nullptr;
}
} // namespace a11y

View File

@ -19,7 +19,7 @@ TextLeafAccessible::
TextLeafAccessible(nsIContent* aContent, DocAccessible* aDoc) :
LinkableAccessible(aContent, aDoc)
{
mFlags |= eTextLeafAccessible;
mType = eTextLeafType;
}
TextLeafAccessible::~TextLeafAccessible()

View File

@ -45,8 +45,7 @@ protected:
inline TextLeafAccessible*
Accessible::AsTextLeaf()
{
return mFlags & eTextLeafAccessible ?
static_cast<TextLeafAccessible*>(this) : nullptr;
return IsTextLeaf() ? static_cast<TextLeafAccessible*>(this) : nullptr;
}
} // namespace a11y

View File

@ -532,7 +532,7 @@ HTMLFileInputAccessible::
HTMLFileInputAccessible(nsIContent* aContent, DocAccessible* aDoc) :
HyperTextAccessibleWrap(aContent, aDoc)
{
mFlags |= eHTMLFileInputAccessible;
mType = eHTMLFileInputType;
}
role

View File

@ -28,7 +28,7 @@ HTMLImageMapAccessible::
HTMLImageMapAccessible(nsIContent* aContent, DocAccessible* aDoc) :
ImageAccessibleWrap(aContent, aDoc)
{
mFlags |= eImageMapAccessible;
mType = eImageMapType;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -76,8 +76,7 @@ protected:
inline HTMLImageMapAccessible*
Accessible::AsImageMap()
{
return IsImageMapAccessible() ?
static_cast<HTMLImageMapAccessible*>(this) : nullptr;
return IsImageMap() ? static_cast<HTMLImageMapAccessible*>(this) : nullptr;
}
} // namespace a11y

View File

@ -46,7 +46,7 @@ HTMLLIAccessible::
HTMLLIAccessible(nsIContent* aContent, DocAccessible* aDoc) :
HyperTextAccessibleWrap(aContent, aDoc), mBullet(nullptr)
{
mFlags |= eHTMLListItemAccessible;
mType = eHTMLLiType;
nsBlockFrame* blockFrame = do_QueryFrame(GetFrame());
if (blockFrame && blockFrame->HasBullet()) {

View File

@ -22,7 +22,7 @@ class HTMLListAccessible : public HyperTextAccessibleWrap
{
public:
HTMLListAccessible(nsIContent* aContent, DocAccessible* aDoc) :
HyperTextAccessibleWrap(aContent, aDoc) { mFlags |= eListAccessible; }
HyperTextAccessibleWrap(aContent, aDoc) { mGenericTypes |= eList; }
virtual ~HTMLListAccessible() { }
// nsISupports
@ -100,8 +100,7 @@ public:
inline HTMLLIAccessible*
Accessible::AsHTMLListItem()
{
return mFlags & eHTMLListItemAccessible ?
static_cast<HTMLLIAccessible*>(this) : nullptr;
return IsHTMLListItem() ? static_cast<HTMLLIAccessible*>(this) : nullptr;
}
} // namespace a11y

View File

@ -31,7 +31,7 @@ HTMLSelectListAccessible::
HTMLSelectListAccessible(nsIContent* aContent, DocAccessible* aDoc) :
AccessibleWrap(aContent, aDoc)
{
mFlags |= eSelectAccessible | eListControlAccessible;
mGenericTypes |= eListControl | eSelect;
}
////////////////////////////////////////////////////////////////////////////////
@ -397,7 +397,7 @@ HTMLComboboxAccessible::
HTMLComboboxAccessible(nsIContent* aContent, DocAccessible* aDoc) :
AccessibleWrap(aContent, aDoc)
{
mFlags |= eComboboxAccessible;
mGenericTypes |= eCombobox;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -347,7 +347,7 @@ HTMLTableAccessible::
HTMLTableAccessible(nsIContent* aContent, DocAccessible* aDoc) :
AccessibleWrap(aContent, aDoc), xpcAccessibleTable(this)
{
mFlags |= eTableAccessible;
mGenericTypes |= eTable;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -93,7 +93,10 @@ class HTMLTableRowAccessible : public AccessibleWrap
public:
HTMLTableRowAccessible(nsIContent* aContent, DocAccessible* aDoc) :
AccessibleWrap(aContent, aDoc)
{ mFlags |= eTableRowAccessible | eHTMLTableRowAccessible; }
{
mType = eHTMLTableRowType;
mGenericTypes |= eTableRow;
}
virtual ~HTMLTableRowAccessible() { }
NS_DECL_ISUPPORTS_INHERITED

View File

@ -88,7 +88,7 @@ XULColorPickerAccessible::
XULColorPickerAccessible(nsIContent* aContent, DocAccessible* aDoc) :
XULColorPickerTileAccessible(aContent, aDoc)
{
mFlags |= eMenuButtonAccessible;
mGenericTypes |= eMenuButton;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -28,9 +28,9 @@ XULComboboxAccessible::
{
if (mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type,
nsGkAtoms::autocomplete, eIgnoreCase))
mFlags |= eAutoCompleteAccessible;
mGenericTypes |= eAutoComplete;
else
mFlags |= eComboboxAccessible;
mGenericTypes |= eCombobox;
}
role

View File

@ -40,7 +40,7 @@ XULButtonAccessible::
AccessibleWrap(aContent, aDoc)
{
if (ContainsMenu())
mFlags |= eMenuButtonAccessible;
mGenericTypes |= eMenuButton;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -108,7 +108,7 @@ XULListboxAccessible::
nsCOMPtr<nsIAutoCompletePopup> autoCompletePopupElm =
do_QueryInterface(parentContent);
if (autoCompletePopupElm)
mFlags |= eAutoCompletePopupAccessible;
mGenericTypes |= eAutoCompletePopup;
}
}

View File

@ -436,12 +436,12 @@ XULMenupopupAccessible::
{
nsMenuPopupFrame* menuPopupFrame = do_QueryFrame(GetFrame());
if (menuPopupFrame && menuPopupFrame->IsMenu())
mFlags |= eMenuPopupAccessible;
mType = eMenuPopupType;
// May be the anonymous <menupopup> inside <menulist> (a combobox)
mSelectControl = do_QueryInterface(mContent->GetParent());
if (!mSelectControl)
mFlags &= ~eSelectAccessible;
mGenericTypes &= ~eSelect;
}
uint64_t

View File

@ -31,7 +31,7 @@ XULSelectControlAccessible::
XULSelectControlAccessible(nsIContent* aContent, DocAccessible* aDoc) :
AccessibleWrap(aContent, aDoc)
{
mFlags |= eSelectAccessible;
mGenericTypes |= eSelect;
mSelectControl = do_QueryInterface(aContent);
}

View File

@ -67,7 +67,7 @@ class XULDeckAccessible : public AccessibleWrap
public:
XULDeckAccessible(nsIContent* aContent, DocAccessible* aDoc) :
AccessibleWrap(aContent, aDoc)
{ mFlags |= eXULDeckAccessible; }
{ mType = eXULDeckType; }
// Accessible
virtual a11y::role NativeRole();

View File

@ -37,7 +37,8 @@ XULTreeAccessible::
XULTreeAccessible(nsIContent* aContent, DocAccessible* aDoc) :
AccessibleWrap(aContent, aDoc)
{
mFlags |= eSelectAccessible | eXULTreeAccessible;
mType = eXULTreeType;
mGenericTypes |= eSelect;
mTree = nsCoreUtils::GetTreeBoxObject(aContent);
NS_ASSERTION(mTree, "Can't get mTree!\n");
@ -53,7 +54,7 @@ XULTreeAccessible::
nsCOMPtr<nsIAutoCompletePopup> autoCompletePopupElm =
do_QueryInterface(parentContent);
if (autoCompletePopupElm)
mFlags |= eAutoCompletePopupAccessible;
mGenericTypes |= eAutoCompletePopup;
}
mAccessibleCache.Init(kDefaultTreeCacheSize);

View File

@ -28,7 +28,7 @@ XULTreeGridAccessible::
XULTreeGridAccessible(nsIContent* aContent, DocAccessible* aDoc) :
XULTreeAccessible(aContent, aDoc), xpcAccessibleTable(this)
{
mFlags |= eTableAccessible;
mGenericTypes |= eTable;
}
////////////////////////////////////////////////////////////////////////////////
@ -280,7 +280,7 @@ XULTreeGridRowAccessible::
nsITreeView* aTreeView, int32_t aRow) :
XULTreeItemAccessibleBase(aContent, aDoc, aTreeAcc, aTree, aTreeView, aRow)
{
mFlags |= eTableRowAccessible;
mGenericTypes |= eTableRow;
mAccessibleCache.Init(kDefaultTreeCacheSize);
}

View File

@ -275,7 +275,7 @@ NS_QUERYFRAME_TAIL_INHERITING(nsObjectFrameSuper)
a11y::AccType
nsObjectFrame::AccessibleType()
{
return a11y::ePlugin;
return a11y::ePluginType;
}
#ifdef XP_WIN