Skip to content

fix(settings): stop the Themes list jumping when accessibility reads it - #3504

Merged
datlechin merged 1 commit into
mainfrom
fix/theme-list-scroll-test
Oct 18, 2026
Merged

datlechin merged 1 commit into
mainfrom
fix/theme-list-scroll-test

Conversation

@datlechin

Copy link
Copy Markdown
Member

Why

testThemesListScrollsAndTakesArrowKeys failed on main and on PRs: the CI recordings show the list reaching the bottom, then snapping back. The list's table sizes a row it has not measured at 24 pt; a theme row is 42 pt. An accessibility read (XCUITest, VoiceOver) drops off-screen rows back to that estimate and remeasures them, so the rows above the visible ones change height and the list jumps.

Change

  • The Themes list gives its table a 42 pt row estimate, so the rows stay put while VoiceOver or a UI test reads the list.
  • The empty Custom placeholder row is as tall as a theme row.

Verified

AppearancePaneListTests reads the list through the AX API while scrolling. It fails on main ("Rows {14, 5} moved to {9, 6} while nothing scrolled") and passes here.

Not in this PR

  • A Not Loaded row whose reason wraps past one line is taller than 42 pt and can still shift by the difference.

@datlechin
datlechin merged commit 47689e9 into main Oct 18, 2026
7 checks passed
@datlechin
datlechin deleted the fix/theme-list-scroll-test branch October 18, 2026 03:31
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