Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List: Support keyboard dragging between different Lists #7537

Closed
2 of 3 tasks
Csmith246 opened this issue Aug 16, 2023 · 25 comments
Closed
2 of 3 tasks

List: Support keyboard dragging between different Lists #7537

Csmith246 opened this issue Aug 16, 2023 · 25 comments
Assignees
Labels
4 - verified Issues that have been released and confirmed resolved. ArcGIS Instant Apps Issues logged by ArcGIS Instant Apps team members. breaking change Issues and pull requests with code changes that are not backwards compatible. c-list Issues that pertain to the calcite-list component calcite-components Issues specific to the @esri/calcite-components package. design Issues that need design consultation prior to development. enhancement Issues tied to a new feature or request. estimate - 5 A few days of work, definitely requires updates to tests. impact - p2 - want for an upcoming milestone User set priority impact status of p2 - want for an upcoming milestone p - medium Issue is non core or affecting less that 60% of people using the library visual changes Issues with visual changes that are added for consistency, but are not backwards compatible.

Comments

@Csmith246
Copy link

Check existing issues

Description

Be able to use the keyboard to drag between lists. Currently, you can only drag via keyboard within a List.

Acceptance Criteria

Grouping multiple lists together, be able to perform drag and drop of different list items with only the keyboard.

In terms of implementation, I'd assume using the left/right arrows when in keyboard drag mode on a List Item would just find the next List in the page (to the left or right) and then move the item to that List, if it exists.

Relevant Info

Ref to similar issue: #7046

Which Component

Calcite List

Example Use Case

In Instant Apps, our Position Manager ties 4 Calcite Lists together. The desire is to support keyboard only movement between the lists for accessibility.

PositionManagerAccessibilityRequest

Priority impact

p3 - want for upcoming milestone

Calcite package

  • @esri/calcite-components
  • @esri/calcite-components-react

Esri team

ArcGIS Instant Apps

@Csmith246 Csmith246 added 0 - new New issues that need assignment. enhancement Issues tied to a new feature or request. needs triage Planning workflow - pending design/dev review. labels Aug 16, 2023
@github-actions github-actions bot added ArcGIS Instant Apps Issues logged by ArcGIS Instant Apps team members. p3 - want for upcoming milestone calcite-components Issues specific to the @esri/calcite-components package. labels Aug 16, 2023
@geospatialem
Copy link
Member

Effort should be considered with the effort in #7426

@geospatialem geospatialem added p - medium Issue is non core or affecting less that 60% of people using the library estimate - 5 A few days of work, definitely requires updates to tests. needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. and removed needs triage Planning workflow - pending design/dev review. labels Aug 21, 2023
@geospatialem geospatialem removed the needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. label Sep 6, 2023
@geospatialem geospatialem added 1 - assigned Issues that are assigned to a sprint and a team member. and removed 0 - new New issues that need assignment. labels Apr 22, 2024
@aPreciado88 aPreciado88 added 2 - in development Issues that are actively being worked on. and removed 1 - assigned Issues that are assigned to a sprint and a team member. labels Apr 22, 2024
@geospatialem geospatialem added 0 - new New issues that need assignment. and removed 2 - in development Issues that are actively being worked on. labels Apr 24, 2024
@macandcheese macandcheese added the c-list Issues that pertain to the calcite-list component label May 1, 2024
@geospatialem geospatialem removed this from the 2024-05-28 - May Main Release milestone May 6, 2024
@geospatialem geospatialem added the needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. label May 6, 2024
driskull added a commit that referenced this issue Oct 31, 2024
)

**Related Issue:** #7537

## Summary

- depends on #10241
- updates `action` to allow cursor to be overriden
- lists should set the `label` property for the "Move to" sorting menu
to have a name for the list.
- adds `calcite-sort-handle` component to handle sorting and moving
between lists for non mouse users
  - internal component 
  - adds stories
  - adds tests 
- list-item
  - deprecates `dragSelected` property: no longer needed.
- deprecates `calciteListItemDragHandleChange` event. no longer needed.
- removed setting `aria-posinset` and `aria-setsize`. These are only
needed when only part of the items are availalbe in the DOM. So we can
safely remove these.
-
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-setsize
-
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-posinset
- replaces `calcite-handle` with `calcite-sort-handle` in the `list`
component.
- updates tests
- adds tests
- adds demo pages

