adobe / adobe/react-spectrum

Remove warning requesting that collections with DnD have a button with slot="drag"

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

Description

### Provide a general summary of the issue here

A draggable button isn't the only way to provide an alternative, accessible method for DnD.

I haven't found anything in W3 and the Aria spec that indicates this has to be mandatory.

A very common pattern is to have, within the item, a dropdown menu where one of the options is "move".

![image](https://github.com/adobe/react-spectrum/assets/43938777/a9470e8c-b9a2-42ed-b9c3-3f59b4e315fd)

### 🤔 Expected Behavior?

slot="drag" should not be mandatory

### 😯 Current Behavior

The console shows the following warning:

> Draggable items in a GridList must contain a element so that keyboard and screen reader users can drag them.

### 💁 Possible Solution

One option would be to be able to deactivate the warning in some way, although in my opinion it should not appear directly.

### 🔦 Context

_No response_

### 🖥️ Steps to Reproduce

See the console on https://codesandbox.io/p/sandbox/thirsty-sky-mtqsp9

### Version

1.0.0

### What browsers are you seeing the problem on?

Chrome

### If other, please specify.

_No response_

### What operating system are you using?

Windows

### 🧢 Your Company/Team

_No response_

### 🕷 Tracking Issue

_No response_

Contributor guide

Open the contributing guide

Research direction

Reproduce the warning from the linked CodeSandbox, then trace the GridList implementation that emits the message about requiring a Button with slot="drag". Review the issue discussion and accessibility behavior before changing it; done means valid alternative drag interactions no longer produce an unwanted mandatory-slot warning.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, typescript
Domain
accessibility, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.