diff options
| author | Durval Carvalho <durvalcsouza@outlook.com> | 2023-01-31 15:05:03 -0300 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-02-16 08:29:40 +0100 |
| commit | 85366fbca723c9b37d0ac9db1d44e3f1cb188db2 (patch) | |
| tree | 4c639dbd7d431b14d9dea655eb184f1cbd027f73 /django | |
| parent | 6bdc3c58b65eb32fd63cd41849f00a17a36b4473 (diff) | |
Fixed #34045 -- Improved accessibility of selecting items in admin changelist.
This adds "aria-label".
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/helpers.py | 3 | ||||
| -rw-r--r-- | django/contrib/admin/options.py | 9 | ||||
| -rw-r--r-- | django/contrib/admin/templatetags/admin_list.py | 6 |
3 files changed, 11 insertions, 7 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index b038b3ebbb..90ca7affc8 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -36,9 +36,6 @@ class ActionForm(forms.Form): ) -checkbox = forms.CheckboxInput({"class": "action-select"}, lambda value: False) - - class AdminForm: def __init__( self, diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index ed70f93628..1e08458fe1 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -13,7 +13,6 @@ from django.contrib.admin.checks import ( InlineModelAdminChecks, ModelAdminChecks, ) -from django.contrib.admin.decorators import display from django.contrib.admin.exceptions import DisallowedModelAdminToField from django.contrib.admin.templatetags.admin_urls import add_preserved_filters from django.contrib.admin.utils import ( @@ -962,12 +961,16 @@ class ModelAdmin(BaseModelAdmin): action_flag=DELETION, ) - @display(description=mark_safe('<input type="checkbox" id="action-toggle">')) def action_checkbox(self, obj): """ A list_display column containing a checkbox widget. """ - return helpers.checkbox.render(helpers.ACTION_CHECKBOX_NAME, str(obj.pk)) + attrs = { + "class": "action-select", + "aria-label": format_html(_("Select this object for an action - {}"), obj), + } + checkbox = forms.CheckboxInput(attrs, lambda value: False) + return checkbox.render(helpers.ACTION_CHECKBOX_NAME, str(obj.pk)) @staticmethod def _get_action_description(func, name): diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index ee6f3a7666..761a64ae5f 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -96,8 +96,12 @@ def result_headers(cl): # if the field is the action checkbox: no sorting and special class if field_name == "action_checkbox": + aria_label = _("Select all objects on this page for an action") yield { - "text": text, + "text": mark_safe( + f'<input type="checkbox" id="action-toggle" ' + f'aria-label="{aria_label}">' + ), "class_attrib": mark_safe(' class="action-checkbox-column"'), "sortable": False, } |
