adobe / adobe/react-spectrum

useLongPress should be cancelled on multiple touches

Open
#5,934 3 comments 0 reactions 0 assignees View on GitHub
bug help wanted
Dominant language
TypeScript
Stars
15.9k
Forks
1.6k
Avg merge
3d 9m
Merged PRs (30d)
59

Description

### Provide a general summary of the feature here

Hi there!

I just received an accessibility issue from a user (see: https://github.com/aeharding/voyager/issues/1254).

> 3-finger double tap cause [long press menu] to open. This is commonly used as an accessibility shortcut. I use it for full screen zoom. Ii can't do it with [App] because it causes the [long press menu] to open in waiting to the zoom.

Essentially, the native iOS feature is conflicting with long press, because long press does not cancel when multiple touches are detected.

### 🤔 Expected Behavior?

Long press should cancel when multiple touches are detected - at very least, as an option.

This is the standard behavior for native iOS apps (for example, the Mail app).

### 😯 Current Behavior

Holding screen with two fingers, or pressing one finger and then another before the LONG_PRESS_THRESHOLD, causes the long press callback to be triggered.

### 💁 Possible Solution

New option: `LongPressProps["cancelOnTouches"]?: boolean`

### 🔦 Context

Please see accessibility concern from user, where they cannot use the native iOS zoom function with 3-finger tap because it conflicts with useLongPress.

https://github.com/aeharding/voyager/issues/1254

### 💻 Examples

_No response_

### 🧢 Your Company/Team

Voyager for Lemmy

### 🕷 Tracking Issue

https://github.com/aeharding/voyager/issues/1254

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.