>本文展示了为多个元素处理和键盘可访问性增强HTML5拖放功能,从而使视力和屏幕阅读器用户受益。 假设对拖放API的基本熟悉(请参阅初学者的介绍性文章),我们将重点放在扩展其功能上。
> dataTransfer
虽然多个元素的核心数据操作很简单(使用单独的数组而不是
> 密钥改进:
aria-grabbed
使用ARIA属性(aria-dropeffect
>,dragend
>
基本的拖放(简化示例):
和dataTransfer
被省略。 可拖动属性是通过JavaScript动态应用的,分开关注点并允许排除破裂的实现(例如旧的Opera版本)。 HTML使用effectAllowed
>属性进行识别。dropEffect
>
data-draggable
>
可访问性是最重要的。 我们将遵守ARIA的拖放惯例指南: >
代码添加>和 >(单/重置)和 用于指示有效的下降目标。 选择时键盘交互添加。 对于鼠标的相互作用, 事件使用A 事件。 键盘交互在目标容器上使用事件来处理滴滴,管理焦点以避免重置问题。
进一步的增强: FAQS:
>
>
aria-grabbed="false"
,并且是键盘navigable。aria-grabbed
在选择时变为“ true”。aria-dropeffect
>
aria-dropeffect
>
aria-grabbed
aria-grabbed
与空格键一起选择,处理用于多个选择的修饰符。 Atabindex
属性确保选择仅限于单个容器。 mousedown
,mouseup
和keydown
>函数管理选择状态。selections.owner
>
addSelection
removeSelection
拖动选择(鼠标和键盘):clearSelections
aria-dropeffect
>变量和aria-dropeffect="move"
>函数来处理事件冒泡。 dragenter
从目标容器中的项目中删除,以改善键盘导航。
dragleave
related
丢弃选择(鼠标和键盘):getContainer
>
tabindex
dragend
drop
未来的改进可能包括触摸/指针事件支持,浏览器多填充,选择排序,可自定义的副本/移动操作,连续选择,自定义拖动幽灵和拖动过程中的视觉提示。 该代码可在github上找到(原始文本中提供的链接)。keydown
>
以上是可访问多个项目的拖放的详细内容。更多信息请关注PHP中文网其他相关文章!