>本文展示了為多個元素處理和鍵盤可訪問性增強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中文網其他相關文章!