bool WebAXObject::ariaOwns(WebVector<WebAXObject>& ownsElements) const { if (isDetached()) return false; AXObject::AccessibilityChildrenVector owns; m_private->ariaOwnsElements(owns); WebVector<WebAXObject> result(owns.size()); for (size_t i = 0; i < owns.size(); i++) result[i] = WebAXObject(owns[i]); ownsElements.swap(result); return true; }
bool WebAXObject::ariaFlowTo(WebVector<WebAXObject>& flowToElements) const { if (isDetached()) return false; AXObject::AccessibilityChildrenVector flowTo; m_private->ariaFlowToElements(flowTo); WebVector<WebAXObject> result(flowTo.size()); for (size_t i = 0; i < flowTo.size(); i++) result[i] = WebAXObject(flowTo[i]); flowToElements.swap(result); return true; }
bool WebAXObject::ariaLabelledby(WebVector<WebAXObject>& labelledbyElements) const { if (isDetached()) return false; AXObject::AccessibilityChildrenVector labelledby; m_private->ariaLabelledbyElements(labelledby); WebVector<WebAXObject> result(labelledby.size()); for (size_t i = 0; i < labelledby.size(); i++) result[i] = WebAXObject(labelledby[i]); labelledbyElements.swap(result); return true; }
bool WebAXObject::ariaControls(WebVector<WebAXObject>& controlsElements) const { if (isDetached()) return false; AXObject::AccessibilityChildrenVector controls; m_private->ariaControlsElements(controls); WebVector<WebAXObject> result(controls.size()); for (size_t i = 0; i < controls.size(); i++) result[i] = WebAXObject(controls[i]); controlsElements.swap(result); return true; }
AXObject* AXObjectCache::focusedImageMapUIElement(HTMLAreaElement* areaElement) { // Find the corresponding accessibility object for the HTMLAreaElement. This should be // in the list of children for its corresponding image. if (!areaElement) return 0; HTMLImageElement* imageElement = areaElement->imageElement(); if (!imageElement) return 0; AXObject* axRenderImage = areaElement->document().axObjectCache()->getOrCreate(imageElement); if (!axRenderImage) return 0; AXObject::AccessibilityChildrenVector imageChildren = axRenderImage->children(); unsigned count = imageChildren.size(); for (unsigned k = 0; k < count; ++k) { AXObject* child = imageChildren[k].get(); if (!child->isImageMapLink()) continue; if (toAXImageMapLink(child)->areaElement() == areaElement) return child; } return 0; }