PSA for Android devs using Jetpack Compose with TalkBack: ExposedDropdownMenuBox breaks linear swipe navigation order. It creates internal Surface nodes with isTraversalGroup = true, which makes TalkBack sort your dropdowns into completely wrong positions in the swipe order — even though explore-by-touch works fine.
The fix: replace ExposedDropdownMenuBox with plain Box + DropdownMenu. You lose the auto-width matching (easy to add
back with onGloballyPositioned) but gain an accessibility tree that actually works.
isTraversalGroup on parent sections didn't help either — the rogue groups inside the Material component override it.
#Android #A11y #JetpackCompose #TalkBack #Accessibility
The fix: replace ExposedDropdownMenuBox with plain Box + DropdownMenu. You lose the auto-width matching (easy to add
back with onGloballyPositioned) but gain an accessibility tree that actually works.
isTraversalGroup on parent sections didn't help either — the rogue groups inside the Material component override it.
#Android #A11y #JetpackCompose #TalkBack #Accessibility