You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(android): expose editable-field metadata in structured snapshots #2288
Expose Android editable-field accessibility facts through structured snapshots and get attrs so callers can distinguish an unavailable observation from an explicitly reported field state.
At fa06c8c6e9ad473dbb9b2e2730bc555117ce104d, the helper omits isEditable() and text-selection offsets. It emits hint-showing only when true; the host uses that fact for fill verification but drops it, together with password, before publishing snapshot nodes. appendNonEmptyAttribute also collapses explicitly empty text and unavailable text.
Required behavior:
Carry native editable, password, and API-26+ hintShowing booleans through XML, parsing, regular/raw snapshot nodes, and get attrs. Preserve explicit false; leave unavailable facts absent.
Carry available nonnegative selectionStart/selectionEnd accessibility offsets without interpreting them as a character count or proof of value equality.
Preserve explicit empty accessibility text as value: ""; unavailable text remains absent.
Add no secret-value reads or fill-verification claims. This improves observations; it does not establish exact contents of opaque PIN/password controls.
Completion requires parser-to-snapshot regression coverage for false/zero/empty and unavailable states, native helper compilation, and a live Android fixture capture confirming propagation to get attrs.
Related: #2063 was closed by #2066, which adds empty fill and internal hint handling. This is the remaining observation boundary, not another clear-field request. #1832 discusses other missing Android state attributes; this scope does not add checked/checkable/selected/long-clickable semantics.
Triage: valid and fully scoped. PR #2290 implements this contract and carries the required parser-to-snapshot coverage plus live Android evidence. Keep this issue open until that PR merges; no additional issue label is needed while the linked implementation is under review.
Review update: PR #2290 is the correct implementation vehicle, but it is not complete yet. Exact-head review found that digest-level get attrs drops the new facts and that the helper suppresses valid selection offsets on non-editable selectable nodes. Keep this issue open until those two production-route gaps and regressions are addressed.
Activity
thymikee commentedon Sep 5, 2026
Triage: valid and fully scoped. PR #2290 implements this contract and carries the required parser-to-snapshot coverage plus live Android evidence. Keep this issue open until that PR merges; no additional issue label is needed while the linked implementation is under review.
thymikee commentedon Sep 5, 2026
Review update: PR #2290 is the correct implementation vehicle, but it is not complete yet. Exact-head review found that digest-level
get attrsdrops the new facts and that the helper suppresses valid selection offsets on non-editable selectable nodes. Keep this issue open until those two production-route gaps and regressions are addressed.fix(android): carry field facts through the attrs digest and selectio…
fix(android): preserve editable-field metadata in snapshots (#2290)