use std::sync::OnceLock;
use super::core::ScreenReaderBackend;
use super::types::BackendType;
use crate::utils::accessibility::Priority;
static BACKEND: OnceLock<ScreenReaderBackend> = OnceLock::new();
pub fn init_backend(backend_type: BackendType) -> &'static ScreenReaderBackend {
BACKEND.get_or_init(|| ScreenReaderBackend::new(backend_type))
}
pub fn get_backend() -> &'static ScreenReaderBackend {
BACKEND.get_or_init(|| ScreenReaderBackend::new(BackendType::Auto))
}
pub fn set_backend(backend: ScreenReaderBackend) -> bool {
BACKEND.set(backend).is_ok()
}
pub fn announce_to_screen_reader(message: impl Into<String>, priority: Priority) {
get_backend().announce(message.into(), priority);
}