Skip to content

Announce timeline jump-to-bottom to TalkBack - #7220

Open
unclejay80 wants to merge 1 commit into
element-hq:developfrom
unclejay80:a11y/timeline-scroll-to-bottom-focus
Open

Announce timeline jump-to-bottom to TalkBack#7220
unclejay80 wants to merge 1 commit into
element-hq:developfrom
unclejay80:a11y/timeline-scroll-to-bottom-focus

Conversation

@unclejay80

@unclejay80 unclejay80 commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Content

The "jump to bottom" action scrolls the timeline to the newest message (lazyListState.scrollToItem(0)) but never announces that the jump happened, so TalkBack users get no confirmation the scroll occurred.

Motivation and context

Announce completion of the jump via View.announceForAccessibility() once the scroll animation finishes.

Screenshots / GIFs

No visual change — the fix only announces once the existing scroll animation completes; the scroll behaviour and layout are unchanged. TimelineView.kt's existing @PreviewsDayNight previews already cover its appearance.

Tests

  • Step 1: scroll up in a chat, trigger jump-to-bottom, with TalkBack confirm the jump is announced
  • Step 2: verify with TalkBack enabled

Tested devices

  • Physical
  • Emulator
  • OS version(s):

Checklist

  • I am aware of the etiquette.
  • This PR was made with the help of AI:
    • Yes. Please request a review by Copilot.
    • No.
  • Changes have been tested on an Android device or Android emulator with API 24.
  • UI change has been tested on both light and dark themes.
  • Accessibility has been taken into account.
  • Pull request is based on the develop branch.
  • Pull request title will be used in the release note, it clearly defines what will change for the user.
  • Pull request includes screenshots or videos if containing UI changes.
  • You've made a self review of your PR.

Tapping the jump-to-bottom FAB scrolls the timeline but gives TalkBack
users no confirmation that the jump happened, since the scroll doesn't
move keyboard/accessibility focus on its own. Announce completion via
View.announceForAccessibility() once the scroll animation finishes,
using a new temporary.xml string pending Localazy import.
@unclejay80
unclejay80 requested a review from a team as a code owner July 15, 2026 14:40
@unclejay80
unclejay80 requested review from ganfra and removed request for a team July 15, 2026 14:40
@github-actions

Copy link
Copy Markdown
Contributor

Thank you for your contribution! Here are a few things to check in the PR to ensure it's reviewed as quickly as possible:

  • If your pull request adds a feature or modifies the UI, this should have an equivalent pull request in the Element X iOS repo unless it only affects an Android-only behaviour or is behind a disabled feature flag, since we need parity in both clients to consider a feature done. It will also need to be approved by our product and design teams before being merged, so it's usually a good idea to discuss the changes in a Github issue first and then start working on them once the approach has been validated.
  • Your branch should be based on origin/develop, at least when it was created.
  • The title of the PR will be used for release notes, so it needs to describe the change visible to the user.
  • The test pass locally running ./gradlew test.
  • The code quality check suite pass locally running ./gradlew runQualityChecks.
  • If you modified anything related to the UI, including previews, you'll have to run the Record screenshots GH action in your forked repo: that will generate compatible new screenshots. However, given Github Actions limitations, it will prevent the CI from running temporarily, until you upload a new commit after that one. To do so, just pull the latest changes and push an empty commit.

@github-actions github-actions Bot added the Z-Community-PR Issue is solved by a community member's PR label Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Z-Community-PR Issue is solved by a community member's PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant