diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-15 23:09:02 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-15 23:09:02 +0000 |
commit | cfa516bfbeb5560fd54659067156af66c7a47ae7 (patch) | |
tree | ca3e996a10fb7561d5e1849155acefe96650e6cc | |
parent | 8d1b9e3e5e52edc8ca6543f2bf6fc0252fa83708 (diff) | |
download | chromium_src-cfa516bfbeb5560fd54659067156af66c7a47ae7.zip chromium_src-cfa516bfbeb5560fd54659067156af66c7a47ae7.tar.gz chromium_src-cfa516bfbeb5560fd54659067156af66c7a47ae7.tar.bz2 |
Revert 232429 "This adds support for the InlineTextBox role in t..."
> This adds support for the InlineTextBox role in the AX tree,
> and its attributes.
>
> Depends on this Blink change that adds InlineTextBox support.
> https://codereview.chromium.org/23983002/
>
> This change only adds support and makes minimal changes to
> allow tests to pass. Other changes will take advantage of the
> inline text boxes to compute boundsForRange, etc.
>
> BUG=98977
>
> Review URL: https://codereview.chromium.org/25943003
TBR=dmazzoni@chromium.org
Review URL: https://codereview.chromium.org/68713008
git-svn-id: svn://svn.chromium.org/chrome/branches/1700/src@235463 0039d316-1c4b-4281-b951-d872f2087c98
18 files changed, 83 insertions, 171 deletions
diff --git a/content/browser/accessibility/accessibility_tree_formatter.cc b/content/browser/accessibility/accessibility_tree_formatter.cc index 3e03b80..4368cf1 100644 --- a/content/browser/accessibility/accessibility_tree_formatter.cc +++ b/content/browser/accessibility/accessibility_tree_formatter.cc @@ -66,8 +66,10 @@ void AccessibilityTreeFormatter::RecursiveBuildAccessibilityTree( base::ListValue* children = new base::ListValue; dict->Set(kChildrenDictAttr, children); + if (!IncludeChildren(node)) + return; - for (size_t i = 0; i < node.PlatformChildCount(); ++i) { + for (size_t i = 0; i < node.children().size(); ++i) { BrowserAccessibility* child_node = node.children()[i]; base::DictionaryValue* child_dict = new base::DictionaryValue; children->Append(child_dict); @@ -91,6 +93,13 @@ void AccessibilityTreeFormatter::RecursiveFormatAccessibilityTree( } } +#if !defined(OS_ANDROID) +bool AccessibilityTreeFormatter::IncludeChildren( + const BrowserAccessibility& node) { + return true; +} +#endif + #if (!defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ !defined(TOOLKIT_GTK)) void AccessibilityTreeFormatter::AddProperties(const BrowserAccessibility& node, diff --git a/content/browser/accessibility/accessibility_tree_formatter.h b/content/browser/accessibility/accessibility_tree_formatter.h index 006ee9a..3c36b2f 100644 --- a/content/browser/accessibility/accessibility_tree_formatter.h +++ b/content/browser/accessibility/accessibility_tree_formatter.h @@ -113,6 +113,11 @@ class CONTENT_EXPORT AccessibilityTreeFormatter { void AddProperties(const BrowserAccessibility& node, base::DictionaryValue* dict); + // Returns true by default; can be overridden by the platform to + // prune some children from the tree when they wouldn't be exposed + // natively on that platform. + virtual bool IncludeChildren(const BrowserAccessibility& node); + string16 FormatCoordinates(const char* name, const char* x_name, const char* y_name, diff --git a/content/browser/accessibility/accessibility_tree_formatter_android.cc b/content/browser/accessibility/accessibility_tree_formatter_android.cc index ae34ef5..11f4be6 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_android.cc +++ b/content/browser/accessibility/accessibility_tree_formatter_android.cc @@ -77,6 +77,13 @@ void AccessibilityTreeFormatter::AddProperties( dict->SetInteger("item_count", android_node->GetItemCount()); } +bool AccessibilityTreeFormatter::IncludeChildren( + const BrowserAccessibility& node) { + const BrowserAccessibilityAndroid* android_node = + static_cast<const BrowserAccessibilityAndroid*>(&node); + return !android_node->IsLeaf(); +} + string16 AccessibilityTreeFormatter::ToString(const DictionaryValue& dict, const string16& indent) { string16 line; diff --git a/content/browser/accessibility/browser_accessibility.cc b/content/browser/accessibility/browser_accessibility.cc index 231ff9c..e039cc7 100644 --- a/content/browser/accessibility/browser_accessibility.cc +++ b/content/browser/accessibility/browser_accessibility.cc @@ -43,14 +43,6 @@ BrowserAccessibility::BrowserAccessibility() BrowserAccessibility::~BrowserAccessibility() { } -bool BrowserAccessibility::PlatformIsLeaf() const { - return role_ == WebKit::WebAXRoleStaticText || child_count() == 0; -} - -uint32 BrowserAccessibility::PlatformChildCount() const { - return PlatformIsLeaf() ? 0 : children_.size(); -} - void BrowserAccessibility::DetachTree( std::vector<BrowserAccessibility*>* nodes) { nodes->push_back(this); @@ -120,8 +112,7 @@ bool BrowserAccessibility::IsDescendantOf( return false; } -BrowserAccessibility* BrowserAccessibility::PlatformGetChild( - uint32 child_index) const { +BrowserAccessibility* BrowserAccessibility::GetChild(uint32 child_index) const { DCHECK(child_index < children_.size()); return children_[child_index]; } diff --git a/content/browser/accessibility/browser_accessibility.h b/content/browser/accessibility/browser_accessibility.h index 4b36bc7..a520751 100644 --- a/content/browser/accessibility/browser_accessibility.h +++ b/content/browser/accessibility/browser_accessibility.h @@ -89,21 +89,8 @@ class CONTENT_EXPORT BrowserAccessibility { // Returns the number of children of this object. uint32 child_count() const { return children_.size(); } - // Returns true if this is a leaf node on this platform, meaning any - // children should not be exposed to this platform's native accessibility - // layer. Each platform subclass should implement this itself. - // The definition of a leaf may vary depending on the platform, - // but a leaf node should never have children that are focusable or - // that might send notifications. - virtual bool PlatformIsLeaf() const; - - // Returns the number of children of this object, or 0 if PlatformIsLeaf() - // returns true. - uint32 PlatformChildCount() const; - - // Return a pointer to the child at the given index, or NULL for an - // invalid index. Returns NULL if PlatformIsLeaf() returns true. - BrowserAccessibility* PlatformGetChild(uint32 child_index) const; + // Return a pointer to the child with the given index. + BrowserAccessibility* GetChild(uint32 child_index) const; // Return the previous sibling of this object, or NULL if it's the first // child of its parent. diff --git a/content/browser/accessibility/browser_accessibility_android.cc b/content/browser/accessibility/browser_accessibility_android.cc index 2227c38..d8899d7 100644 --- a/content/browser/accessibility/browser_accessibility_android.cc +++ b/content/browser/accessibility/browser_accessibility_android.cc @@ -24,7 +24,7 @@ bool BrowserAccessibilityAndroid::IsNative() const { return true; } -bool BrowserAccessibilityAndroid::PlatformIsLeaf() const { +bool BrowserAccessibilityAndroid::IsLeaf() const { if (child_count() == 0) return true; @@ -52,7 +52,7 @@ bool BrowserAccessibilityAndroid::PlatformIsLeaf() const { if (HasOnlyStaticTextChildren()) return true; - return BrowserAccessibility::PlatformIsLeaf(); + return false; } bool BrowserAccessibilityAndroid::IsCheckable() const { @@ -75,7 +75,7 @@ bool BrowserAccessibilityAndroid::IsChecked() const { } bool BrowserAccessibilityAndroid::IsClickable() const { - return (PlatformIsLeaf() && !GetText().empty()); + return (IsLeaf() && !GetText().empty()); } bool BrowserAccessibilityAndroid::IsEnabled() const { @@ -185,8 +185,8 @@ string16 BrowserAccessibilityAndroid::GetText() const { text = base::UTF8ToUTF16(value()); if (text.empty() && HasOnlyStaticTextChildren()) { - for (uint32 i = 0; i < PlatformChildCount(); i++) { - BrowserAccessibility* child = PlatformGetChild(i); + for (uint32 i = 0; i < child_count(); i++) { + BrowserAccessibility* child = GetChild(i); text += static_cast<BrowserAccessibilityAndroid*>(child)->GetText(); } } @@ -233,7 +233,7 @@ int BrowserAccessibilityAndroid::GetItemCount() const { switch(role()) { case WebKit::WebAXRoleList: case WebKit::WebAXRoleListBox: - count = PlatformChildCount(); + count = child_count(); break; case WebKit::WebAXRoleSlider: case WebKit::WebAXRoleProgressIndicator: { @@ -339,8 +339,8 @@ int BrowserAccessibilityAndroid::GetEditableTextLength() const { } bool BrowserAccessibilityAndroid::HasFocusableChild() const { - for (uint32 i = 0; i < PlatformChildCount(); i++) { - BrowserAccessibility* child = PlatformGetChild(i); + for (uint32 i = 0; i < child_count(); i++) { + BrowserAccessibility* child = GetChild(i); if (child->HasState(WebKit::WebAXStateFocusable)) return true; if (static_cast<BrowserAccessibilityAndroid*>(child)->HasFocusableChild()) @@ -350,8 +350,8 @@ bool BrowserAccessibilityAndroid::HasFocusableChild() const { } bool BrowserAccessibilityAndroid::HasOnlyStaticTextChildren() const { - for (uint32 i = 0; i < PlatformChildCount(); i++) { - BrowserAccessibility* child = PlatformGetChild(i); + for (uint32 i = 0; i < child_count(); i++) { + BrowserAccessibility* child = GetChild(i); if (child->role() != WebKit::WebAXRoleStaticText) return false; } diff --git a/content/browser/accessibility/browser_accessibility_android.h b/content/browser/accessibility/browser_accessibility_android.h index 7cb979b..8b4ed84 100644 --- a/content/browser/accessibility/browser_accessibility_android.h +++ b/content/browser/accessibility/browser_accessibility_android.h @@ -16,7 +16,7 @@ class BrowserAccessibilityAndroid : public BrowserAccessibility { virtual void PostInitialize() OVERRIDE; virtual bool IsNative() const OVERRIDE; - virtual bool PlatformIsLeaf() const OVERRIDE; + bool IsLeaf() const; bool IsCheckable() const; bool IsChecked() const; diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm index 545ed0c..be9ff5b 100644 --- a/content/browser/accessibility/browser_accessibility_cocoa.mm +++ b/content/browser/accessibility/browser_accessibility_cocoa.mm @@ -353,12 +353,13 @@ NSDictionary* attributeToMethodNameMap = nil; // accessibility children of this object. - (NSArray*)children { if (!children_) { - uint32 childCount = browserAccessibility_->PlatformChildCount(); - children_.reset([[NSMutableArray alloc] initWithCapacity:childCount]); - for (uint32 index = 0; index < childCount; ++index) { + children_.reset([[NSMutableArray alloc] + initWithCapacity:browserAccessibility_->child_count()] ); + for (uint32 index = 0; + index < browserAccessibility_->child_count(); + ++index) { BrowserAccessibilityCocoa* child = - browserAccessibility_->PlatformGetChild(index)-> - ToBrowserAccessibilityCocoa(); + browserAccessibility_->GetChild(index)->ToBrowserAccessibilityCocoa(); if ([child isIgnored]) [children_ addObjectsFromArray:[child children]]; else @@ -1050,9 +1051,9 @@ NSDictionary* attributeToMethodNameMap = nil; return nil; } for (size_t i = 0; - i < browserAccessibility_->PlatformChildCount(); + i < browserAccessibility_->child_count(); ++i) { - BrowserAccessibility* child = browserAccessibility_->PlatformGetChild(i); + BrowserAccessibility* child = browserAccessibility_->GetChild(i); if (child->role() != WebKit::WebAXRoleRow) continue; int rowIndex; @@ -1065,9 +1066,9 @@ NSDictionary* attributeToMethodNameMap = nil; if (rowIndex > row) break; for (size_t j = 0; - j < child->PlatformChildCount(); + j < child->child_count(); ++j) { - BrowserAccessibility* cell = child->PlatformGetChild(j); + BrowserAccessibility* cell = child->GetChild(j); if (cell->role() != WebKit::WebAXRoleCell) continue; int colIndex; diff --git a/content/browser/accessibility/browser_accessibility_gtk.cc b/content/browser/accessibility/browser_accessibility_gtk.cc index acab43b..faf4c82 100644 --- a/content/browser/accessibility/browser_accessibility_gtk.cc +++ b/content/browser/accessibility/browser_accessibility_gtk.cc @@ -208,8 +208,7 @@ static gint browser_accessibility_get_n_children(AtkObject* atk_object) { BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); if (!obj) return 0; - - return obj->PlatformChildCount(); + return obj->children().size(); } static AtkObject* browser_accessibility_ref_child( @@ -217,10 +216,6 @@ static AtkObject* browser_accessibility_ref_child( BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); if (!obj) return NULL; - - if (index < 0 || index >= static_cast<gint>(obj->PlatformChildCount())) - return NULL; - AtkObject* result = obj->children()[index]->ToBrowserAccessibilityGtk()->GetAtkObject(); g_object_ref(result); diff --git a/content/browser/accessibility/browser_accessibility_manager_android.cc b/content/browser/accessibility/browser_accessibility_manager_android.cc index 22479fd..c0562d0 100644 --- a/content/browser/accessibility/browser_accessibility_manager_android.cc +++ b/content/browser/accessibility/browser_accessibility_manager_android.cc @@ -192,9 +192,11 @@ jboolean BrowserAccessibilityManagerAndroid::PopulateAccessibilityNodeInfo( Java_BrowserAccessibilityManager_setAccessibilityNodeInfoParent( env, obj, info, node->parent()->renderer_id()); } - for (unsigned i = 0; i < node->PlatformChildCount(); ++i) { - Java_BrowserAccessibilityManager_addAccessibilityNodeInfoChild( - env, obj, info, node->children()[i]->renderer_id()); + if (!node->IsLeaf()) { + for (unsigned i = 0; i < node->child_count(); ++i) { + Java_BrowserAccessibilityManager_addAccessibilityNodeInfoChild( + env, obj, info, node->children()[i]->renderer_id()); + } } Java_BrowserAccessibilityManager_setAccessibilityNodeInfoBooleanAttributes( env, obj, info, @@ -336,9 +338,11 @@ void BrowserAccessibilityManagerAndroid::FuzzyHitTestImpl( return; } - for (uint32 i = 0; i < node->PlatformChildCount(); i++) { - BrowserAccessibility* child = node->PlatformGetChild(i); - FuzzyHitTestImpl(x, y, child, nearest_candidate, nearest_distance); + if (!node->IsLeaf()) { + for (uint32 i = 0; i < node->child_count(); i++) { + BrowserAccessibility* child = node->GetChild(i); + FuzzyHitTestImpl(x, y, child, nearest_candidate, nearest_distance); + } } } diff --git a/content/browser/accessibility/browser_accessibility_manager_unittest.cc b/content/browser/accessibility/browser_accessibility_manager_unittest.cc index bd1d165..dd4fbd1 100644 --- a/content/browser/accessibility/browser_accessibility_manager_unittest.cc +++ b/content/browser/accessibility/browser_accessibility_manager_unittest.cc @@ -142,8 +142,7 @@ TEST(BrowserAccessibilityManagerTest, TestNoLeaks) { static_cast<CountedBrowserAccessibility*>(manager->GetRoot()); root_accessible->NativeAddReference(); CountedBrowserAccessibility* child1_accessible = - static_cast<CountedBrowserAccessibility*>( - root_accessible->PlatformGetChild(1)); + static_cast<CountedBrowserAccessibility*>(root_accessible->GetChild(1)); child1_accessible->NativeAddReference(); // Now delete the manager, and only one of the three nodes in the tree @@ -234,16 +233,13 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects) { static_cast<CountedBrowserAccessibility*>(manager->GetRoot()); root_accessible->NativeAddReference(); CountedBrowserAccessibility* child1_accessible = - static_cast<CountedBrowserAccessibility*>( - root_accessible->PlatformGetChild(0)); + static_cast<CountedBrowserAccessibility*>(root_accessible->GetChild(0)); child1_accessible->NativeAddReference(); CountedBrowserAccessibility* child2_accessible = - static_cast<CountedBrowserAccessibility*>( - root_accessible->PlatformGetChild(1)); + static_cast<CountedBrowserAccessibility*>(root_accessible->GetChild(1)); child2_accessible->NativeAddReference(); CountedBrowserAccessibility* child3_accessible = - static_cast<CountedBrowserAccessibility*>( - root_accessible->PlatformGetChild(2)); + static_cast<CountedBrowserAccessibility*>(root_accessible->GetChild(2)); child3_accessible->NativeAddReference(); // Check the index in parent. @@ -411,16 +407,15 @@ TEST(BrowserAccessibilityManagerTest, TestReuseBrowserAccessibilityObjects2) { static_cast<CountedBrowserAccessibility*>(manager->GetRoot()); root_accessible->NativeAddReference(); CountedBrowserAccessibility* container_accessible = - static_cast<CountedBrowserAccessibility*>( - root_accessible->PlatformGetChild(0)); + static_cast<CountedBrowserAccessibility*>(root_accessible->GetChild(0)); container_accessible->NativeAddReference(); CountedBrowserAccessibility* child2_accessible = static_cast<CountedBrowserAccessibility*>( - container_accessible->PlatformGetChild(1)); + container_accessible->GetChild(1)); child2_accessible->NativeAddReference(); CountedBrowserAccessibility* child3_accessible = static_cast<CountedBrowserAccessibility*>( - container_accessible->PlatformGetChild(2)); + container_accessible->GetChild(2)); child3_accessible->NativeAddReference(); // Check the index in parent. diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc index c6ffa4d..df3263e 100644 --- a/content/browser/accessibility/browser_accessibility_win.cc +++ b/content/browser/accessibility/browser_accessibility_win.cc @@ -358,8 +358,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accChildCount(LONG* child_count) { if (!child_count) return E_INVALIDARG; - *child_count = PlatformChildCount(); - + *child_count = children_.size(); return S_OK; } @@ -876,7 +875,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_groupPosition( parent_ && parent_->role() == WebKit::WebAXRoleListBox) { *group_level = 0; - *similar_items_in_group = parent_->PlatformChildCount(); + *similar_items_in_group = parent_->child_count(); *position_in_group = index_in_parent_ + 1; return S_OK; } @@ -2619,13 +2618,12 @@ STDMETHODIMP BrowserAccessibilityWin::get_childAt( if (!node) return E_INVALIDARG; - BrowserAccessibility* child = PlatformGetChild(child_index); - if (!child) { + if (child_index < children_.size()) { *node = NULL; return S_FALSE; } - *node = child->ToBrowserAccessibilityWin()->NewReference(); + *node = children_[child_index]->ToBrowserAccessibilityWin()->NewReference(); return S_OK; } @@ -2805,7 +2803,7 @@ void BrowserAccessibilityWin::PreInitialize() { parent_ && parent_->role() == WebKit::WebAXRoleListBox) { ia2_attributes_.push_back( - L"setsize:" + base::IntToString16(parent_->PlatformChildCount())); + L"setsize:" + base::IntToString16(parent_->child_count())); ia2_attributes_.push_back( L"setsize:" + base::IntToString16(index_in_parent_ + 1)); } @@ -2972,8 +2970,8 @@ void BrowserAccessibilityWin::PostInitialize() { hyperlink_offset_to_index_.clear(); hyperlinks_.clear(); hypertext_.clear(); - for (unsigned int i = 0; i < PlatformChildCount(); ++i) { - BrowserAccessibility* child = PlatformGetChild(i); + for (unsigned int i = 0; i < children().size(); ++i) { + BrowserAccessibility* child = children()[i]; if (child->role() == WebKit::WebAXRoleStaticText) { hypertext_ += UTF8ToUTF16(child->name()); } else { @@ -3067,8 +3065,8 @@ BrowserAccessibilityWin* BrowserAccessibilityWin::GetTargetFromChildID( if (child_id == CHILDID_SELF) return this; - if (child_id >= 1 && child_id <= static_cast<LONG>(PlatformChildCount())) - return PlatformGetChild(child_id - 1)->ToBrowserAccessibilityWin(); + if (child_id >= 1 && child_id <= static_cast<LONG>(children_.size())) + return children_[child_id - 1]->ToBrowserAccessibilityWin(); return manager_->ToBrowserAccessibilityManagerWin()-> GetFromUniqueIdWin(child_id); diff --git a/content/browser/accessibility/browser_accessibility_win_unittest.cc b/content/browser/accessibility/browser_accessibility_win_unittest.cc index 4c1ceeb..c623e25 100644 --- a/content/browser/accessibility/browser_accessibility_win_unittest.cc +++ b/content/browser/accessibility/browser_accessibility_win_unittest.cc @@ -347,7 +347,7 @@ TEST_F(BrowserAccessibilityTest, TestTextBoundaries) { BrowserAccessibilityWin* root_obj = manager->GetRoot()->ToBrowserAccessibilityWin(); BrowserAccessibilityWin* text1_obj = - root_obj->PlatformGetChild(0)->ToBrowserAccessibilityWin(); + root_obj->GetChild(0)->ToBrowserAccessibilityWin(); long text1_len; ASSERT_EQ(S_OK, text1_obj->get_nCharacters(&text1_len)); diff --git a/content/common/accessibility_node_data.cc b/content/common/accessibility_node_data.cc index f73a812..8f244df 100644 --- a/content/common/accessibility_node_data.cc +++ b/content/common/accessibility_node_data.cc @@ -70,10 +70,6 @@ void AccessibilityNodeData::SetName(std::string name) { string_attributes.push_back(std::make_pair(ATTR_NAME, name)); } -void AccessibilityNodeData::SetValue(std::string value) { - string_attributes.push_back(std::make_pair(ATTR_VALUE, value)); -} - AccessibilityNodeDataTreeNode::AccessibilityNodeDataTreeNode() : AccessibilityNodeData() { } @@ -184,7 +180,6 @@ std::string AccessibilityNodeData::DebugString(bool recursive) const { case WebKit::WebAXRoleImageMap: result += " IMAGE_MAP"; break; case WebKit::WebAXRoleImageMapLink: result += " IMAGE_MAP_LINK"; break; case WebKit::WebAXRoleIncrementor: result += " INCREMENTOR"; break; - case WebKit::WebAXRoleInlineTextBox: result += " INLINE_TEXT_BOX"; break; case WebKit::WebAXRoleLabel: result += " LABEL"; break; case WebKit::WebAXRoleLink: result += " LINK"; break; case WebKit::WebAXRoleList: result += " LIST"; break; @@ -379,23 +374,6 @@ std::string AccessibilityNodeData::DebugString(bool recursive) const { case ATTR_COLOR_VALUE_BLUE: result += " color_value_blue=" + value; break; - case ATTR_TEXT_DIRECTION: - switch (int_attributes[i].second) { - case WebKit::WebAXTextDirectionLR: - default: - result += " text_direction=lr"; - break; - case WebKit::WebAXTextDirectionRL: - result += " text_direction=rl"; - break; - case WebKit::WebAXTextDirectionTB: - result += " text_direction=tb"; - break; - case WebKit::WebAXTextDirectionBT: - result += " text_direction=bt"; - break; - } - break; } } @@ -531,15 +509,6 @@ std::string AccessibilityNodeData::DebugString(bool recursive) const { case ATTR_UNIQUE_CELL_IDS: result += " unique_cell_ids=" + IntVectorToString(values); break; - case ATTR_CHARACTER_OFFSETS: - result += " character_offsets=" + IntVectorToString(values); - break; - case ATTR_WORD_STARTS: - result += " word_starts=" + IntVectorToString(values); - break; - case ATTR_WORD_ENDS: - result += " word_ends=" + IntVectorToString(values); - break; } } diff --git a/content/common/accessibility_node_data.h b/content/common/accessibility_node_data.h index c0c0766..34e9347 100644 --- a/content/common/accessibility_node_data.h +++ b/content/common/accessibility_node_data.h @@ -88,10 +88,7 @@ struct CONTENT_EXPORT AccessibilityNodeData { // Color value for WebKit::WebAXRoleColorWell, each component is 0..255 ATTR_COLOR_VALUE_RED, ATTR_COLOR_VALUE_GREEN, - ATTR_COLOR_VALUE_BLUE, - - // Inline text attributes. - ATTR_TEXT_DIRECTION + ATTR_COLOR_VALUE_BLUE }; enum FloatAttribute { @@ -148,20 +145,7 @@ struct CONTENT_EXPORT AccessibilityNodeData { // For a table, the unique cell ids in row-major order of their first // occurrence. - ATTR_UNIQUE_CELL_IDS, - - // For inline text. This is the pixel position of the end of this - // character within the bounding rectangle of this object, in the - // direction given by ATTR_TEXT_DIRECTION. For example, for left-to-right - // text, the first offset is the right coordinate of the first character - // within the object's bounds, the second offset is the right coordinate - // of the second character, and so on. - ATTR_CHARACTER_OFFSETS, - - // For inline text. These int lists must be the same size; they represent - // the start and end character index of each word within this text. - ATTR_WORD_STARTS, - ATTR_WORD_ENDS, + ATTR_UNIQUE_CELL_IDS }; AccessibilityNodeData(); @@ -175,11 +159,9 @@ struct CONTENT_EXPORT AccessibilityNodeData { void AddIntListAttribute(IntListAttribute attribute, const std::vector<int32>& value); - // Convenience functions, mainly for writing unit tests. + // Convenience function, mainly for writing unit tests. // Equivalent to AddStringAttribute(ATTR_NAME, name). void SetName(std::string name); - // Equivalent to AddStringAttribute(ATTR_VALUE, value). - void SetValue(std::string value); #ifndef NDEBUG virtual std::string DebugString(bool recursive) const; diff --git a/content/renderer/accessibility/accessibility_node_serializer.cc b/content/renderer/accessibility/accessibility_node_serializer.cc index 488b693..87fd149 100644 --- a/content/renderer/accessibility/accessibility_node_serializer.cc +++ b/content/renderer/accessibility/accessibility_node_serializer.cc @@ -151,32 +151,6 @@ void SerializeAccessibilityNode( dst->AddIntAttribute(dst->ATTR_COLOR_VALUE_BLUE, b); } - if (dst->role == WebKit::WebAXRoleInlineTextBox) { - dst->AddIntAttribute(dst->ATTR_TEXT_DIRECTION, src.textDirection()); - - WebVector<int> src_character_offsets; - src.characterOffsets(src_character_offsets); - std::vector<int32> character_offsets; - character_offsets.reserve(src_character_offsets.size()); - for (size_t i = 0; i < src_character_offsets.size(); ++i) - character_offsets.push_back(src_character_offsets[i]); - dst->AddIntListAttribute(dst->ATTR_CHARACTER_OFFSETS, character_offsets); - - WebVector<int> src_word_starts; - WebVector<int> src_word_ends; - src.wordBoundaries(src_word_starts, src_word_ends); - std::vector<int32> word_starts; - std::vector<int32> word_ends; - word_starts.reserve(src_word_starts.size()); - word_ends.reserve(src_word_starts.size()); - for (size_t i = 0; i < src_word_starts.size(); ++i) { - word_starts.push_back(src_word_starts[i]); - word_ends.push_back(src_word_ends[i]); - } - dst->AddIntListAttribute(dst->ATTR_WORD_STARTS, word_starts); - dst->AddIntListAttribute(dst->ATTR_WORD_ENDS, word_ends); - } - if (src.accessKey().length()) dst->AddStringAttribute(dst->ATTR_ACCESS_KEY, UTF16ToUTF8(src.accessKey())); if (src.actionVerb().length()) diff --git a/content/renderer/accessibility/renderer_accessibility_browsertest.cc b/content/renderer/accessibility/renderer_accessibility_browsertest.cc index b8da316..7f91243 100644 --- a/content/renderer/accessibility/renderer_accessibility_browsertest.cc +++ b/content/renderer/accessibility/renderer_accessibility_browsertest.cc @@ -332,8 +332,8 @@ TEST_F(RendererAccessibilityTest, scoped_ptr<TestRendererAccessibilityComplete> accessibility( new TestRendererAccessibilityComplete(view())); accessibility->SendPendingAccessibilityEvents(); - EXPECT_EQ(5, accessibility->browser_tree_node_count()); - EXPECT_EQ(5, CountAccessibilityNodesSentToBrowser()); + EXPECT_EQ(3, accessibility->browser_tree_node_count()); + EXPECT_EQ(3, CountAccessibilityNodesSentToBrowser()); // Post a "value changed" event, but then swap out // before sending it. It shouldn't send the event while @@ -479,8 +479,8 @@ TEST_F(RendererAccessibilityTest, DetachAccessibilityObject) { scoped_ptr<TestRendererAccessibilityComplete> accessibility( new TestRendererAccessibilityComplete(view())); accessibility->SendPendingAccessibilityEvents(); - EXPECT_EQ(7, accessibility->browser_tree_node_count()); - EXPECT_EQ(7, CountAccessibilityNodesSentToBrowser()); + EXPECT_EQ(5, accessibility->browser_tree_node_count()); + EXPECT_EQ(5, CountAccessibilityNodesSentToBrowser()); // Initially, the accessibility tree looks like this: // @@ -488,9 +488,7 @@ TEST_F(RendererAccessibilityTest, DetachAccessibilityObject) { // +--Body // +--Anonymous Block // +--Static Text "1" - // +--Inline Text Box "1" // +--Static Text "2" - // +--Inline Text Box "2" WebDocument document = view()->GetWebView()->mainFrame()->document(); WebAXObject root_obj = document.accessibilityObject(); WebAXObject body = root_obj.childAt(0); @@ -518,19 +516,17 @@ TEST_F(RendererAccessibilityTest, DetachAccessibilityObject) { // Document // +--Body // +--Static Text "1" - // +--Inline Text Box "1" // +--Static Text "2" - // +--Inline Text Box "2" // // We just assert that there are now four nodes in the // accessibility tree and that only three nodes needed // to be updated (the body, the static text 1, and // the static text 2). - EXPECT_EQ(6, accessibility->browser_tree_node_count()); + EXPECT_EQ(4, accessibility->browser_tree_node_count()); AccessibilityHostMsg_EventParams event; GetLastAccEvent(&event); - ASSERT_EQ(5U, event.nodes.size()); + ASSERT_EQ(3U, event.nodes.size()); EXPECT_EQ(body.axID(), event.nodes[0].id); EXPECT_EQ(text_1.axID(), event.nodes[1].id); diff --git a/content/renderer/accessibility/renderer_accessibility_complete.cc b/content/renderer/accessibility/renderer_accessibility_complete.cc index e6c003f..d70a00a 100644 --- a/content/renderer/accessibility/renderer_accessibility_complete.cc +++ b/content/renderer/accessibility/renderer_accessibility_complete.cc @@ -36,7 +36,6 @@ RendererAccessibilityComplete::RendererAccessibilityComplete( last_scroll_offset_(gfx::Size()), ack_pending_(false) { WebAXObject::enableAccessibility(); - WebAXObject::enableInlineTextBoxAccessibility(); const WebDocument& document = GetMainDocument(); if (!document.isNull()) { |