Skip to content

Android, Accessibility: Not clickable via TalkBack when child is a Pressable #1189

@terreng

Description

@terreng

The following example does not work on Android when TalkBack is enabled. It works fine on Android when TalkBack is turned off, and it works fine on iOS with or without VoiceOver. On Android with TalkBack, it focuses on the Pressable as intended, but clicking it does not open the menu. Instead, nothing happens.

<MenuView
  actions={[{
    id: 'share',
    title: 'Share Action',
  }]}
>
  <Pressable>
    <Text>Open Menu</Text>
  </Pressable>
</MenuView>

The only way I'm aware of to fix this would be to use a ref and set onPress={() => {menuRef.current?.show()}}, however this doesn't work at the moment per #1001.

That said, I think that putting a <Pressable> inside of <MenuView> is probably common, and considering that it works fine in every other case, I think people will probably expect it to work with TalkBack too. Therefore I think a fix in the library itself would be ideal.

There's also an open issue with zeego that I think may stem from the same issue: nandorojo/zeego#159

I'm opening a PR that will fix this issue, for your consideration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions