Module accessibility

Module accessibility 

Source
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§

AccessibilityId
A stable identifier for accessibility nodes.
AccessibilityNode
Semantic information for an accessibility node.

Type Aliases§

AccessibilityActionHandler
Handler for accessibility actions.