static void setAtkRelationSetFromCoreObject(AccessibilityObject* coreObject, AtkRelationSet* relationSet) { AccessibilityRenderObject* accObject = static_cast<AccessibilityRenderObject*>(coreObject); if (accObject->isControl()) { AccessibilityObject* label = accObject->correspondingLabelForControlElement(); if (label) atk_relation_set_add_relation_by_type(relationSet, ATK_RELATION_LABELLED_BY, label->wrapper()); } else { AccessibilityObject* control = accObject->correspondingControlForLabelElement(); if (control) atk_relation_set_add_relation_by_type(relationSet, ATK_RELATION_LABEL_FOR, control->wrapper()); } }
static const gchar* webkit_accessible_get_name(AtkObject* object) { AccessibilityObject* coreObject = core(object); if (coreObject->isControl()) { AccessibilityRenderObject* renderObject = static_cast<AccessibilityRenderObject*>(coreObject); AccessibilityObject* label = renderObject->correspondingLabelForControlElement(); if (label) { AccessibilityRenderObject::AccessibilityChildrenVector children = label->children(); // Currently, label->stringValue() should be an empty String. This // might not be the case down the road. String name = label->stringValue(); for (unsigned i = 0; i < children.size(); ++i) name += children.at(i).get()->stringValue(); return returnString(name); } } return returnString(coreObject->stringValue()); }