C2LC-524: Cannot scroll program area when using drag and drop with the touch gesture (iPadOS 15.0)

Description

Steps to reproduce:

  1. Add many actions to the program so that the list of actions doesn’t not fit on the screen and requires scrolling.
  2. Drag another action from the actions panel and attempt to reach a portion of the program that is currently scrolled off screen.
  3. Notice that the program panel doesn’t scroll.

Things to investigate:

  • is this a configuration option in our drag and drop library
  • is there a more recent version of our library
  • are there other libraries that would provide this
  • does Safari now support the web API

Comments

  • Tony Atkins [RtF] commented 2021-11-03T05:24:41.247-0400

    Drag and drop scrolling also does not work with Safari 15.0 on OS X.

  • Tony Atkins [RtF] commented 2021-11-03T05:56:28.507-0400

    Does Safari now support the web API?

    caniuse.org claims the desktop supports it, but our scrolling now doesn’t work in desktop Safari 15.0. caniuse.org suggests that the iOS version doesn’t support the drag and drop API, and Apple’s own docs seem to confirm this. Interestingly, the docs do suggest ways of using touch-based strategies to work around this.

    Is there a more recent version of our library?

    Our fork was created 18 months ago, there have been no releases since 2017.

    Is there a configuration option in our drag and drop library?

    There is no support for scrolling in dragdroptouch, see this issue (there are other similar issues with no answers).

    Are there other libraries that would provide this?

    In the above issue, a user mentioned that mobile-drag-drop has an optional module to support scrolling. However, the demo seems not to work in the browsers I’ve tried, and that package has not been updated in over two years. Searching npm, I also found ios-html5-drag-drop-shim, but this is a fork of mobile-drag-drop and even less well supported.

    Looking at the Apple docs, it seems like we could explore writing our own touch handlers as one way of handling this. It may be that because we only have to cover “our” use cases, we can make something simple that bridges the gaps between the touch and drag and drop events we care about.

  • Simon Bates commented 2024-04-30T11:49:44.339-0400

    Moved to GitHub: https://github.com/codelearncreate/c2lc-coding-environment/issues/498