bool AccessibilityMathMLElement::isMathScriptObject(AccessibilityMathScriptObjectType type) const
{
    AccessibilityObject* parent = parentObjectUnignored();
    if (!parent)
        return false;

    return type == Subscript ? this == parent->mathSubscriptObject() : this == parent->mathSuperscriptObject();
}
Beispiel #2
0
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;    
}
Beispiel #3
0
AccessibilityObject* AccessibilityAriaGridCell::parentTable() const
{
    AccessibilityObject* parent = parentObjectUnignored();
    if (!parent || !parent->isTableRow())
        return 0;
    
    parent = parent->parentObjectUnignored();
    if (!parent || !parent->isDataTable())
        return 0;
    
    return parent;
}
Beispiel #4
0
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;
}
Beispiel #5
0
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;
}