Action should be implemented by instances of Object classes
with which the user can interact directly, i.e. buttons, checkboxes, scrollbars, e.g. components which are not "passive" providers of UI
information.
Exceptions: when the user interaction is already covered by another appropriate interface such as
EditableText (insert/delete text, etc.) or
Value (set value) then these actions should not be exposed by Action
as well.
Though most UI interactions on components should be invocable via keyboard as well as mouse, there will generally be a close mapping between
"mouse actions" that are possible on a component and the AtkActions. Where mouse and keyboard actions are redundant in effect,
Action should expose only one action rather than exposing redundant actions if possible. By convention we have
been using "mouse centric" terminology for Action names.