Overview¶
AutoMobile supports accessibility testing by detecting and adapting to screen readers like TalkBack (Android) and VoiceOver (iOS).
flowchart LR
subgraph Detection
Auto["🔍 Auto-detect
TalkBack/VoiceOver"]
Cache["💾 Cache State
(60s TTL)"]
end
subgraph Adaptation
Tap["👆 tapOn
ACTION_CLICK"]
Scroll["👉 swipeOn
Two-finger / Scroll Action"]
Input["⌨️ inputText
ACTION_SET_TEXT"]
end
subgraph Result
Agent["🤖 Agent
(No changes needed)"]
end
Auto --> Cache
Cache --> Tap
Cache --> Scroll
Cache --> Input
Tap --> Agent
Scroll --> Agent
Input --> Agent
classDef detect fill:#FF3300,stroke-width:0px,color:white;
classDef adapt fill:#525FE1,stroke-width:0px,color:white;
classDef result fill:#00AA55,stroke-width:0px,color:white;
class Auto,Cache detect;
class Tap,Scroll,Input adapt;
class Agent result;
Design Principles¶
- Auto-detect and adapt - Tools automatically detect screen readers and adjust behavior
- Backward compatible - No changes to existing tool interfaces or automation scripts
- Transparent - Behavior adaptations invisible to MCP consumers (agents)
- Performance - Detection cached with <50ms overhead
Key Adaptations¶
| Tool | Standard Mode | Screen Reader Mode |
|---|---|---|
tapOn |
Coordinate tap | ACTION_CLICK on element |
swipeOn |
Single-finger swipe | Two-finger swipe or ACTION_SCROLL_* |
inputText |
ACTION_SET_TEXT |
No change (already accessible) |
pressButton |
Hardware keyevent | Optional GLOBAL_ACTION_BACK |
Topics¶
| Document | Description |
|---|---|
| TalkBack/VoiceOver Adaptation | Complete design for screen reader support |
Platform Support¶
| Platform | Screen Reader | Status |
|---|---|---|
| Android | TalkBack | Primary focus |
| iOS | VoiceOver | Planned |
Quick Reference¶
Detection methods (Android):
# Check TalkBack state via ADB
adb shell settings get secure enabled_accessibility_services
Feature flag override:
// Force accessibility mode for testing
FeatureFlag.FORCE_ACCESSIBILITY_MODE = true