BREAKING CHANGE: Modifies the component's keyboard sorting experience by
using a dropdown menu to move list items. The ListItem `dragSelected`
property and `calciteListItemDragHandleChange` event have been removed
due to no longer being relevant.
@driskull driskull added 3 - installed Issues that have been merged to master branch and are ready for final confirmation. and removed 2 - in development Issues that are actively being worked on. labels Oct 31, 2024
Copy link
Contributor

Installed and assigned for verification.

@github-actions github-actions bot assigned DitwanP and unassigned driskull Oct 31, 2024
@ashetland
Copy link
Contributor

ashetland commented Oct 31, 2024

Now that we're using Action for the drag handle, we need to override it's icon color from text.3 to border.input to match our prior implementation. border.input is preferred to keep the drag handle less visually prominent while still meeting AA wcag standards. cc @driskull

driskull added a commit that referenced this issue Oct 31, 2024
**Related Issue:** #7537

## Summary

- adjust icon color to use border-input color.
@driskull
Copy link
Member

Now that we're using Action for the drag handle, we need to override it's icon color from text.3 to border.input to match our prior implementation. border.input is preferred to keep the drag handle less visually prominent while still meeting AA wcag standards.

Done

@geospatialem
Copy link
Member

geospatialem commented Nov 6, 2024

It looks like where multiple lists are provided with the current implementation the label would be required to provide context on where the list-item would move to via https://codepen.io/geospatialem/pen/JjgmKVb:

No label value With label value
image image

Wondering what folks think, if we should consider:

  1. Require the label prop/attr
  2. Have a fallback if label isn't specified and/or
  3. Update the documentation that specifies a label property should be accompanied when working with multiple lists

cc @driskull @jcfranco

@driskull
Copy link
Member

driskull commented Nov 6, 2024

I lean towards documentation or making label required. I'm not sure what the fallback would be.

@geospatialem
Copy link
Member

I lean towards documentation or making label required. I'm not sure what the fallback would be.

We have several other components that have a required label prop (alert, card-group, carousel-, loader, etc.), maybe we should do the same here?

@driskull
Copy link
Member

driskull commented Nov 6, 2024

Yeah. I think we can also document that the label is needed for moving between lists.

@geospatialem geospatialem added 2 - in development Issues that are actively being worked on. and removed 3 - installed Issues that have been merged to master branch and are ready for final confirmation. labels Nov 6, 2024
jcfranco pushed a commit that referenced this issue Nov 15, 2024
…10702)

**Related Issue:** #7537

## Summary
- Modifies the component's `label` property to be required
- Provides context to the `label` property, where its value specifies
the name when dragging between lists discussed in
#7537 (comment)
and the subsequent thread

BREAKING CHANGE: The component's `label` property is required to provide
context between lists when dragging.
@jcfranco jcfranco added 3 - installed Issues that have been merged to master branch and are ready for final confirmation. and removed 2 - in development Issues that are actively being worked on. labels Nov 15, 2024
Copy link
Contributor

Installed and assigned for verification.

@geospatialem
Copy link
Member

@DitwanP For verification see this comment for a sample to test out. 🧪

@DitwanP
Copy link
Contributor

DitwanP commented Nov 19, 2024

🍡 Verified on 3.0.0-next.7

@DitwanP DitwanP closed this as completed Nov 19, 2024
@DitwanP DitwanP added 4 - verified Issues that have been released and confirmed resolved. and removed 3 - installed Issues that have been merged to master branch and are ready for final confirmation. labels Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4 - verified Issues that have been released and confirmed resolved. ArcGIS Instant Apps Issues logged by ArcGIS Instant Apps team members. breaking change Issues and pull requests with code changes that are not backwards compatible. c-list Issues that pertain to the calcite-list component calcite-components Issues specific to the @esri/calcite-components package. design Issues that need design consultation prior to development. enhancement Issues tied to a new feature or request. estimate - 5 A few days of work, definitely requires updates to tests. impact - p2 - want for an upcoming milestone User set priority impact status of p2 - want for an upcoming milestone p - medium Issue is non core or affecting less that 60% of people using the library visual changes Issues with visual changes that are added for consistency, but are not backwards compatible.
Projects
None yet
Development

No branches or pull requests

8 participants