Draggable is a JavaScript library for implementing draggable elements and sortable lists within a web browser. It provides a functional toolset for creating accessible drag and drop interfaces and a mechanism for dynamically swapping, sorting, and reordering HTML elements in real time.
The library features a cross-input interaction layer that unifies mouse, touch, and force-touch events into a single stream for consistent behavior across different devices. It specifically includes tools for providing screen reader feedback and assistive technology support to ensure drag operations are accessible to users with visual impairments.
The project covers layout management through the definition of droppable zones and the prevention of element overlap. It handles dynamic element sorting, position swapping, and the real-time updating of the document order, with visual transitions controlled via CSS selectors.