Jquery 指定键盘快捷键以拖放网页中的元素

Jquery 指定键盘快捷键以拖放网页中的元素,jquery,drag-and-drop,keyboard-shortcuts,accessibility,keyboard-events,Jquery,Drag And Drop,Keyboard Shortcuts,Accessibility,Keyboard Events,我的web应用程序的一个页面中有拖放功能。事件已使用jquery处理。我想只使用键盘复制鼠标的拖放操作。我相信这将使我的应用程序更容易访问。有办法吗?感谢您的帮助 这篇文章是为创建富互联网的人而写的 具有拖放功能的应用程序,并希望 可到达的假设WAI-ARIA的先验知识不存在,尽管它是 建议您在之前阅读我的WAI-ARIA介绍文章 从这篇文章开始。假设具备脚本编写的基本知识,并且 有必要准确理解代码中发生了什么 举例来说,但这些知识并不是理解基本知识所必需的 讨论的概念 使用WAI-ARIA拖放

我的web应用程序的一个页面中有拖放功能。事件已使用jquery处理。我想只使用键盘复制鼠标的拖放操作。我相信这将使我的应用程序更容易访问。有办法吗?感谢您的帮助

这篇文章是为创建富互联网的人而写的 具有拖放功能的应用程序,并希望 可到达的假设WAI-ARIA的先验知识不存在,尽管它是 建议您在之前阅读我的WAI-ARIA介绍文章 从这篇文章开始。假设具备脚本编写的基本知识,并且 有必要准确理解代码中发生了什么 举例来说,但这些知识并不是理解基本知识所必需的 讨论的概念

使用WAI-ARIA拖放

WAI-ARIA提供了两个属性,帮助辅助技术用户访问拖放:

  • aria dropeffect

您可能需要提供完全不同的视图,因为即使使用ARIA,您仍然无法复制物理移动控件的需要

一个示例是列出用户可以移动的所有对象,并在每个对象中提供一组选项,用于用户希望将其移动到的位置

例如,这里有一个要移动的项目(根据需要复制和更改字母):

我不使用jQuery,但我相信您可以将这个简单的JavaScript函数抽象为首选语法:

function MoveItem(itemID, colID) {
  try {
    var Item = document.getElementById(itemID);
    var Col = document.getElementById(colID);
    Col.appendChild(Item);
  } catch (e) {
    console.log('MoveItem(): ' + e);
  }
}
就这样。没有咏叹调,没有图书馆,不需要担心移动性


我还有一个完整的示例作为代码笔,所以您可以试一试,看看它是如何工作的:

在aria 1.1中不推荐拖放属性。看见
<table>
  <tr>
    <th>Column 1</th>
    <th>Column 2</th>
    <th>Column 3</th>
  </tr>
  <tr>
    <td id="c1"></td>
    <td id="c2"></td>
    <td id="c3"></td>
  </tr>
</table>
function MoveItem(itemID, colID) {
  try {
    var Item = document.getElementById(itemID);
    var Col = document.getElementById(colID);
    Col.appendChild(Item);
  } catch (e) {
    console.log('MoveItem(): ' + e);
  }
}