Skip to content

Preserve recycled Apple rows and Android modal identifiers - #260

Merged
tiensonqin merged 2 commits into
mainfrom
fix/apple-virtual-list-reentry
Oct 23, 2026
Merged

tiensonqin merged 2 commits into
mainfrom
fix/apple-virtual-list-reentry

Conversation

@tiensonqin

@tiensonqin tiensonqin commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

Returning to previously visited virtual rows could leave Apple viewports showing placeholders. onDisappear removes a slot from the visible-range tracker, but SwiftUI can reuse its previous geometry and skip another callback. Restore its last visibility registration on appearance so repeated distant scrolls request their rows again.

Android dialogs and sheets also start separate semantics roots: the activity's testTagsAsResourceId setting does not reach their controls. Export each LUI accessibility identifier with its own resource-ID semantics so native automation can locate fields, switches and buttons inside modal windows.

Validation:

  • Added an iOS runtime check that scrolls a 10,000-slot native list to the end and back twice, without XCTest.
  • Native mobile table/gallery checks scroll through 10,001 results, return to the first row, and edit a distant cell; core gate: 1,050 tests passed.
  • Added downstream Android device tests for actual accessibility resource IDs in both dialog and sheet windows. Both failed before the Android change; all 11 native-surface tests pass afterward.
  • Android fix resolves the CI smoke failure where Graph name was visible but its field.graph-name selector could not be found.

@tiensonqin tiensonqin changed the title Restore visible ranges when virtual rows reappear Preserve recycled Apple rows and Android modal identifiers Oct 23, 2026
@tiensonqin
tiensonqin merged commit 903b1cd into main Oct 23, 2026
8 checks passed
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