From 910490ae2fa9b16b5edf8891ca392b43cfea6a6d Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Fri, 7 Jul 2023 16:09:26 +0100 Subject: [PATCH] Pass aria-description to table --- wagtail/admin/templates/wagtailadmin/tables/table.html | 2 +- wagtail/admin/ui/tables/__init__.py | 8 ++++++++ wagtail/admin/views/pages/listing.py | 7 +++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/wagtail/admin/templates/wagtailadmin/tables/table.html b/wagtail/admin/templates/wagtailadmin/tables/table.html index 305b6900b1..cc4e8e9075 100644 --- a/wagtail/admin/templates/wagtailadmin/tables/table.html +++ b/wagtail/admin/templates/wagtailadmin/tables/table.html @@ -1,6 +1,6 @@ {% load wagtailadmin_tags %} - + {% if table.has_column_widths %} {% for column in table.columns.values %} diff --git a/wagtail/admin/ui/tables/__init__.py b/wagtail/admin/ui/tables/__init__.py index 8a25b02923..bc3cd52f07 100644 --- a/wagtail/admin/ui/tables/__init__.py +++ b/wagtail/admin/ui/tables/__init__.py @@ -356,6 +356,7 @@ class Table(Component): base_url=None, ordering=None, classname=None, + attrs=None, ): self.columns = OrderedDict([(column.name, column) for column in columns]) self.data = data @@ -365,6 +366,7 @@ class Table(Component): self.ordering = ordering if classname is not None: self.classname = classname + self.base_attrs = attrs or {} def get_context_data(self, parent_context): context = super().get_context_data(parent_context) @@ -388,6 +390,12 @@ class Table(Component): def row_count(self): return len(self.data) + @property + def attrs(self): + attrs = self.base_attrs.copy() + attrs["class"] = self.classname + return attrs + def get_row_classname(self, instance): return "" diff --git a/wagtail/admin/views/pages/listing.py b/wagtail/admin/views/pages/listing.py index 05ec1eabb2..be78f9d6e4 100644 --- a/wagtail/admin/views/pages/listing.py +++ b/wagtail/admin/views/pages/listing.py @@ -2,6 +2,7 @@ from django.conf import settings from django.db.models import Count from django.shortcuts import get_object_or_404, redirect from django.urls import reverse +from django.utils.translation import gettext from django.utils.translation import gettext_lazy as _ from wagtail import hooks @@ -168,6 +169,12 @@ class IndexView(PermissionCheckedMixin, BaseListingView): kwargs = super().get_table_kwargs() kwargs["use_row_ordering_attributes"] = self.show_ordering_column kwargs["parent_page"] = self.parent_page + if self.show_ordering_column: + kwargs["attrs"] = { + "aria-description": gettext( + "Press enter to select an item, use up and down arrows to move the item, press enter to complete the move or escape to cancel the current move." + ) + } return kwargs def get_context_data(self, **kwargs):