Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(334)

Unified Diff: content/browser/accessibility/browser_accessibility.cc

Issue 7745035: Add a big grab bag of missing web accessibility functionality... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility.cc
===================================================================
--- content/browser/accessibility/browser_accessibility.cc (revision 98225)
+++ content/browser/accessibility/browser_accessibility.cc (working copy)
@@ -6,8 +6,12 @@
#include "base/logging.h"
#include "base/string_number_conversions.h"
+#include "base/string_util.h"
#include "content/browser/accessibility/browser_accessibility_manager.h"
+#include "content/common/view_messages.h"
+typedef WebAccessibility::BoolAttribute BoolAttribute;
+typedef WebAccessibility::FloatAttribute FloatAttribute;
typedef WebAccessibility::IntAttribute IntAttribute;
typedef WebAccessibility::StringAttribute StringAttribute;
@@ -55,18 +59,22 @@
child_id_ = child_id;
index_in_parent_ = index_in_parent;
- renderer_id_ = src.id;
+ // Update all of the rest of the attributes.
name_ = src.name;
value_ = src.value;
+ role_ = src.role;
+ state_ = src.state;
+ renderer_id_ = src.id;
string_attributes_ = src.string_attributes;
int_attributes_ = src.int_attributes;
+ float_attributes_ = src.float_attributes;
+ bool_attributes_ = src.bool_attributes;
html_attributes_ = src.html_attributes;
location_ = src.location;
- role_ = src.role;
- state_ = src.state;
indirect_child_ids_ = src.indirect_child_ids;
line_breaks_ = src.line_breaks;
cell_ids_ = src.cell_ids;
+ unique_cell_ids_ = src.unique_cell_ids;
Initialize();
}
@@ -166,6 +174,16 @@
ref_count_--;
if (ref_count_ == 0) {
+ // Allow the object to fire a TEXT_REMOVED notification.
+ name_.clear();
+ value_.clear();
+ SendNodeUpdateEvents();
+
+ manager_->NotifyAccessibilityEvent(
+ ViewHostMsg_AccessibilityNotification_Type::
+ NOTIFICATION_TYPE_OBJECT_HIDE,
+ this);
David Tseng 2011/08/26 16:14:37 I think you want to align this with "ViewHostMsg_A
dmazzoni 2011/08/29 18:08:51 You're right, thanks!
+
instance_active_ = false;
children_.clear();
manager_->Remove(child_id_, renderer_id_);
@@ -201,3 +219,45 @@
return false;
}
+
+bool BrowserAccessibility::GetFloatAttribute(
+ FloatAttribute attribute, float* value) {
+ std::map<FloatAttribute, float>::iterator iter =
+ float_attributes_.find(attribute);
+ if (iter != float_attributes_.end()) {
+ *value = iter->second;
+ return true;
+ }
+
+ return false;
+}
+
+bool BrowserAccessibility::GetBoolAttribute(
+ BoolAttribute attribute, bool* value) {
+ std::map<BoolAttribute, bool>::iterator iter =
+ bool_attributes_.find(attribute);
+ if (iter != bool_attributes_.end()) {
+ *value = iter->second;
+ return true;
+ }
+
+ return false;
+}
+
+bool BrowserAccessibility::GetHtmlAttribute(
+ const char* html_attr, string16* value) {
+ for (size_t i = 0; i < html_attributes_.size(); i++) {
+ string16& attr = html_attributes_[i].first;
+ if (LowerCaseEqualsASCII(attr, html_attr)) {
+ *value = html_attributes_[i].second;
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool BrowserAccessibility::IsEditableText() {
David Tseng 2011/08/26 16:14:37 const method?
dmazzoni 2011/08/29 18:08:51 Done. I made some other methods const as well.
+ return (role_ == WebAccessibility::ROLE_TEXT_FIELD ||
+ role_ == WebAccessibility::ROLE_TEXTAREA);
+}

Powered by Google App Engine
This is Rietveld 408576698