#35940: SelectFilter choose/remove buttons missing keyboard-friendly state
management
-------------------------------------+-------------------------------------
     Reporter:  Thibaud Colas        |                     Type:  Bug
       Status:  new                  |                Component:
                                     |  contrib.admin
      Version:  5.1                  |                 Severity:  Normal
     Keywords:  accessibility,       |             Triage Stage:
  aria, button, html, javascript,    |  Unreviewed
  keyboard, screen reader,           |
  semantic, disabled, SelectFilter2  |
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
 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"
-- 
Ticket URL: <https://code.djangoproject.com/ticket/35940>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/0107019365b8a52d-0eb41aaa-8185-4dbb-90d9-3fc731bfb2bf-000000%40eu-central-1.amazonses.com.

Reply via email to