AccessibilityTable.h [plain text]
#ifndef AccessibilityTable_h
#define AccessibilityTable_h
#include "AccessibilityRenderObject.h"
#include <wtf/Forward.h>
#if PLATFORM(MAC) && defined(BUILDING_ON_LEOPARD)
#define ACCESSIBILITY_TABLES 0
#else
#define ACCESSIBILITY_TABLES 1
#endif
namespace WebCore {
class AccessibilityTableCell;
class AccessibilityTable : public AccessibilityRenderObject {
protected:
AccessibilityTable(RenderObject*);
public:
static PassRefPtr<AccessibilityTable> create(RenderObject*);
virtual ~AccessibilityTable();
virtual bool isAccessibilityTable() const;
virtual bool isDataTable() const;
virtual AccessibilityRole roleValue() const;
virtual bool isAriaTable() const { return false; }
virtual bool accessibilityIsIgnored() const;
virtual void addChildren();
virtual void clearChildren();
AccessibilityChildrenVector& columns();
AccessibilityChildrenVector& rows();
virtual bool supportsSelectedRows() { return false; }
unsigned columnCount();
unsigned rowCount();
virtual int tableLevel() const;
virtual String title() const;
void cells(AccessibilityChildrenVector&);
virtual AccessibilityTableCell* cellForColumnAndRow(unsigned column, unsigned row);
void columnHeaders(AccessibilityChildrenVector&);
void rowHeaders(AccessibilityChildrenVector&);
AccessibilityObject* headerContainer();
protected:
AccessibilityChildrenVector m_rows;
AccessibilityChildrenVector m_columns;
RefPtr<AccessibilityObject> m_headerContainer;
mutable bool m_isAccessibilityTable;
bool hasARIARole() const;
bool isTableExposableThroughAccessibility() const;
};
inline AccessibilityTable* toAccessibilityTable(AccessibilityObject* object)
{
ASSERT(!object || object->isAccessibilityTable());
return static_cast<AccessibilityTable*>(object);
}
}
#endif // AccessibilityTable_h