Behaviour for accessibility implementations.
@callback announce(message :: String.t(), opts :: keyword()) :: :ok
@callback announce( message :: String.t(), opts :: keyword(), user_preferences_pid_or_name :: atom() | pid() | nil ) :: :ok
@callback clear_announcements() :: :ok
@callback disable(user_preferences_pid_or_name :: atom() | pid() | nil) :: :ok
@callback enable( options :: keyword() | map(), user_preferences_pid_or_name :: atom() | pid() | nil ) :: :ok
@callback enabled?() :: boolean()
@callback get_component_hint( component_id :: atom(), hint_level :: :basic | :detailed ) :: String.t() | nil
@callback get_component_style(component_type :: atom()) :: map()
@callback get_element_metadata(element_id :: String.t()) :: map() | nil
@callback get_focus_history() :: [String.t() | nil]
@callback get_next_announcement(user_preferences_pid_or_name :: atom() | pid() | nil) :: String.t() | nil
@callback get_option(key :: atom(), default :: any()) :: any()
@callback register_component_style( component_type :: atom(), style :: map() ) :: :ok
@callback register_element_metadata( element_id :: String.t(), metadata :: map() ) :: :ok
@callback set_large_text( enabled :: boolean(), user_preferences_pid_or_name :: atom() | pid() | nil ) :: :ok
@callback set_option(key :: atom(), value :: any()) :: :ok
@callback unregister_component_style(component_type :: atom()) :: :ok
@callback unregister_element_metadata(element_id :: String.t()) :: :ok