2026-02-27 · Aya Fujimoto
Semantics Trees Technicians Actually Read
How we annotate Flutter widgets so TalkBack users in loud environments still get signal.
Field technicians rarely experience your app in a quiet room. We coach cohorts to write semantics labels that describe outcome, not control type. “Mark valve sealed” beats “Button” when gloves are involved.
We pair each label with a custom action only when it shortens the task path. Duplicate actions create vocal clutter; we remove them during hallway tests with actual maintenance staff—not only with screen reader simulators.
Order matters: traverse depth follows the same sequence as the printed checklist hung in the van. If your widget tree diverges from that sequence, expect repeated mis-taps even when contrast ratios pass automated scans.
Ship a regression pack: short audio captures from TalkBack sessions attached to pull requests. Reviewers listen once before approving UI refactors, which keeps semantics debt visible without bloating your CI runtime.