browser_accessibility_cocoa.h revision 731df977c0511bca2206b5f333555b1205ff1f43
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#ifndef CHROME_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COCOA_H_ 6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#define CHROME_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COCOA_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#import <Cocoa/Cocoa.h> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#import "base/scoped_nsobject.h" 12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#import "chrome/browser/accessibility/browser_accessibility_delegate_mac.h" 13731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/accessibility/browser_accessibility.h" 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// BrowserAccessibilityCocoa is a cocoa wrapper around the BrowserAccessibility 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// object. The renderer converts webkit's accessibility tree into a 173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// WebAccessibility tree and passes it to the browser process over IPC. 183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// This class converts it into a format Cocoa can query. 19731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick@interface BrowserAccessibilityCocoa : NSObject { 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch @private 21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick BrowserAccessibility* browserAccessibility_; 22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick id<BrowserAccessibilityDelegateCocoa> delegate_; 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// This creates a cocoa browser accessibility object around 26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// the cross platform BrowserAccessibility object. The delegate is 273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// used to communicate with the host renderer. None of these 283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// parameters can be null. 29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick- (id)initWithObject:(BrowserAccessibility*)accessibility 30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick delegate:(id<BrowserAccessibilityDelegateCocoa>)delegate; 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// Children is an array of BrowserAccessibility objects, representing 333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// the accessibility children of this object. 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@property(nonatomic, readonly) NSArray* children; 353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// isIgnored returns whether or not the accessibility object 363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// should be ignored by the accessibility hierarchy. 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@property(nonatomic, readonly, getter=isIgnored) BOOL ignored; 383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// The origin of this object in the page's document. 393345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// This is relative to webkit's top-left origin, not Cocoa's 403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// bottom-left origin. 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@property(nonatomic, readonly) NSPoint origin; 423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// A string indicating the role of this object as far as accessibility 433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// is concerned. 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@property(nonatomic, readonly) NSString* role; 453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// The size of this object. 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@property(nonatomic, readonly) NSSize size; 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@end 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#endif // CHROME_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COCOA_H_ 51