Index: content/browser/accessibility/browser_accessibility_win.h |
diff --git a/content/browser/accessibility/browser_accessibility_win.h b/content/browser/accessibility/browser_accessibility_win.h |
index cd339d53c911f76d76f9266b661ed7b3b7db9b6a..305dabaffedede3b90650f954c2e256505f7dd9f 100644 |
--- a/content/browser/accessibility/browser_accessibility_win.h |
+++ b/content/browser/accessibility/browser_accessibility_win.h |
@@ -97,11 +97,15 @@ BrowserAccessibilityWin |
// like NotifyWinEvent, and as the unique ID for IAccessible2 and ISimpleDOM. |
LONG unique_id_win() const { return unique_id_win_; } |
+ CONTENT_EXPORT void UpdateIAccessibleText(); |
+ |
// |
// BrowserAccessibility methods. |
// |
CONTENT_EXPORT virtual void OnDataChanged() override; |
CONTENT_EXPORT virtual void OnUpdateFinished() override; |
+ CONTENT_EXPORT virtual void OnSubtreeWillBeDeleted() override; |
+ CONTENT_EXPORT virtual void OnSubtreeCreationFinished() override; |
CONTENT_EXPORT virtual void NativeAddReference() override; |
CONTENT_EXPORT virtual void NativeReleaseReference() override; |
CONTENT_EXPORT virtual bool IsNative() const override; |
@@ -775,14 +779,18 @@ BrowserAccessibilityWin |
void** object); |
// Accessors. |
- int32 ia_role() const { return ia_role_; } |
- int32 ia_state() const { return ia_state_; } |
- const base::string16& role_name() const { return role_name_; } |
- int32 ia2_role() const { return ia2_role_; } |
- int32 ia2_state() const { return ia2_state_; } |
+ int32 ia_role() const { return win_attributes_->ia_role; } |
+ int32 ia_state() const { return win_attributes_->ia_state; } |
+ const base::string16& role_name() const { return win_attributes_->role_name; } |
+ int32 ia2_role() const { return win_attributes_->ia2_role; } |
+ int32 ia2_state() const { return win_attributes_->ia2_state; } |
const std::vector<base::string16>& ia2_attributes() const { |
- return ia2_attributes_; |
+ return win_attributes_->ia2_attributes; |
} |
+ base::string16 name() const { return win_attributes_->name; } |
+ base::string16 description() const { return win_attributes_->description; } |
+ base::string16 help() const { return win_attributes_->help; } |
+ base::string16 value() const { return win_attributes_->value; } |
private: |
// Add one to the reference count and return the same object. Always |
@@ -823,6 +831,9 @@ BrowserAccessibilityWin |
void IntAttributeToIA2(ui::AXIntAttribute attribute, |
const char* ia2_attr); |
+ // Append the accessible name from this node and its children. |
+ base::string16 GetNameRecursive() const; |
+ |
// Get the value text, which might come from the floating-point |
// value for some roles. |
base::string16 GetValueText(); |
@@ -831,6 +842,9 @@ BrowserAccessibilityWin |
// be the name, it may be the value, etc. depending on the role. |
base::string16 TextForIAccessibleText(); |
+ void ComputeHypertextRemovedAndInserted( |
+ int* start, int* old_len, int* new_len); |
+ |
// If offset is a member of IA2TextSpecialOffsets this function updates the |
// value of offset and returns, otherwise offset remains unchanged. |
void HandleSpecialTextOffset(const base::string16& text, LONG* offset); |
@@ -855,37 +869,40 @@ BrowserAccessibilityWin |
// IAccessible2 and ISimpleDOM. |
LONG unique_id_win_; |
- // IAccessible role and state. |
- int32 ia_role_; |
- int32 ia_state_; |
- base::string16 role_name_; |
+ struct WinAttributes { |
+ WinAttributes(); |
- // IAccessible2 role and state. |
- int32 ia2_role_; |
- int32 ia2_state_; |
+ // IAccessible role and state. |
+ int32 ia_role; |
+ int32 ia_state; |
+ base::string16 role_name; |
- // IAccessible2 attributes. |
- std::vector<base::string16> ia2_attributes_; |
+ // IAccessible name, description, help, value. |
+ base::string16 name; |
+ base::string16 description; |
+ base::string16 help; |
+ base::string16 value; |
- // True in Initialize when the object is first created, and false |
- // subsequent times. |
- bool first_time_; |
+ // IAccessible2 role and state. |
+ int32 ia2_role; |
+ int32 ia2_state; |
- // The previous text, before the last update to this object. |
- base::string16 previous_text_; |
+ // IAccessible2 attributes. |
+ std::vector<base::string16> ia2_attributes; |
+ }; |
- // The old text to return in IAccessibleText::get_oldText - this is like |
- // previous_text_ except that it's NOT updated when the object |
- // is initialized again but the text doesn't change. |
- base::string16 old_text_; |
+ scoped_ptr<WinAttributes> win_attributes_; |
- // The previous state, used to see if there was a state change. |
- int32 old_ia_state_; |
+ // Only valid during the scope of a IA2_EVENT_TEXT_REMOVED or |
+ // IA2_EVENT_TEXT_INSERTED event. |
+ scoped_ptr<WinAttributes> old_win_attributes_; |
// Relationships between this node and other nodes. |
std::vector<BrowserAccessibilityRelation*> relations_; |
- // The text of this node including embedded hyperlink characters. |
+ // IAccessibleText text of this node including |
+ // embedded hyperlink characters. |
+ base::string16 old_hypertext_; |
base::string16 hypertext_; |
// Maps the |hypertext_| embedded character offset to an index in |