diff options
-rw-r--r-- | webkit/tools/test_shell/accessibility_ui_element.cc | 76 | ||||
-rw-r--r-- | webkit/tools/test_shell/accessibility_ui_element.h | 4 |
2 files changed, 50 insertions, 30 deletions
diff --git a/webkit/tools/test_shell/accessibility_ui_element.cc b/webkit/tools/test_shell/accessibility_ui_element.cc index 24f7a34..8ee65e9 100644 --- a/webkit/tools/test_shell/accessibility_ui_element.cc +++ b/webkit/tools/test_shell/accessibility_ui_element.cc @@ -183,6 +183,46 @@ static std::string RoleToString(WebAccessibilityRole role) { } } +std::string GetDescription(const WebAccessibilityObject& object) { + std::string description = object.accessibilityDescription().utf8(); + return description.insert(0, "AXDescription: "); +} + +std::string GetRole(const WebAccessibilityObject& object) { + return RoleToString(object.roleValue()); +} + +std::string GetTitle(const WebAccessibilityObject& object) { + std::string title = object.title().utf8(); + return title.insert(0, "AXTitle: "); +} + +std::string GetAttributes(const WebAccessibilityObject& object) { + // TODO(dglazkov): Concatenate all attributes of the AccessibilityObject. + std::string attributes(GetTitle(object)); + attributes.append("\n"); + attributes.append(GetRole(object)); + attributes.append("\n"); + attributes.append(GetDescription(object)); + return attributes; +} + + +// Collects attributes into a string, delimited by dashes. Used by all methods +// that output lists of attributes: AttributesOfLinkedUIElementsCallback, +// AttributesOfChildrenCallback, etc. +class AttributesCollector { + public: + void CollectAttributes(const WebAccessibilityObject& object) { + attributes_.append("\n------------\n"); + attributes_.append(GetAttributes(object)); + } + std::string attributes() const { return attributes_; } + +private: + std::string attributes_; +}; + } // namespace AccessibilityUIElement::AccessibilityUIElement( @@ -269,30 +309,9 @@ AccessibilityUIElement* AccessibilityUIElement::GetChildAtIndex( return factory_->Create(accessibility_object().childAt(index)); } -std::string AccessibilityUIElement::GetTitle() { - std::string title = accessibility_object().title().utf8(); - return title.insert(0, "AXTitle: "); -} - -std::string AccessibilityUIElement::GetDescription() { - std::string description = - accessibility_object().accessibilityDescription().utf8(); - return description.insert(0, "AXDescription: "); -} - -std::string AccessibilityUIElement::GetRole() { - return RoleToString(accessibility_object().roleValue()); -} - void AccessibilityUIElement::AllAttributesCallback( const CppArgumentList& args, CppVariant* result) { - // TODO(dglazkov): Concatenate all attributes of the AccessibilityObject. - std::string attributes(GetTitle()); - attributes.append(" "); - attributes.append(GetRole()); - attributes.append(" "); - attributes.append(GetDescription()); - result->Set(attributes); + result->Set(GetAttributes(accessibility_object())); } void AccessibilityUIElement::AttributesOfLinkedUIElementsCallback( @@ -307,7 +326,12 @@ void AccessibilityUIElement::AttributesOfDocumentLinksCallback( void AccessibilityUIElement::AttributesOfChildrenCallback( const CppArgumentList& args, CppVariant* result) { - result->SetNull(); + AttributesCollector collector; + unsigned size = accessibility_object().childCount(); + for(unsigned i = 0; i < size; ++i) { + collector.CollectAttributes(accessibility_object().childAt(i)); + } + result->Set(collector.attributes()); } void AccessibilityUIElement::ParametrizedAttributeNamesCallback( @@ -467,7 +491,7 @@ void AccessibilityUIElement::ChildrenCountGetterCallback(CppVariant* result) { } void AccessibilityUIElement::DescriptionGetterCallback(CppVariant *result) { - result->Set(GetDescription()); + result->Set(GetDescription(accessibility_object())); } void AccessibilityUIElement::IsEnabledGetterCallback(CppVariant* result) { @@ -479,11 +503,11 @@ void AccessibilityUIElement::IsSelectedGetterCallback(CppVariant* result) { } void AccessibilityUIElement::RoleGetterCallback(CppVariant* result) { - result->Set(GetRole()); + result->Set(GetRole(accessibility_object())); } void AccessibilityUIElement::TitleGetterCallback(CppVariant* result) { - result->Set(GetTitle()); + result->Set(GetTitle(accessibility_object())); } diff --git a/webkit/tools/test_shell/accessibility_ui_element.h b/webkit/tools/test_shell/accessibility_ui_element.h index 43db15d..13ff353 100644 --- a/webkit/tools/test_shell/accessibility_ui_element.h +++ b/webkit/tools/test_shell/accessibility_ui_element.h @@ -24,10 +24,6 @@ class AccessibilityUIElement : public CppBoundClass { virtual AccessibilityUIElement* GetChildAtIndex(unsigned index); virtual bool IsRoot() const { return false; } - std::string GetTitle(); - std::string GetDescription(); - std::string GetRole(); - protected: const WebKit::WebAccessibilityObject& accessibility_object() const { return accessibility_object_; |