use elicitation::Established;
use crate::{FocusVisible, KeyboardAccessible, UiResult, WidgetId};
pub trait UiNavigationManager: Send + Sync {
fn set_focus_order(&self, ids: Vec<WidgetId>) -> UiResult<Established<KeyboardAccessible>>;
fn set_focus(&self, id: WidgetId) -> UiResult<Established<FocusVisible>>;
fn register_shortcut(
&self,
key: &str,
action_id: &str,
label: &str,
) -> UiResult<Established<KeyboardAccessible>>;
fn skip_link(&self, target_id: WidgetId) -> UiResult<Established<KeyboardAccessible>>;
fn focus_order(&self) -> UiResult<Vec<WidgetId>>;
}