Skip to content

app_audit on Android reports Label in Name: a control whose description leaves out the words it shows (WCAG 2.5.3) - #249

Merged
lana-20 merged 1 commit into
mainfrom
label-in-name
Oct 21, 2026
Merged

lana-20 merged 1 commit into
mainfrom
label-in-name

Conversation

@lana-20

@lana-20 lana-20 commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Step 4 of docs/ACCESSIBILITY.md. Someone using voice control says what they see, so a button showing Send but named Submit form can't be reached by "tap Send". On Android the caption and the description are separate in the tree, so app_audit now reports the mismatch as LabelInName.

The rule: a control with a description and exactly one caption (its own text, or the one text inside it that isn't a control of its own) is reported when the description doesn't hold the caption's words in order. Case and punctuation don't matter, and "Resend" doesn't hold "Send".

Left alone:

  • a caption with no letter or digit (a glyph: "×" named "multiply")
  • a card's several lines
  • a switch's own ON/OFF
  • text fields
  • a control with no description, which is named by its text

Limit: a caption the app draws isn't in the tree. Google's Calculator draws its keys, so its "AC" named "all clear" can't be judged. iOS usually has one label for both, so nothing is added there.

Measured on the Android 15 emulator:

  • MobiumApp's Screen Reader Demo gives exactly "Submit form" captioned Send, not its twin "Send message". It is captured as internal/uitree/testdata/mobiumapp-spoken-uia2.xml.
  • Ten apps (Settings, Clock, Calculator, Contacts, Phone, Wikipedia, F-Droid, Seal, Files, Chrome) and every captured Android hierarchy give none.

Checks: audit.sh now expects the demo's three findings, PASS on emulator-5554. The tests cover each case above and fail when the rule or the switch exception is removed. make ci green. Not run on the Pixel.

…on leaves out the words it shows (WCAG 2.5.3)

A person using speech says what they see. On Android the caption and the
description are separate in the tree, so a description without the
caption's words is reported as LabelInName. One caption only, glyphs, a
card's several lines, a switch's ON/OFF and text fields left alone.
MobiumApp's Screen Reader Demo ("Submit form" captioned Send) is the
control, captured as mobiumapp-spoken-uia2.xml; ten apps on the emulator
and every captured hierarchy give none.
@lana-20
lana-20 merged commit bd6e544 into main Oct 21, 2026
3 checks passed
@lana-20
lana-20 deleted the label-in-name branch October 21, 2026 06:02
lana-20 added a commit to mobiumdev/mobium-app that referenced this pull request Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant