Exploring the challenges in creating an accessible sortable list (drag-and-drop)
Blog post from GitHub
GitHub's Accessibility team has addressed challenges in making drag-and-drop functionality more accessible, particularly for users relying on screen readers and other assistive technologies. The team developed a "one-dimensional drag-and-drop" solution, which involved using role='application' to override default screen reader commands and ensure compatibility with keyboard navigation. They also addressed issues with NVDA screen reader simulating mouse events and improved the announcement of item movements using a debounce method with aria-live='assertive'. To enhance the first-time user experience, they introduced instructional dialogs, and for voice control users, they implemented a move dialog that allows users to specify actions and positions for item movement without traditional drag-and-drop. Testing with a diverse range of users revealed the importance of feedback in developing accessible interfaces, and the team found that their solutions also benefited users who do not rely on assistive technology. The project highlights the complexity of creating accessible drag-and-drop functionality and the need for continuous improvement and user input.