xa11y — Cross-Platform Accessibility Client Library
Provides a unified API for reading and interacting with accessibility trees across desktop platforms (macOS, Windows, Linux).
Quick Start
use xa11y::*;
let provider = create_provider().expect("Failed to create provider");
let status = provider.check_permissions().expect("Permission check failed");
match status {
PermissionStatus::Granted => {
let tree = provider.get_app_tree(
&AppTarget::ByName("Safari".to_string()),
&QueryOptions::default(),
).expect("Failed to get tree");
let buttons = tree.query("button").expect("Query failed");
println!("Found {} buttons", buttons.len());
}
PermissionStatus::Denied { instructions } => {
eprintln!("Accessibility not enabled: {}", instructions);
}
}