open-standards/aac/aac-rs/crates/access-core/Cargo.toml
David Charlot e4d43ad4d6 fix(access-core): a clock that works in browsers, and a scan grid that follows the board
Dwell timed itself with std::time::Instant, whose now() panics on
wasm32-unknown-unknown ("unreachable"). Express calls gaze_enter() and
check_completion() every 50 ms once the camera sees a face, so the first time
an eye-gaze or head-tracking user looked at a cell, the app crashed. Proven
with a small wasm probe: std's Instant throws, web_time's returns. Dwell and
aac-core's store now use web-time, which is std's Instant on native targets and
performance.now() in the browser.

ScanEngine gains set_grid()/grid(): the engine was built for a fixed 4×5 grid
and had no way to learn the board on screen. A running scan restarts from the
top of the new grid, so it never highlights a row the board does not have.
New test: set_grid_follows_the_board_and_restarts_a_running_scan.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-28 16:25:49 -04:00

18 lines
706 B
TOML

[package]
name = "access-core"
description = "Shared access layer for the Transaction Science access standard — surface-agnostic primitives every access surface rides: access methods (touch/switch/dwell/gaze/head/joystick/BCI/partial-voice/pointer), motor profile, switch scanning, dwell selection, and the accessibility profile. Consumed by Express (AAC) and Read (Lumina)."
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
authors.workspace = true
[lints]
workspace = true
[dependencies]
web-time = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }