Skip to content

Fix screen readers skipping list rows - #2007

Open
mehranlatifi83 wants to merge 1 commit into
DrKLO:masterfrom
mehranlatifi83:fix/talkback-list-rows-read-as-one
Open

mehranlatifi83 wants to merge 1 commit into
DrKLO:masterfrom
mehranlatifi83:fix/talkback-list-rows-read-as-one

Conversation

@mehranlatifi83

@mehranlatifi83 mehranlatifi83 commented Aug 1, 2026 •

Copy link
Copy Markdown

Problem

With TalkBack, some rows are skipped in the inline bot results list and in the mention suggestions list, exactly at the point where the list has to scroll.

When a screen reader reaches the last visible row, it asks the list to scroll forward. RecyclerView scrolls by its own height. These lists are measured taller than the part that is actually visible, so one "page" is more than what is on screen, and the next rows are scrolled past before they can be read.

Fix

In RecyclerView, use the visible part of the list as the page size, and scroll only far enough to bring the last fully visible row to the edge. The next row is then the next one read. Lists that are fully visible are not affected.

Testing

With TalkBack on, open inline bot results (for example @gif cat) or the mention list in a group, and swipe through past the point where the list scrolls.

Before: rows were skipped. After: every row is read in order.

@mehranlatifi83
mehranlatifi83 force-pushed the fix/talkback-list-rows-read-as-one branch 6 times, most recently from 4df6cfa to 99c9268 Compare August 2, 2026 00:50
@mehranlatifi83 mehranlatifi83 changed the title Read a row of a list as one thing Aug 2, 2026
@mehranlatifi83
mehranlatifi83 force-pushed the fix/talkback-list-rows-read-as-one branch from 99c9268 to 46fb5db Compare August 3, 2026 17:16
@mehranlatifi83
mehranlatifi83 force-pushed the fix/talkback-list-rows-read-as-one branch 3 times, most recently from 603a38a to d7748a2 Compare August 29, 2026 19:07
@mehranlatifi83
mehranlatifi83 force-pushed the fix/talkback-list-rows-read-as-one branch from d7748a2 to 7d91532 Compare September 18, 2026 09:50
Going through the results of an inline bot with a screen reader skips
over entries, and so does going through the list of people to mention: it
happens at the point where the list has to scroll to carry on.

A screen reader asks a list to scroll once it reaches the last row it can
see, and the list answers with a page of itself, which it takes to be its
own height. That list is measured taller than the part of it that is on
screen, so a page of it is more than what is shown, and the rows that
come next are carried past the edge before they can be reached.

Take the page from the part of the list that is really in sight, and
scroll only as far as it takes to bring the last row that fits in it
wholly to the edge. The row after it is then the next one to be read, and
none of the rows in between are lost.
@mehranlatifi83
mehranlatifi83 force-pushed the fix/talkback-list-rows-read-as-one branch 2 times, most recently from d99a6c6 to 0a065b1 Compare October 1, 2026 23:01
@mehranlatifi83 mehranlatifi83 changed the title Keep a screen reader from skipping over rows of a list Oct 1, 2026
@mehranlatifi83
mehranlatifi83 force-pushed the fix/talkback-list-rows-read-as-one branch from 0a065b1 to 47ff949 Compare October 13, 2026 11:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant