| 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 b237be91a4ea8261423be379e3bc0e6039035b27..82e03ca8b6ce38b91144c2fecb54a3c6ef9895ef 100644
|
| --- a/content/browser/accessibility/browser_accessibility_win.h
|
| +++ b/content/browser/accessibility/browser_accessibility_win.h
|
| @@ -709,6 +709,10 @@ BrowserAccessibilityWin
|
| REFIID iid,
|
| void** object);
|
|
|
| + // Computes and caches the IA2 text style attributes for the text and other
|
| + // embedded child objects.
|
| + CONTENT_EXPORT void ComputeStylesIfNeeded();
|
| +
|
| CONTENT_EXPORT base::string16 GetText() const override;
|
|
|
| // Accessors.
|
| @@ -723,6 +727,10 @@ BrowserAccessibilityWin
|
| base::string16 name() const { return win_attributes_->name; }
|
| base::string16 description() const { return win_attributes_->description; }
|
| base::string16 value() const { return win_attributes_->value; }
|
| + const std::map<int, std::vector<base::string16>>& offset_to_text_attributes()
|
| + const {
|
| + return win_attributes_->offset_to_text_attributes;
|
| + }
|
| std::map<int32_t, int32_t>& hyperlink_offset_to_index() const {
|
| return win_attributes_->hyperlink_offset_to_index;
|
| }
|
| @@ -731,6 +739,9 @@ BrowserAccessibilityWin
|
| }
|
|
|
| private:
|
| + // Returns the IA2 text attributes for this object.
|
| + std::vector<base::string16> ComputeTextAttributes() const;
|
| +
|
| // Add one to the reference count and return the same object. Always
|
| // use this method when returning a BrowserAccessibilityWin object as
|
| // an output parameter to a COM interface, never use it otherwise.
|
| @@ -786,6 +797,9 @@ BrowserAccessibilityWin
|
|
|
| // Returns true if the current object is an IA2 hyperlink.
|
| bool IsHyperlink() const;
|
| + // Returns the hyperlink at the given text position, or nullptr if no
|
| + // hyperlink can be found.
|
| + BrowserAccessibilityWin* GetHyperlinkFromHypertextOffset(int offset) const;
|
|
|
| // Functions for retrieving offsets for hyperlinks and hypertext.
|
| // Return -1 in case of failure.
|
| @@ -847,22 +861,32 @@ BrowserAccessibilityWin
|
| LONG start_offset,
|
| ui::TextBoundaryDirection direction);
|
|
|
| - // Return a pointer to the object corresponding to the given id,
|
| - // does not make a new reference.
|
| - BrowserAccessibilityWin* GetFromID(int32_t id);
|
| + // Searches forward from the given offset until the start of the next style
|
| + // is found, or searches backward from the given offset until the start of the
|
| + // current style is found.
|
| + LONG FindStartOfStyle(LONG start_offset,
|
| + ui::TextBoundaryDirection direction) const;
|
| +
|
| + // ID refers to the node ID in the current tree, not the globally unique ID.
|
| + // TODO(nektar): Could we use globally unique IDs everywhere?
|
| + // TODO(nektar): Rename this function to GetFromNodeID.
|
| + BrowserAccessibilityWin* GetFromID(int32_t id) const;
|
|
|
| // Returns true if this is a list box option with a parent of type list box,
|
| // or a menu list option with a parent of type menu list popup.
|
| bool IsListBoxOptionOrMenuListOption();
|
|
|
| - // Updates object attributes of IA2 with html attributes.
|
| - void UpdateRequiredAttributes();
|
| -
|
| // Given an int list attribute containing the ids of related elements,
|
| // add a new IAccessibleRelation for this object with the given type name.
|
| void AddRelations(ui::AXIntListAttribute src_attr,
|
| const base::string16& iaccessiblerelation_type);
|
|
|
| + // Updates object attributes of IA2 with html attributes.
|
| + void UpdateRequiredAttributes();
|
| +
|
| + // Updates the IA2 text style attributes.
|
| + void UpdateTextAttributes();
|
| +
|
| struct WinAttributes {
|
| WinAttributes();
|
| ~WinAttributes();
|
| @@ -887,6 +911,9 @@ BrowserAccessibilityWin
|
| // Hypertext.
|
| base::string16 hypertext;
|
|
|
| + // Maps each style span to its start offset in hypertext.
|
| + std::map<int, std::vector<base::string16>> offset_to_text_attributes;
|
| +
|
| // Maps the |hypertext_| embedded character offset to an index in
|
| // |hyperlinks_|.
|
| std::map<int32_t, int32_t> hyperlink_offset_to_index;
|
|
|