Opened 18 months ago
Last modified 18 months ago
#34625 closed Bug
FilteredSelectMultiple widget’s elements aren’t labelled — at Initial Version
Reported by: | Thibaud Colas | Owned by: | nobody |
---|---|---|---|
Component: | contrib.admin | Version: | 4.2 |
Severity: | Normal | Keywords: | accessibility, screen reader |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | yes |
Description
In the admin UI, the FilteredSelectMultiple
is missing labels for some of its elements. Here’s a recording of the widget’s UI, and what users would get for it in VoiceOver:
There are two problems here:
- "Filter edit text" – it’s not ideal for both of those to have the same label. Ideally each side would have a separate label ("Filter Available permissions", "Filter Chosen permissions"). This could be achieved with adding an
aria-describedby
on the filterinput
elements, pointing to the "Available permissions" text (and same for chosen permissions). - "list box" – those
select
elements don’t have a label at all. This needs to be added by transforming theh2
elements intolabel
, with afor
pointing at each field.
In both cases it seems the fix should be implemented in [SelectFilter2.js https://github.com/django/django/blob/main/django/contrib/admin/static/admin/js/SelectFilter2.js#L38].
In Django itself, only contrib.auth
group and user model forms use the filter_horizontal
ModelAdmin API which has the issue. Not quite sure whether this widget is meant to be reused by users or not.