Skip to content

feat(android): expose editable-field metadata in structured snapshots #2288

Closed

Description

@AdzeB

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.

Activity

  1. thymikee commented on Sep 5, 2026

    @thymikee
    Member

    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.

  2. thymikee commented on Sep 5, 2026

    @thymikee
    Member

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions