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 {
public:
static Ref<AccessibilityTable> create(RenderObject*);
virtual ~AccessibilityTable();
virtual void init() override final;
virtual AccessibilityRole roleValue() const override final;
virtual bool isAriaTable() const { return false; }
virtual void addChildren() override;
virtual void clearChildren() override final;
const AccessibilityChildrenVector& columns();
const AccessibilityChildrenVector& rows();
virtual bool supportsSelectedRows() { return false; }
unsigned columnCount();
unsigned rowCount();
virtual int tableLevel() const override final;
virtual String title() const override final;
void cells(AccessibilityChildrenVector&);
AccessibilityTableCell* cellForColumnAndRow(unsigned column, unsigned row);
void columnHeaders(AccessibilityChildrenVector&);
void rowHeaders(AccessibilityChildrenVector&);
void visibleRows(AccessibilityChildrenVector&);
AccessibilityObject* headerContainer();
bool isExposableThroughAccessibility() const;
protected:
explicit AccessibilityTable(RenderObject*);
AccessibilityChildrenVector m_rows;
AccessibilityChildrenVector m_columns;
RefPtr<AccessibilityObject> m_headerContainer;
bool m_isExposableThroughAccessibility;
bool hasARIARole() const;
virtual bool isTable() const override final { return true; }
virtual bool isDataTable() const override final;
virtual bool computeAccessibilityIsIgnored() const override final;
private:
virtual bool computeIsTableExposableThroughAccessibility() const;
virtual void titleElementText(Vector<AccessibilityText>&) const override final;
HTMLTableElement* tableElement() const;
void addChildrenFromSection(RenderTableSection*, unsigned& maxColumnCount);
void addTableCellChild(AccessibilityObject*, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount);
};
}
SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY(AccessibilityTable, isTable())
#endif // AccessibilityTable_h