pub struct AXUIElement { /* private fields */ }AXUIElement only.Expand description
A structure used to refer to an accessibility object.
An accessibility object provides information about the user interface object it represents. This information includes the object’s position in the accessibility hierarchy, its position on the display, details about what it is, and what actions it can perform. Accessibility objects respond to messages sent by assistive applications and send notifications that describe state changes.
See also Apple’s documentation
Implementations§
Source§impl AXUIElement
impl AXUIElement
Sourcepub unsafe fn copy_attribute_names(
&self,
names: NonNull<*const CFArray>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn copy_attribute_names( &self, names: NonNull<*const CFArray>, ) -> AXError
HIServices and AXError only.Returns a list of all the attributes supported by the specified accessibility object.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter names: On return, an array containing the accessibility object’s attribute names.
Returns: If unsuccessful,
AXUIElementCopyAttributeNames
may return one of the following error codes, among others:
-
kAXErrorAttributeUnsupported - The specified AXUIElementRef does not support the specified attribute.
-
kAXErrorIllegalArgument - One or both of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorFailure - There was a system memory failure.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
names must be a valid pointer.
Sourcepub unsafe fn copy_attribute_value(
&self,
attribute: &CFString,
value: NonNull<*const CFType>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn copy_attribute_value( &self, attribute: &CFString, value: NonNull<*const CFType>, ) -> AXError
HIServices and AXError only.Returns the value of an accessibility object’s attribute.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter attribute: The attribute name.
Parameter value: On return, the value associated with the specified attribute.
Returns: If unsuccessful,
AXUIElementCopyAttributeValue
may return one of the following error codes, among others:
-
kAXErrorAttributeUnsupported - The specified AXUIElementRef does not support the specified attribute.
-
kAXErrorNoValue - The specified attribute does not have a value.
-
kAXErrorIllegalArgument - One or more of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
value must be a valid pointer.
Sourcepub unsafe fn attribute_value_count(
&self,
attribute: &CFString,
count: NonNull<CFIndex>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn attribute_value_count( &self, attribute: &CFString, count: NonNull<CFIndex>, ) -> AXError
HIServices and AXError only.Returns the count of the array of an accessibility object’s attribute value.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter attribute: The attribute name.
Parameter count: On return, the size of the array that is the attribute’s value.
Returns: If unsuccessful,
AXUIElementGetAttributeValueCount
may return one of the following error codes, among others:
-
kAXErrorIllegalArgument - The attribute's value is not an array or one of the other arguments is an illegal value.
-
kAXErrorAttributeUnsupported - The specified AXUIElementRef does not support the specified attribute.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
count must be a valid pointer.
Sourcepub unsafe fn copy_attribute_values(
&self,
attribute: &CFString,
index: CFIndex,
max_values: CFIndex,
values: NonNull<*const CFArray>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn copy_attribute_values( &self, attribute: &CFString, index: CFIndex, max_values: CFIndex, values: NonNull<*const CFArray>, ) -> AXError
HIServices and AXError only.Returns an array of attribute values for the accessibility object’s attribute, starting at the specified index.
This function is useful for dealing with large arrays, for example, a table view with a large number of children.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter attribute: The attribute name.
Parameter index: The index into the array.
Parameter maxValues: The maximum number of values you want (this may be more or less than the number of values associated with the attribute).
Parameter values: On return, the attribute values you requested. If
maxValues
is greater than the number of values associated with the attribute, the
values
array will contain values found between
index
and the end of the attribute’s array, inclusive.
Returns: If unsuccessful,
AXUIElementCopyAttributeValues
may return one of the following error codes, among others:
-
kAXErrorIllegalArgument -
The attribute's value is not array, the
indexormaxValuesarguments are outside the array's range, or one of the other arguments is an illegal value. -
kAXErrorNoValue - The specified attribute does not have a value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
values must be a valid pointer.
Sourcepub unsafe fn is_attribute_settable(
&self,
attribute: &CFString,
settable: NonNull<u8>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn is_attribute_settable( &self, attribute: &CFString, settable: NonNull<u8>, ) -> AXError
HIServices and AXError only.Returns whether the specified accessibility object’s attribute can be modified.
If you receive a
kAXErrorCannotComplete
error from this function, you might want to repeat the request or change the timeout value.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter attribute: The attribute name.
Parameter settable: On return, a Boolean value indicating whether the attribute is settable.
Returns: If unsuccessful,
AXUIElementIsAttributeSettable
may return one of the following error codes, among others:
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way (often due to a timeout).
-
kAXErrorIllegalArgument - One or more of the arguments is an illegal value.
-
kAXErrorAttributeUnsupported - The specified AXUIElementRef does not support the specified attribute.
-
kAXErrorNoValue - The specified attribute does not have a value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
settable must be a valid pointer.
Sourcepub unsafe fn set_attribute_value(
&self,
attribute: &CFString,
value: &CFType,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn set_attribute_value( &self, attribute: &CFString, value: &CFType, ) -> AXError
HIServices and AXError only.Sets the accessibility object’s attribute to the specified value.
You can send and receive many different CFTypeRefs using the accessibility API. These include all CFPropertyListRef types, AXUIElementRef, AXValueRef, AXTextMarkerRef, AXTextMarkerRangeRef, CFNullRef, CFAttributedStringRef, and CRURLRef.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter attribute: The attribute name.
Parameter value: The new value for the attribute.
Returns: If unsuccessful,
AXUIElementSetAttributeValue
may return one of the following error codes, among others:
-
kAXErrorIllegalArgument - The value is not recognized by the accessible application or one of the other arguments is an illegal value.
-
kAXErrorAttributeUnsupported - The specified AXUIElementRef does not support the specified attribute.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
value should be of the correct type.
Sourcepub unsafe fn copy_multiple_attribute_values(
&self,
attributes: &CFArray,
options: AXCopyMultipleAttributeOptions,
values: NonNull<*const CFArray>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn copy_multiple_attribute_values( &self, attributes: &CFArray, options: AXCopyMultipleAttributeOptions, values: NonNull<*const CFArray>, ) -> AXError
HIServices and AXError only.Returns the values of multiple attributes in the accessibility object.
If the specified AXUIElementRef does not support an attribute passed in the
attributes
array, the returned array
can contain an error or CFNull at the corresponding position.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter attributes: An array of attribute names.
Parameter options: A value that tells
AXUIElementCopyMultipleAttributeValues
how to handle errors.
§Parameter values: On return, an array in which each position contains the value of the
attribute that is in the corresponding position in the passed-in
attributes
array (or CFNull). If
options
= 0,
the
values
array can contain an AXValueRef of type
kAXValueAXErrorType
in the corresponding position. If
options
kAXCopyMultipleAttributeOptionStopOnError
,
this function will return immediately when it gets an error.
Returns: If unsuccessful,
AXUIElementCopyMultipleAttributeValues
may return one of the following error codes, among others:
-
kAXErrorIllegalArgument - One of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
attributesgeneric must be of the correct type.valuesmust be a valid pointer.
Sourcepub unsafe fn copy_parameterized_attribute_names(
&self,
names: NonNull<*const CFArray>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn copy_parameterized_attribute_names( &self, names: NonNull<*const CFArray>, ) -> AXError
HIServices and AXError only.Returns a list of all the parameterized attributes supported by the specified accessibility object.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter names: On return, an array containing the accessibility object’s parameterized attribute names.
Returns: If unsuccessful,
AXUIElementCopyParameterizedAttributeNames
may return one of the following error codes, among others:
-
kAXErrorAttributeUnsupportedorkAXErrorParameterizedAttributeUnsupported - The specified AXUIElementRef does not support the specified parameterized attribute.
-
kAXErrorIllegalArgument - One or both of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorFailure - There was some sort of system memory failure.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
names must be a valid pointer.
Sourcepub unsafe fn copy_parameterized_attribute_value(
&self,
parameterized_attribute: &CFString,
parameter: &CFType,
result: NonNull<*const CFType>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn copy_parameterized_attribute_value( &self, parameterized_attribute: &CFString, parameter: &CFType, result: NonNull<*const CFType>, ) -> AXError
HIServices and AXError only.Returns the value of an accessibility object’s parameterized attribute.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter parameterizedAttribute: The parameterized attribute.
Parameter parameter: The parameter.
Parameter result: On return, the value of the parameterized attribute.
Returns: If unsuccessful,
AXUIElementCopyParameterizedAttributeValue
may return one of the following error codes, among others:
-
kAXErrorAttributeUnsupportedorkAXErrorParameterizedAttributeUnsupported - The specified AXUIElementRef does not support the specified parameterized attribute.
-
kAXErrorNoValue - The specified parameterized attribute does not have a value.
-
kAXErrorIllegalArgument - One or more of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
parametershould be of the correct type.resultmust be a valid pointer.
Sourcepub unsafe fn copy_action_names(
&self,
names: NonNull<*const CFArray>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn copy_action_names( &self, names: NonNull<*const CFArray>, ) -> AXError
HIServices and AXError only.Returns a list of all the actions the specified accessibility object can perform.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter names: On return, an array of actions the accessibility object can perform (empty if the accessibility object supports no actions).
Returns: If unsuccessful,
AXUIElementCopyActionNames
may return one of the following error codes, among others:
-
kAXErrorIllegalArgument - One or both of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorFailure - There was some sort of system memory failure.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
names must be a valid pointer.
Sourcepub unsafe fn copy_action_description(
&self,
action: &CFString,
description: NonNull<*const CFString>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn copy_action_description( &self, action: &CFString, description: NonNull<*const CFString>, ) -> AXError
HIServices and AXError only.Returns a localized description of the specified accessibility object’s action.
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter action: The action to be described.
Parameter description: On return, a string containing the description of the action.
Returns: If unsuccessful,
AXUIElementCopyActionDescription
may return one of the following error codes, among others:
-
kAXErrorActionUnsupported - The specified AXUIElementRef does not support the specified action (you will also receive this error if you pass in the system-wide accessibility object).
-
kAXErrorIllegalArgument - One or more of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
description must be a valid pointer.
Sourcepub unsafe fn perform_action(&self, action: &CFString) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn perform_action(&self, action: &CFString) -> AXError
HIServices and AXError only.Requests that the specified accessibility object perform the specified action.
It is possible to receive the
kAXErrorCannotComplete
error code from this function because accessible applications often need to
perform some sort of modal processing inside their action callbacks and they may not return within the timeout value set by the accessibility API.
This does not necessarily mean that the function has failed, however. If appropriate, your assistive application
can try to call this function again. Also, you may be able to increase the timeout value (see
AXUIElementSetMessagingTimeout AXUIElementSetMessagingTimeout).
Parameter element: The AXUIElementRef representing the accessibility object.
Parameter action: The action to be performed.
Returns: If unsuccessful,
AXUIElementPerformAction
may return one of the following error codes, among others:
-
kAXErrorActionUnsupported - The specified AXUIElementRef does not support the specified action (you will also receive this error if you pass in the system-wide accessibility object).
-
kAXErrorIllegalArgument - One or more of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way or the application has not yet responded.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
Sourcepub unsafe fn copy_element_at_position(
&self,
x: c_float,
y: c_float,
element: NonNull<*const AXUIElement>,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn copy_element_at_position( &self, x: c_float, y: c_float, element: NonNull<*const AXUIElement>, ) -> AXError
HIServices and AXError only.Returns the accessibility object at the specified position in top-left relative screen coordinates.
This function does hit-testing based on window z-order (that is, layering). If one window is on top of another window, the returned accessibility object comes from whichever window is topmost at the specified
location. Note that if the system-wide accessibility object is passed in the
application
parameter, the position test is not restricted to a
particular application.
Parameter application: The AXUIElementRef representing the application that contains the screen coordinates (or the system-wide accessibility object).
Parameter x: The horizontal position.
Parameter y: The vertical position.
Parameter element: On return, the accessibility object at the position specified by x and y.
Returns: If unsuccessful,
AXUIElementCopyElementAtPosition
may return one of the following error codes, among others:
-
kAXErrorNoValue - There is no accessibility object at the specified position.
-
kAXErrorIllegalArgument - One or more of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
§Safety
element must be a valid pointer.
Sourcepub unsafe fn new_application(pid: pid_t) -> CFRetained<AXUIElement>
Available on crate features HIServices and libc only.
pub unsafe fn new_application(pid: pid_t) -> CFRetained<AXUIElement>
HIServices and libc only.Creates and returns the top-level accessibility object for the application with the specified process ID.
Parameter pid: The process ID of an application.
Returns: The AXUIElementRef representing the top-level accessibility object for the application with the specified process ID.
Sourcepub unsafe fn new_system_wide() -> CFRetained<AXUIElement>
Available on crate feature HIServices only.
pub unsafe fn new_system_wide() -> CFRetained<AXUIElement>
HIServices only.Returns an accessibility object that provides access to system attributes.
This is useful for things like finding the focused accessibility object regardless of which application is currently active.
Returns: The AXUIElementRef representing the system-wide accessibility object.
Sourcepub unsafe fn pid(&self, pid: NonNull<pid_t>) -> AXError
Available on crate features HIServices and AXError and libc only.
pub unsafe fn pid(&self, pid: NonNull<pid_t>) -> AXError
HIServices and AXError and libc only.Returns the process ID associated with the specified accessibility object.
Parameter element: The AXUIElementRef representing an accessibility object.
Parameter pid: On return, the process ID associated with the specified accessibility object.
Returns: If unsuccessful,
AXUIElementGetPid
may return one of the following error codes, among others:
-
kAXErrorIllegalArgument - One or more of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
§Safety
pid must be a valid pointer.
Sourcepub unsafe fn set_messaging_timeout(
&self,
timeout_in_seconds: c_float,
) -> AXError
Available on crate features HIServices and AXError only.
pub unsafe fn set_messaging_timeout( &self, timeout_in_seconds: c_float, ) -> AXError
HIServices and AXError only.Sets the timeout value used in the accessibility API.
Pass the system-wide accessibility object (see
AXUIElementCreateSystemWide AXUIElementCreateSystemWide) if you want to set the timeout globally for this process. Setting the timeout on another accessibility object sets it only for that object, not for other accessibility objects that are equal to it.
Setting
timeoutInSeconds
to 0 for the system-wide accessibility object resets the global timeout to its default value. Setting
timeoutInSeconds
to 0 for any other accessibility object makes that element use the current global timeout value.
Parameter element: The AXUIElementRef representing an accessibility object.
Parameter timeoutInSeconds: The number of seconds for the new timeout value.
Returns: If unsuccessful,
AXUIElementSetMessagingTimeout
may return one of the following error codes, among others:
-
kAXErrorIllegalArgument - One or more of the arguments is an illegal value (timeout values must be positive).
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
Sourcepub unsafe fn post_keyboard_event(
&self,
key_char: CGCharCode,
virtual_key: CGKeyCode,
key_down: bool,
) -> AXError
👎DeprecatedAvailable on crate features HIServices and AXError and objc2-core-graphics only.
pub unsafe fn post_keyboard_event( &self, key_char: CGCharCode, virtual_key: CGKeyCode, key_down: bool, ) -> AXError
HIServices and AXError and objc2-core-graphics only.Posts keys to the specified application.
This is similar to
//apple_ref/c/func/CGPostKeyboardEvent CGPostKeyboardEvent(which synthesizes a low-level keyboard event on the
local machine), but it allows you to specify the target application as opposed to always sending the events to the active application. If the
system-wide accessibility object is passed in the
application
parameter, the event is sent to the active application.
You can only pass in the system-wide or application AXUIElementRef.
Parameter application: The AXUIElementRef representing the application (or the system-wide accessibility object).
Parameter keyChar:
Parameter virtualKey:
Parameter keyDown:
Returns: If unsuccessful,
AXUIElementPostKeyboardEvent
may return one of the following error codes, among others:
-
kAXErrorIllegalArgument - One or more of the arguments is an illegal value.
-
kAXErrorInvalidUIElement - The AXUIElementRef is invalid.
-
kAXErrorFailure - There is some sort of system memory failure.
-
kAXErrorCannotComplete - The function cannot complete because messaging has failed in some way.
-
kAXErrorNotImplemented - The process does not fully support the accessibility API.
Methods from Deref<Target = CFType>§
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: ConcreteType,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: ConcreteType,
Attempt to downcast the type to that of type T.
This is the reference-variant. Use CFRetained::downcast if you
want to convert a retained type. See also ConcreteType for more
details on which types support being converted to.
Sourcepub fn retain_count(&self) -> usize
pub fn retain_count(&self) -> usize
Get the reference count of the object.
This function may be useful for debugging. You normally do not use this function otherwise.
Beware that some things (like CFNumbers, small CFStrings etc.) may
not have a normal retain count for optimization purposes, and can
return usize::MAX in that case.
Trait Implementations§
Source§impl AsRef<AXUIElement> for AXUIElement
Available on crate feature HIServices only.
impl AsRef<AXUIElement> for AXUIElement
HIServices only.Source§impl AsRef<AnyObject> for AXUIElement
Available on crate feature HIServices only.
impl AsRef<AnyObject> for AXUIElement
HIServices only.Source§impl AsRef<CFType> for AXUIElement
Available on crate feature HIServices only.
impl AsRef<CFType> for AXUIElement
HIServices only.Source§impl Borrow<AnyObject> for AXUIElement
Available on crate feature HIServices only.
impl Borrow<AnyObject> for AXUIElement
HIServices only.Source§impl Borrow<CFType> for AXUIElement
Available on crate feature HIServices only.
impl Borrow<CFType> for AXUIElement
HIServices only.Source§impl ConcreteType for AXUIElement
Available on crate feature HIServices only.
impl ConcreteType for AXUIElement
HIServices only.Source§impl Debug for AXUIElement
Available on crate feature HIServices only.
impl Debug for AXUIElement
HIServices only.Source§impl Deref for AXUIElement
Available on crate feature HIServices only.
impl Deref for AXUIElement
HIServices only.Source§impl Hash for AXUIElement
Available on crate feature HIServices only.
impl Hash for AXUIElement
HIServices only.Source§impl Message for AXUIElement
Available on crate feature HIServices only.
impl Message for AXUIElement
HIServices only.Source§impl PartialEq for AXUIElement
Available on crate feature HIServices only.
impl PartialEq for AXUIElement
HIServices only.Source§impl RefEncode for AXUIElement
Available on crate feature HIServices only.
impl RefEncode for AXUIElement
HIServices only.Source§const ENCODING_REF: Encoding
const ENCODING_REF: Encoding
Source§impl Type for AXUIElement
Available on crate feature HIServices only.
impl Type for AXUIElement
HIServices only.Source§fn retain(&self) -> CFRetained<Self>where
Self: Sized,
fn retain(&self) -> CFRetained<Self>where
Self: Sized,
Source§fn as_concrete_TypeRef(&self) -> &Self
fn as_concrete_TypeRef(&self) -> &Self
core-foundation crate.Source§unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
core-foundation crate. Read moreSource§fn as_CFTypeRef(&self) -> &CFType
fn as_CFTypeRef(&self) -> &CFType
core-foundation crate.Source§unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
core-foundation crate. Read moreimpl Eq for AXUIElement
HIServices only.