﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
35940	SelectFilter choose/remove buttons missing keyboard-friendly state management	Thibaud Colas		"The SelectFilter2 JS code in use for user permissions management and other parts of the admin is lacking a ""disabled"" state for its buttons, for keyboard and screen reader users specifically.

See a [https://thibaudcolas.github.io/django_admin_tests/latest/english/admin/auth/user/1/change/#fieldset-0-2-heading demo page with this widget]. The problem can be reproduced by tabbing to the buttons. This shouldn’t be possible when they are in their ""disabled"" state:


For keyboard users this means two unexpected / unnecessary tab stops when moving through the form. For screen reader users, the buttons will behave as if they were functional even though nothing happens when pressing them.

---

The best solution here will be to switch to semantic `<button type=""button"">` elements, and their `disabled` attributes. This needs to be done for the four ""add/remove"" buttons:

- ""Choose"" (arrow right)
- ""Remove"" (arrow left)
- ""Choose all""
- ""Remove all"""	Bug	new	contrib.admin	5.1	Normal		accessibility, aria, button, html, javascript, keyboard, screen reader, semantic, disabled, SelectFilter2		Unreviewed	0	0	0	0	0	0
