Expand description
§Accessibility Support
This module provides accessibility infrastructure for Tessera UI using AccessKit. It enables screen readers and other assistive technologies to interact with Tessera applications.
§Architecture
- Stable IDs: Each component can have a stable accessibility ID that persists across frames
- Semantic Metadata: Components provide semantic information (role, label, state, actions)
- Decentralized: Component libraries decide their own semantics; the core only provides infrastructure
§Usage
Components use the accessibility API through the input handler context:
use accesskit::{Action, Role};
use tessera_ui::tessera;
#[tessera]
fn my_button(label: String) {
input_handler(Box::new(move |input| {
// Set accessibility information
input.accessibility()
.role(Role::Button)
.label(label.clone())
.action(Action::Click);
// Set action handler
input.set_accessibility_action_handler(|action| {
if action == Action::Click {
// Handle click from assistive technology
}
});
}));
}Structs§
- Accessibility
Id - A stable identifier for accessibility nodes.
- Accessibility
Node - Semantic information for an accessibility node.
Type Aliases§
- Accessibility
Action Handler - Handler for accessibility actions.