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

Unified Diff: chrome/browser/browser_accessibility.h

Issue 2121004: Windows accessibility improvements: 1. All WebKit roles are now passed to the... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 7 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
« no previous file with comments | « no previous file | chrome/browser/browser_accessibility.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browser_accessibility.h
===================================================================
--- chrome/browser/browser_accessibility.h (revision 47913)
+++ chrome/browser/browser_accessibility.h (working copy)
@@ -31,12 +31,16 @@
: public CComObjectRootEx<CComMultiThreadModel>,
public IDispatchImpl<IAccessible2, &IID_IAccessible2,
&LIBID_IAccessible2Lib>,
+ public IAccessibleImage,
+ public IAccessibleText,
public IServiceProvider {
public:
BEGIN_COM_MAP(BrowserAccessibility)
COM_INTERFACE_ENTRY2(IDispatch, IAccessible2)
COM_INTERFACE_ENTRY2(IAccessible, IAccessible2)
COM_INTERFACE_ENTRY(IAccessible2)
+ COM_INTERFACE_ENTRY(IAccessibleImage)
+ COM_INTERFACE_ENTRY(IAccessibleText)
COM_INTERFACE_ENTRY(IServiceProvider)
END_COM_MAP()
@@ -71,7 +75,8 @@
BrowserAccessibility* GetNextSibling();
// Accessors
- LONG child_id() { return child_id_; }
+ LONG child_id() const { return child_id_; }
+ int32 renderer_id() const { return renderer_id_; }
// Add one to the reference count and return the same object. Always
// use this method when returning a BrowserAccessibility object as
@@ -161,6 +166,10 @@
// Returns the state bitmask from a larger set of possible states.
STDMETHODIMP get_states(AccessibleStates* states);
+ // Returns the attributes specific to this IAccessible2 object,
+ // such as a cell's formula.
+ STDMETHODIMP get_attributes(BSTR* attributes);
+
// Get the unique ID of this object so that the client knows if it's
// been encountered previously.
STDMETHODIMP get_uniqueID(LONG* unique_id);
@@ -184,7 +193,7 @@
}
STDMETHODIMP get_relations(LONG max_relations,
IAccessibleRelation** relations,
- LONG *n_relations) {
+ LONG* n_relations) {
return E_NOTIMPL;
}
STDMETHODIMP scrollTo(enum IA2ScrollType scroll_type) {
@@ -219,9 +228,100 @@
STDMETHODIMP get_locale(IA2Locale* locale) {
return E_NOTIMPL;
}
- STDMETHODIMP get_attributes(BSTR* attributes) {
+
+ //
+ // IAccessibleImage methods.
+ //
+
+ STDMETHODIMP get_description(BSTR* description);
+
+ STDMETHODIMP get_imagePosition(enum IA2CoordinateType coordinate_type,
+ long* x, long* y);
+
+ STDMETHODIMP get_imageSize(long* height, long* width);
+
+ //
+ // IAccessibleText methods.
+ //
+
+ STDMETHODIMP get_nCharacters(long* n_characters);
+
+ STDMETHODIMP get_text(long start_offset, long end_offset, BSTR* text);
+
+ STDMETHODIMP get_caretOffset(long* offset);
+
+ // IAccessibleText methods not implemented.
+ STDMETHODIMP addSelection(long start_offset, long end_offset) {
return E_NOTIMPL;
}
+ STDMETHODIMP get_attributes(long offset, long* start_offset, long* end_offset,
+ BSTR* text_attributes) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP get_characterExtents(long offset,
+ enum IA2CoordinateType coord_type,
+ long* x, long* y,
+ long* width, long* height) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP get_nSelections(long* n_selections) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP get_offsetAtPoint(long x, long y,
+ enum IA2CoordinateType coord_type,
+ long* offset) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP get_selection(long selection_index,
+ long* start_offset,
+ long* end_offset) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP get_textBeforeOffset(long offset,
+ enum IA2TextBoundaryType boundary_type,
+ long* start_offset, long* end_offset,
+ BSTR* text) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP get_textAfterOffset(long offset,
+ enum IA2TextBoundaryType boundary_type,
+ long* start_offset, long* end_offset,
+ BSTR* text) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP get_textAtOffset(long offset,
+ enum IA2TextBoundaryType boundary_type,
+ long* start_offset, long* end_offset,
+ BSTR* text) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP removeSelection(long selection_index) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP setCaretOffset(long offset) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP setSelection(long selection_index,
+ long start_offset,
+ long end_offset) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP scrollSubstringTo(long start_index,
+ long end_index,
+ enum IA2ScrollType scroll_type) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP scrollSubstringToPoint(long start_index, long end_index,
+ enum IA2CoordinateType coordinate_type,
+ long x, long y) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP get_newText(IA2TextSegment* new_text) {
+ return E_NOTIMPL;
+ }
+ STDMETHODIMP get_oldText(IA2TextSegment* old_text) {
+ return E_NOTIMPL;
+ }
//
// IServiceProvider methods.
@@ -229,6 +329,15 @@
STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void** object);
+ //
+ // CComObjectRootEx methods.
+ //
+
+ HRESULT WINAPI InternalQueryInterface(void* this_ptr,
+ const _ATL_INTMAP_ENTRY* entries,
+ REFIID iid,
+ void** object);
+
private:
// Many MSAA methods take a var_id parameter indicating that the operation
// should be performed on a particular child ID, rather than this object.
@@ -237,14 +346,18 @@
// Does not return a new reference.
BrowserAccessibility* GetTargetFromChildID(const VARIANT& var_id);
- // Returns a conversion from the BrowserAccessibilityRole (as defined in
- // webkit/glue/webaccessibility.h) to an MSAA role.
- LONG MSAARole(LONG browser_accessibility_role);
+ // Initialize the role and state metadata from the role enum and state
+ // bitmasks defined in webkit/glue/webaccessibility.h.
+ void InitRoleAndState(LONG web_accessibility_role,
+ LONG web_accessibility_state);
- // Returns a conversion from the BrowserAccessibilityState (as defined in
- // webkit/glue/webaccessibility.h) to MSAA states set.
- LONG MSAAState(LONG browser_accessibility_state);
+ // Return true if this attribute is in the attributes map.
+ bool HasAttribute(WebAccessibility::Attribute attribute);
+ // Retrieve the string value of an attribute from the attribute map and
+ // returns true if found.
+ bool GetAttribute(WebAccessibility::Attribute attribute, string16* value);
+
// The manager of this tree of accessibility objects; needed for
// global operations like focus tracking.
BrowserAccessibilityManager* manager_;
@@ -264,12 +377,13 @@
// events.
string16 name_;
string16 value_;
- string16 action_;
- string16 description_;
- string16 help_;
- string16 shortcut_;
+ std::map<int32, string16> attributes_;
+
LONG role_;
LONG state_;
+ string16 role_name_;
+ LONG ia2_role_;
+ LONG ia2_state_;
WebKit::WebRect location_;
// COM objects are reference-counted. When we're done with this object
« no previous file with comments | « no previous file | chrome/browser/browser_accessibility.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698