AccessibilityTable.h [plain text]
#pragma once
#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();
void init() final;
AccessibilityRole roleValue() const final;
virtual bool isAriaTable() const { return false; }
void addChildren() override;
void clearChildren() final;
const AccessibilityChildrenVector& columns();
const AccessibilityChildrenVector& rows();
virtual bool supportsSelectedRows() { return false; }
unsigned columnCount();
unsigned rowCount();
int tableLevel() const final;
String title() const final;
void cells(AccessibilityChildrenVector&);
AccessibilityTableCell* cellForColumnAndRow(unsigned column, unsigned row);
void columnHeaders(AccessibilityChildrenVector&);
void rowHeaders(AccessibilityChildrenVector&);
void visibleRows(AccessibilityChildrenVector&);
AccessibilityObject* headerContainer();
bool isExposableThroughAccessibility() const;
int axColumnCount() const;
int axRowCount() const;
protected:
explicit AccessibilityTable(RenderObject*);
AccessibilityChildrenVector m_rows;
AccessibilityChildrenVector m_columns;
RefPtr<AccessibilityObject> m_headerContainer;
bool m_isExposableThroughAccessibility;
bool hasARIARole() const;
bool isTable() 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, isTable())