AccessibilityTable.h [plain text]
#pragma once
#include "AccessibilityRenderObject.h"
#include "AccessibilityTableCell.h"
#include <wtf/Forward.h>
namespace WebCore {
class HTMLTableElement;
class RenderTableSection;
class AccessibilityTable : public AccessibilityRenderObject {
public:
static Ref<AccessibilityTable> create(RenderObject*);
virtual ~AccessibilityTable();
void init() final;
AccessibilityRole roleValue() const final;
virtual bool isAriaTable() const { return false; }
void addChildren() override;
void clearChildren() final;
AccessibilityChildrenVector columns() override;
AccessibilityChildrenVector rows() override;
unsigned columnCount() override;
unsigned rowCount() override;
int tableLevel() const final;
String title() const final;
AccessibilityChildrenVector cells() override;
AXCoreObject* cellForColumnAndRow(unsigned column, unsigned row) override;
AccessibilityChildrenVector columnHeaders() override;
AccessibilityChildrenVector rowHeaders() override;
AccessibilityChildrenVector visibleRows() override;
AXCoreObject* headerContainer() override;
bool isTable() const override { return true; }
bool isExposable() const override;
int axColumnCount() const override;
int axRowCount() const override;
protected:
explicit AccessibilityTable(RenderObject*);
AccessibilityChildrenVector m_rows;
AccessibilityChildrenVector m_columns;
RefPtr<AccessibilityObject> m_headerContainer;
bool m_isExposable;
bool hasARIARole() const;
bool isAccessibilityTableInstance() const final { return true; }
bool isDataTable() const final;
bool computeAccessibilityIsIgnored() const final;
private:
virtual bool computeIsTableExposableThroughAccessibility() const;
void titleElementText(Vector<AccessibilityText>&) const final;
HTMLTableElement* tableElement() const;
void addChildrenFromSection(RenderTableSection*, unsigned& maxColumnCount);
void addTableCellChild(AccessibilityObject*, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount);
};
}
SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY(AccessibilityTable, isAccessibilityTableInstance())