TalkBack simulation¶
Goal¶
Support TalkBack testing on emulator images (API 29/35) either by best-effort enabling real TalkBack or by simulating key behaviors via AutoMobile’s AccessibilityService.
Proposed MCP tools¶
setTalkBackEnabled({ enabled: boolean })
setA11yFocus({ resourceId?: string, text?: string })
announce({ text: string })
Android implementation¶
Real TalkBack (best-effort, emulator):
- Detect the service name via
adb -s <device> shell dumpsys accessibility. - Enable:
adb -s <device> shell settings put secure enabled_accessibility_services <service>adb -s <device> shell settings put secure accessibility_enabled 1- Disable:
adb -s <device> shell settings delete secure enabled_accessibility_servicesadb -s <device> shell settings put secure accessibility_enabled 0
Simulated TalkBack (reliable, helper-based):
- Use AccessibilityService to move focus and announce text via TTS.
setA11yFocussearches nodes and requests focus.announceuses TextToSpeech to emit the same strings an agent would hear.
ADB validation (API 35)¶
Status:
- API 29 not validated yet (no local AVD available).
Confirmed commands:
- Read current accessibility state:
adb -s <device> shell dumpsys accessibility- Enable TalkBack:
adb -s <device> shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/com.google.android.marvin.talkback.TalkBackServiceadb -s <device> shell settings put secure accessibility_enabled 1adb -s <device> shell dumpsys accessibility- Disable TalkBack:
adb -s <device> shell settings delete secure enabled_accessibility_servicesadb -s <device> shell settings put secure accessibility_enabled 0adb -s <device> shell dumpsys accessibility
Observed results:
dumpsys accessibilityshows TalkBack enabled after the enable commands.dumpsys accessibilityshows no enabled services after disable.
Notes:
- Enabling TalkBack triggers the Android Accessibility Suite permission dialog and must be accepted via UI automation.
settings put secure enabled_accessibility_services ''does not clear on API 35; usesettings deleteinstead.
Plan¶
- Implement simulated focus + announce tools (works on all devices).
- Add best-effort TalkBack enablement for emulators with the service installed.
- Report
supported: falseon physical devices without privileges.
Risks¶
- Some emulator images do not ship TalkBack; simulated mode remains primary.
- Real TalkBack can interfere with automation timing; gating may be needed.