1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #35686 -- Added table headers to app list tables for screen readers.

This commit is contained in:
Sarah Boyce
2024-08-17 18:32:40 +02:00
parent 231c0d8593
commit d9ae7f5b58
3 changed files with 30 additions and 3 deletions

View File

@@ -799,7 +799,9 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
reverse("admin:admin_views_complexsortedperson_changelist"), {}
)
# Should have 5 columns (including action checkbox col)
self.assertContains(response, '<th scope="col"', count=5)
result_list_table_re = re.compile('<table id="result_list">(.*?)</thead>')
result_list_table_head = result_list_table_re.search(str(response.content))[0]
self.assertEqual(result_list_table_head.count('<th scope="col"'), 5)
self.assertContains(response, "Name")
self.assertContains(response, "Colored name")
@@ -830,7 +832,11 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
reverse("admin:admin_views_%s_changelist" % url), {}
)
# Should have 3 columns including action checkbox col.
self.assertContains(response, '<th scope="col"', count=3, msg_prefix=url)
result_list_table_re = re.compile('<table id="result_list">(.*?)</thead>')
result_list_table_head = result_list_table_re.search(str(response.content))[
0
]
self.assertEqual(result_list_table_head.count('<th scope="col"'), 3)
# Check if the correct column was selected. 2 is the index of the
# 'order' column in the model admin's 'list_display' with 0 being
# the implicit 'action_checkbox' and 1 being the column 'stuff'.
@@ -7498,12 +7504,26 @@ class CSSTest(TestCase):
# General index page
response = self.client.get(reverse("admin:index"))
self.assertContains(response, '<div class="app-admin_views module')
self.assertContains(
response,
'<thead class="visually-hidden"><tr><th scope="col">Model name</th>'
'<th scope="col">Add link</th><th scope="col">Change or view list link</th>'
"</tr></thead>",
html=True,
)
self.assertContains(response, '<tr class="model-actor">')
self.assertContains(response, '<tr class="model-album">')
# App index page
response = self.client.get(reverse("admin:app_list", args=("admin_views",)))
self.assertContains(response, '<div class="app-admin_views module')
self.assertContains(
response,
'<thead class="visually-hidden"><tr><th scope="col">Model name</th>'
'<th scope="col">Add link</th><th scope="col">Change or view list link</th>'
"</tr></thead>",
html=True,
)
self.assertContains(response, '<tr class="model-actor">')
self.assertContains(response, '<tr class="model-album">')