Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. PSA for Android devs using Jetpack Compose with TalkBack: ExposedDropdownMenuBox breaks linear swipe navigation order.

PSA for Android devs using Jetpack Compose with TalkBack: ExposedDropdownMenuBox breaks linear swipe navigation order.

Scheduled Pinned Locked Moved Uncategorized
androida11yjetpackcomposetalkbackaccessibility
3 Posts 2 Posters 8 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T This user is from outside of this forum
    T This user is from outside of this forum
    tamasg@mindly.social
    wrote last edited by
    #1

    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

    vick21@mastodon.socialV 1 Reply Last reply
    4
    0
    • R relay@relay.publicsquare.global shared this topic
      R relay@relay.infosec.exchange shared this topic
      R relay@relay.mycrowd.ca shared this topic
      pixelate@tweesecake.socialP pixelate@tweesecake.social shared this topic
    • T tamasg@mindly.social

      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

      vick21@mastodon.socialV This user is from outside of this forum
      vick21@mastodon.socialV This user is from outside of this forum
      vick21@mastodon.social
      wrote last edited by
      #2

      @Tamasg Wow, what are you doing there?

      T 1 Reply Last reply
      0
      • vick21@mastodon.socialV vick21@mastodon.social

        @Tamasg Wow, what are you doing there?

        T This user is from outside of this forum
        T This user is from outside of this forum
        tamasg@mindly.social
        wrote last edited by
        #3

        @vick21 oh, I ran into this oddly for the TGSpeechBox Settings UI 🙂 but all this work especially with getting Jetpack compose stuff to have proper roles and sound good with Talkback will be really useful for work too, no doubt, so I'm not upset at all going a bit more out of my web-centric comfort zone. xD

        1 Reply Last reply
        2
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups