Skip to content

Say which emoji a custom one stands for - #2038

Open
mehranlatifi83 wants to merge 1 commit into
DrKLO:masterfrom
mehranlatifi83:fix/talkback-custom-emoji-name
Open

Say which emoji a custom one stands for#2038
mehranlatifi83 wants to merge 1 commit into
DrKLO:masterfrom
mehranlatifi83:fix/talkback-custom-emoji-name

Conversation

@mehranlatifi83

@mehranlatifi83 mehranlatifi83 commented Aug 30, 2026

Copy link
Copy Markdown

Summary

A custom emoji is drawn, never written, so a screen reader has nothing of
it to read. The app knows what it stands for: every custom emoji document
carries the plain emoji it was made after, which is what is drawn in its
place while it loads.

That emoji is now said, together with a word that keeps it apart from the
plain one of the same face, wherever a custom emoji is put to a screen
reader on its own: the reactions panel, which said no more than that a
reaction was custom and never which; the sheet that picks an emoji, used
for the icon of a topic and for a status as well as for reactions, which
said the emoji but never that it was custom, and said nothing at all for
one whose document was not fetched yet; and the list of who reacted to a
message.

The reactions read out on a message were worse off: a custom one was left
out of the reading entirely, as an empty string, and a paid one with it.
Those are now named as well, the paid one by the name the app already
gives it.

The document behind a custom emoji is only ever read from the cache here.
Filling in a node for a screen reader is no place to wait on the network,
and an emoji that is on the screen has been fetched to be drawn; where it
is somehow missing, the reading falls back to what was said before.

Checking it

With TalkBack on, long press a message to open the reactions panel, in a chat that offers custom reactions, and swipe through it.

Before, every custom one read as "Custom emoji". Now each reads as the plain emoji it stands for, followed by "custom emoji".

Swiping onto a message that already carries a custom or a paid reaction is the other half of it: before, those were left out of the reading entirely.

A custom emoji is drawn, never written, so a screen reader has nothing of
it to read. The app knows what it stands for: every custom emoji document
carries the plain emoji it was made after, which is what is drawn in its
place while it loads.

That emoji is now said, together with a word that keeps it apart from the
plain one of the same face, wherever a custom emoji is put to a screen
reader on its own: the reactions panel, which said no more than that a
reaction was custom and never which; the sheet that picks an emoji, used
for the icon of a topic and for a status as well as for reactions, which
said the emoji but never that it was custom, and said nothing at all for
one whose document was not fetched yet; and the list of who reacted to a
message.

The reactions read out on a message were worse off: a custom one was left
out of the reading entirely, as an empty string, and a paid one with it.
Those are now named as well, the paid one by the name the app already
gives it.

The document behind a custom emoji is only ever read from the cache here.
Filling in a node for a screen reader is no place to wait on the network,
and an emoji that is on the screen has been fetched to be drawn; where it
is somehow missing, the reading falls back to what was said before.
@mehranlatifi83
mehranlatifi83 force-pushed the fix/talkback-custom-emoji-name branch from 9221fe4 to 41bfc59 Compare August 30, 2026 09:45
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