Repository navigation
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/mobile
Steps to reproduce
- Open the T3 Code app on an Android device and turn on TalkBack.
- Open any thread, or start a new task.
- Swipe right through the controls in the composer at the bottom of the screen.
Expected behavior
TalkBack reads the controls in the order they appear on screen: attach, message field, then model and Send.
Actual behavior
TalkBack reads attach, model, and Send first, and the message field last. Send comes before the field you type in. This happens both in the one-line composer and in the expanded multi-line composer, where the field sits above the controls.
Cause
Since #23467, apps/mobile/src/features/threads/ThreadComposer.tsx (around lines 885–1000) renders the control row first. That row includes an empty placeholder where the field appears. The real ComposerEditor is rendered after the row as an absolutely positioned view placed over the placeholder. TalkBack follows view-tree order, not screen position. Before #23467, the editor came before the send button in the tree.
Proposed fix
- In
ThreadComposer.tsx, render the editor'sAnimated.Viewbefore<ComposerDictationDraftContent>(the control row). - Give the empty placeholder
Animated.Viewin the rowpointerEvents="none". - In
ComposerDictationDraftContent(apps/mobile/src/features/voice-input/ComposerDictationControl.tsx), changepointerEventsfrom"auto"to"box-none"when it isn't hidden. Once the editor sits underneath the row, a wrapper set to"auto"could take taps meant for the field.ThreadComposeris the only place that uses this component. - Don't use
zIndexor elevation to put the editor back on top. On Android those can change the accessibility order again.
experimental_accessibilityOrder isn't an option here. In RN 0.88 it's behind the enableAccessibilityOrder feature flag, which is off outside the Canary release channel, so Android ignores it.
This fix shouldn't change anything visually. Other platforms are untested. To verify:
- Swipe through with TalkBack in the compact and expanded composer, and with attachments in the row.
- Check that tapping the field still focuses it and opens the keyboard.
Impact
Minor bug or occasional failure
Version or commit
Latest Android nightly (main @ eb751fa)
Environment
Samsung Galaxy S26 Ultra, Android 17 (One UI 9), TalkBack 17.1, T3 Code Android nightly
Logs or stack traces
Screenshots, recordings, or supporting files
Screen_Recording_20261029_133317_T3.Code.mp4
Workaround
Explore by touch: drag a finger over the composer instead of swiping, so the field can be reached directly.
Activity