# Full evidence artifacts

All captures use synthetic data. Android: Pixel 9, Android 16 / API 36, 1080×2424, light appearance. iOS: iPhone 18 Pro simulator, iOS 27.2, 402×874 logical points, light appearance. Separate fresh databases and Metro servers run the base and head builds.

VoiceOver Caption Panel text is generated by the running screen reader. Its black focus rectangle and caption strip are original pixels. The montage crops those pixels; it does not recreate utterances. Head Done, time-only, and snoozed montage crops are frames from the linked recording (75 s, 100 s, 208 s). Other crops come from the full screenshots below. Android annotated images place captured native Button labels beside the original screenshot; they are not TalkBack speech captions.

## Images

- [android-base-cards-annotated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c47abebd675c089/android-base-cards-annotated.png)
- [android-base-cards.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/39d867c725560c54/android-base-cards.png)
- [android-base-settled-annotated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/67faaa977042100f/android-base-settled-annotated.png)
- [android-base-settled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9c145b0a3f38bc52/android-base-settled.png)
- [android-base-snoozed-annotated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d35c45c518261e9f/android-base-snoozed-annotated.png)
- [android-base-snoozed.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dd70bbd1b5d31e9b/android-base-snoozed.png)
- [android-base-woke-annotated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3808011a60ea1f2d/android-base-woke-annotated.png)
- [android-base-woke.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c87bb9475309d2d1/android-base-woke.png)
- [android-head-cards-annotated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/80d0502a4160590e/android-head-cards-annotated.png)
- [android-head-cards.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f3b1c46def2fc916/android-head-cards.png)
- [android-head-settled-annotated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/af8450d4c376eba1/android-head-settled-annotated.png)
- [android-head-settled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/46b7177c9073e356/android-head-settled.png)
- [android-head-snoozed-annotated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/51befbd82e4de05f/android-head-snoozed-annotated.png)
- [android-head-snoozed.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a97e9f55a03e1759/android-head-snoozed.png)
- [android-head-woke-annotated.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e44cc769aa97349/android-head-woke-annotated.png)
- [android-head-woke.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/27dc4f6023f1291f/android-head-woke.png)
- [android-talkback-blocker.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/65a6f897ed79589f/android-talkback-blocker.png)
- [ios-base-cards.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cd78c363625cffe5/ios-base-cards.png)
- [ios-base-snoozed.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5da04652a2a8534c/ios-base-snoozed.png)
- [ios-base-voiceover-approval.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9596bf20b36fa297/ios-base-voiceover-approval.png)
- [ios-base-voiceover-done.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e24d72e8dd0999b8/ios-base-voiceover-done.png)
- [ios-base-voiceover-settled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7b1705dca2790e55/ios-base-voiceover-settled.png)
- [ios-base-voiceover-snoozed2.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8144b68b406fbe42/ios-base-voiceover-snoozed2.png)
- [ios-base-voiceover-time.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fa2d5727bf3bda3a/ios-base-voiceover-time.png)
- [ios-base-voiceover-waiting.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e10de9e8865e102b/ios-base-voiceover-waiting.png)
- [ios-base-voiceover-woke2.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b27cce41c852a8a5/ios-base-voiceover-woke2.png)
- [ios-base-voiceover-working.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc962b83e0018e31/ios-base-voiceover-working.png)
- [ios-head-cards.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d24498f3257bd489/ios-head-cards.png)
- [ios-head-snoozed.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f72174723593aab/ios-head-snoozed.png)
- [ios-head-voiceover-approval2.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7f0e662ba77664d2/ios-head-voiceover-approval2.png)
- [ios-head-voiceover-done-video.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/027d3365c13aca98/ios-head-voiceover-done-video.png)
- [ios-head-voiceover-settled.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8fd7507f97a8e880/ios-head-voiceover-settled.png)
- [ios-head-voiceover-snoozed-video.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1fd341dbd5b3873e/ios-head-voiceover-snoozed-video.png)
- [ios-head-voiceover-snoozed.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/001f50b4b24efef2/ios-head-voiceover-snoozed.png)
- [ios-head-voiceover-time-video.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/74d2fc1642b2b8d8/ios-head-voiceover-time-video.png)
- [ios-head-voiceover-time2.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0197480eb14c0ac2/ios-head-voiceover-time2.png)
- [ios-head-voiceover-waiting.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/65fd8739e18efedf/ios-head-voiceover-waiting.png)
- [ios-head-voiceover-woke.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c5b1be5e900418e/ios-head-voiceover-woke.png)
- [ios-head-voiceover-working.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c1284a5f0cb3663c/ios-head-voiceover-working.png)
- [voiceover-base-proof.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9418a0437c7a35c3/voiceover-base-proof.png)
- [voiceover-head-proof.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c101b9d57d43fc66/voiceover-head-proof.png)

## Recordings

- [android-base-flow.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4bd1f00b048c6cf3/android-base-flow.mp4)
- [android-base-wake-flow.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/86281fb86ace3d26/android-base-wake-flow.mp4)
- [android-head-proof.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3a0e7d7a776b2f2a/android-head-proof.mp4)
- [ios-base-flow.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e0c798ede44415e4/ios-base-flow.mp4)
- [ios-base-voiceover.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f25bafcb03121c45/ios-base-voiceover.mp4)
- [ios-head-flow.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f2790c6bb504bd3a/ios-head-flow.mp4)
- [ios-head-voiceover.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e38f14893914606b/ios-head-voiceover.mp4)

## Drivers and native nodes

- [accessibility-evidence.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4943284f7a98955b/accessibility-evidence.json)
- [annotate.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/948ce4ea8dc0ec03/annotate.py)
- [capture-state.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc1c4a0b124f4540/capture-state.sh)
- [mobile-proof-driver.ts](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f1dafcc3699d40c/mobile-proof-driver.ts)
- [prepare-replays.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6799128cb557fa6b/prepare-replays.py)
- [reproduction.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/649fa6a27ccba68a/reproduction.md)
- [voiceover-montage.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6bd5913f13228f3c/voiceover-montage.py)

## Limits

TalkBack was enabled, but the available automation produced no focus outline or speech captions and the app showed a not-responding dialog during that attempt. Restart restored it. Android proof is the captured native Button labels and UI, not TalkBack speech. VoiceOver was enabled and its own captions were captured on both commits, but audible audio was unavailable because the host audio probe was denied Screen Recording permission. Actual elapsed values differ because these are sequential real-time runs. Waiting showed an icon without a visible live duration; Working showed the running timer, excluded from its speech label. Failed status and provider/queued/title-regeneration combinations were not seeded.
