bool AccessibilityMathMLElement::isMathScriptObject(AccessibilityMathScriptObjectType type) const { AccessibilityObject* parent = parentObjectUnignored(); if (!parent) return false; return type == Subscript ? this == parent->mathSubscriptObject() : this == parent->mathSuperscriptObject(); }
void AccessibilityAriaGridCell::rowIndexRange(pair<int, int>& rowRange) { AccessibilityObject* parent = parentObjectUnignored(); if (!parent || !parent->isTableRow()) return; // as far as I can tell, grid cells cannot span rows rowRange.first = static_cast<AccessibilityTableRow*>(parent)->rowIndex(); rowRange.second = 1; }
AccessibilityObject* AccessibilityAriaGridCell::parentTable() const { AccessibilityObject* parent = parentObjectUnignored(); if (!parent || !parent->isTableRow()) return 0; parent = parent->parentObjectUnignored(); if (!parent || !parent->isDataTable()) return 0; return parent; }
AccessibilityObject* AccessibilityARIAGridCell::parentTable() const { AccessibilityObject* parent = parentObjectUnignored(); if (!parent) return 0; if (parent->isAccessibilityTable()) return parent; // It could happen that we hadn't reached the parent table yet (in // case objects for rows were not ignoring accessibility) so for // that reason we need to run parentObjectUnignored once again. parent = parent->parentObjectUnignored(); if (!parent || !parent->isAccessibilityTable()) return 0; return parent; }
void AccessibilityAriaGridCell::columnIndexRange(pair<int, int>& columnRange) { AccessibilityObject* parent = parentObjectUnignored(); if (!parent || !parent->isTableRow()) return; AccessibilityChildrenVector siblings = parent->children(); unsigned childrenSize = siblings.size(); for (unsigned k = 0; k < childrenSize; ++k) { if (siblings[k].get() == this) { columnRange.first = k; break; } } // as far as I can tell, grid cells cannot span columns columnRange.second = 1; }
void AXARIAGridCell::columnIndexRange(pair<unsigned, unsigned>& columnRange) { AXObject* parent = parentObjectUnignored(); if (!parent) return; if (!parent->isTableRow() && !parent->isAXTable()) return; const auto& siblings = parent->children(); unsigned childrenSize = siblings.size(); for (unsigned k = 0; k < childrenSize; ++k) { if (siblings[k].get() == this) { columnRange.first = k; break; } } // as far as I can tell, grid cells cannot span columns columnRange.second = 1; }