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

A red rectangle

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

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

NameValue
alpha1
beta2

Case 26 — range input

Case 27 — details/summary

Expand meHidden 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)

Case 32 — sr-only sentence + aria-hidden breakdown

Contact James Roger has 23 unread emails

Case 33 — definition list with aria-label

Contact
James Roger
Emails
23

Case 34 — role="group" with aria-label

Contact:James Roger 23emails