Accessibility¶
Android's Accessibility service is the most powerful — and most dangerous — API on the phone. strands-adb exposes a safe subset.
List Services¶
Toggle a Service¶
adb(action="accessibility_toggle_service",
service="com.google.android.accessibility.talkback/.TalkBackService",
enabled=True)
Needs permission
Toggling services requires WRITE_SECURE_SETTINGS:
System Actions¶
Trigger system-wide accessibility actions:
adb(action="accessibility_system_action", id="home")
adb(action="accessibility_system_action", id="back")
adb(action="accessibility_system_action", id="notifications")
adb(action="accessibility_system_action", id="quick_settings")
Live Captions¶
Screen Magnification¶
Font Scale¶
Valid scales: 0.85, 1.0, 1.15, 1.3, 1.45, 1.6, 1.75, 2.0.
Status¶
Overall accessibility state:
adb(action="accessibility_status")
# → {
# "enabled_services": [...],
# "touch_exploration": False,
# "high_contrast": False,
# "color_correction": "disabled",
# "font_scale": 1.0,
# "magnification_enabled": False,
# }
Agent Recipes¶
"Accessibility mode"¶
agent("""
enable TalkBack, live captions, and bump font to 1.3x.
My grandma is using the phone today.
""")
"Back off the magnifier"¶
Richer Screen Reading — Companion APK¶
For true accessibility-tree reading (much richer than UIAutomator), you'd need a companion APK that registers as an AccessibilityService. This is tracked in FRONTIERS.md #2. ADB alone can toggle services but can't read their output without a helper app.