WebView uiautomator mapping gallery
One element per case. This page is loaded in the launcher's WebView and dumped with adb shell uiautomator dump.
Case 1 — plain paragraph text
Hello world, plain text.
Case 2 — heading
Case Two Heading
Case 3 — link
A link to example.com
Case 4 — button
Case 5 — checkbox (checked) with label
Case 6 — radio
Case 7 — text input with value
Case 8 — password input
Case 9 — textarea
Case 10 — select dropdown
Case 11 — image with alt
Case 12 — image without alt
Case 13 — generic div with aria-label
Logo placeholder
Case 14 — element with both text and aria-label
X
Case 15 — role="button" div
Fake button div
Case 16 — role="checkbox" with aria-checked
Custom checkbox
Case 17 — role="heading" with aria-level
Custom heading role
Case 18 — sr-only text (visible to screen readers only)
Visually hidden but accessible text
Visible paragraph next to it.
Case 19 — aria-hidden element
This whole subtree is hidden from accessibility
Case 20 — display:none element
Display none, not in the tree
Case 21 — HTML id attribute
I have an HTML id
Case 22 — data-testid attribute
I have a data-testid
Case 23 — adjacent spans (text merging)
Left span, right span.
Case 24 — unordered list
Case 25 — table
Case 26 — range input
Case 27 — details/summary
Expand me
Hidden details content.
Case 28 — contenteditable
Editable content
Case 29 — JS-delayed content (injected after load)
Delayed content appears here after 3 seconds.
Case 30 — long page (scroll behaviour)
Scroll to see more.
Tall filler content to make the page scroll.
The end of the scrollable page.
Case 31 — modal / bottom sheet (JS)
Modal title
Modal body text.
Case 32 — sr-only sentence + aria-hidden breakdown
Contact James Roger has 23 unread emails
Contact:James Roger
23emails
Case 33 — definition list with aria-label
- Contact
- James Roger
- Emails
- 23
Case 34 — role="group" with aria-label
Contact:James Roger
23emails