AccessibilityTable.h [plain text]
#ifndef AccessibilityTable_h
#define AccessibilityTable_h
#include "AccessibilityRenderObject.h"
#include <wtf/Forward.h>
namespace WebCore {
class AccessibilityTableCell;
class HTMLTableElement;
class RenderTableSection;
class AccessibilityTable : public AccessibilityRenderObject {
protected:
explicit AccessibilityTable(RenderObject*);
public:
static PassRefPtr<AccessibilityTable> create(RenderObject*);
virtual ~AccessibilityTable();
virtual void init() override;
virtual AccessibilityRole roleValue() const override;
virtual bool isAriaTable() const { return false; }
virtual void addChildren() override;
virtual void clearChildren() override;
const AccessibilityChildrenVector& columns();
const AccessibilityChildrenVector& rows();
virtual bool supportsSelectedRows() { return false; }
unsigned columnCount();
unsigned rowCount();
virtual int tableLevel() const override;
virtual String title() const override;
void cells(AccessibilityChildrenVector&);
AccessibilityTableCell* cellForColumnAndRow(unsigned column, unsigned row);
void columnHeaders(AccessibilityChildrenVector&);
void rowHeaders(AccessibilityChildrenVector&);
void visibleRows(AccessibilityChildrenVector&);
AccessibilityObject* headerContainer();
protected:
AccessibilityChildrenVector m_rows;
AccessibilityChildrenVector m_columns;
RefPtr<AccessibilityObject> m_headerContainer;
bool m_isAccessibilityTable;
bool hasARIARole() const;
virtual bool isTable() const override { return true; }
virtual bool isAccessibilityTable() const override;
virtual bool isDataTable() const override;
virtual bool isTableExposableThroughAccessibility() const;
virtual bool computeAccessibilityIsIgnored() const override;
private:
virtual void titleElementText(Vector<AccessibilityText>&) const override;
HTMLTableElement* tableElement() const;
void addChildrenFromSection(RenderTableSection*, unsigned& maxColumnCount);
};
ACCESSIBILITY_OBJECT_TYPE_CASTS(AccessibilityTable, isTable())
}
#endif // AccessibilityTable_h