#ifndef UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_MAC_H_
#define UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_MAC_H_
#import <Cocoa/Cocoa.h>
#include <memory>
#include "base/component_export.h"
#include "ui/accessibility/platform/ax_platform_node_base.h"
@class AXPlatformNodeCocoa;
namespace ui {
class COMPONENT_EXPORT(AX_PLATFORM) AXPlatformNodeMac
: public AXPlatformNodeBase {
public:
AXPlatformNodeMac(const AXPlatformNodeMac&) = delete;
AXPlatformNodeMac& operator=(const AXPlatformNodeMac&) = delete;
gfx::NativeViewAccessible GetNativeViewAccessible() override;
void NotifyAccessibilityEvent(ax::mojom::Event event_type) override;
void AnnounceTextAs(const std::u16string& text,
AnnouncementType announcement_type) override;
void Destroy() override;
bool IsPlatformCheckable() const override;
AXPlatformNodeCocoa* GetNativeWrapper() const;
AXPlatformNodeCocoa* ReleaseNativeWrapper();
void SetNativeWrapper(AXPlatformNodeCocoa* native_node);
protected:
AXPlatformNodeMac();
~AXPlatformNodeMac() override;
void AddAttributeToList(const char* name,
const char* value,
PlatformAttributeList* attributes) override;
private:
friend AXPlatformNode::Pointer AXPlatformNode::Create(
AXPlatformNodeDelegate& delegate);
struct ObjCStorage;
std::unique_ptr<ObjCStorage> objc_storage_;
};
COMPONENT_EXPORT(AX_PLATFORM)
bool IsNameExposedInAXValueForRole(ax::mojom::Role role);
}
#endif