The accessibility suite checks a list of pages somebody has to remember to extend #66
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo#66
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What exists today
tests/e2e/test_accessibility.pyruns axe-core over 55 addresses in light and dark, atWCAG 2 A and AA plus best practice, and fails on any violation. It is a good suite and it
passes.
The addresses are a Python list, written by hand. A page added tomorrow is not in it, and
nothing says so.
What is not being checked
Comparing that list against the project's URL patterns, roughly thirty pages a person can
reach are never visited by it. Among them:
/applications/suggestions/— the whole review queue from #34, added after the listwas last extended;
/documents/letters/new/,/documents/letters/<pk>/,/documents/letters/<pk>/edit/and the preview;
/documents/cvs/<pk>/, its edit page, andentries/add/;/jobs/contacts/new/,/jobs/industries/new/,/jobs/captures/new/,/jobs/captures/<pk>/review/,/jobs/postings/<pk>/;/applications/<pk>/events/new/, the interview edit and outcome pages, the tag forms;/settings/connections/<pk>/and the per-plugin add form;/accounts/signup/,/accounts/email/, the recovery-codes and TOTP activation pages;already lost;
All of them answer 200 when asked, so this is a coverage gap and not a list of broken
pages.
Shape
Enumerate rather than list. Walk the URL resolver, keep the patterns that take no
arguments or whose arguments the fixture can fill, and check every one. Then a page added
without being checked is a failure, which is the property the current list cannot have.
builds an application, a company, a contact, an interview and a reminder.
.ics, a redirect — goes in asmall named exclusion list with its reason, the way
IGNORED_RULESalready is.raises, with
DEBUGoff.exclusions.
What this does not fix, and should be written into the module
The suite passed, in both themes, on a sign-in page that turned out to be completely
unstyled (see the companion issue). Everything axe measures was correct. A page can be
machine-perfect and unusable, so the docstring should say what this suite is for — a
regression net for the things a machine can check — and that it is not evidence that a
page is good.
Classification
Enhancement, accessibility. Not breaking; it is test-only.
Depends on
Nothing. Better landed after the unstyled-pages fix, so the new coverage starts green.