An application's Documents page: the uploads' Download links do not say which file they download #516

Closed
opened 2026-10-01 10:47:14 +00:00 by tiagoagueda · 0 comments
Owner

Found on 2026-09-29 in a read-only review of postulo at 95348908d, reading the document templates against what #276 asked of every per-row action.

Checked again on 2026-10-01 against main at 0a5cad587: still present.

#276 (closed) gave per-row actions a hidden suffix naming their row, and on an application's Documents page the rendered-document rows have it (application_documents.html:45 and :48). The "Files you already had" list on the same page was missed: each row draws a bare "Download", so a links list reads "Download, Download, Download" with nothing to tell the CV from the certificate. Related to #276, whose sweep named upload_list.html but not this page.

  • Where: templates/documents/application_documents.html:88-89; the upload list's version, which is right, is templates/documents/upload_list.html:50. The shared templates/documents/partials/copies.html:29 has the same gap: its "Send to stores now" button repeats on every row of both this page and the upload list, with no row named.
  • What happens: a screen-reader user brings up the links list on an application's Documents page after sending two uploads with it and hears "Download" twice, with no way to tell which link fetches which file without leaving the list.
  • Why it matters: the page falls short of the naming rule the rest of the documents pages follow since #276, and a person using a screen reader cannot pick the right file from the links list.
  • Fix: add <span class="sr-only">: <bdi>{{ document.title }}</bdi></span> after the label in application_documents.html:89, as upload_list.html:50 does, and the same suffix after "Send to stores now" in partials/copies.html:29 (it already receives document).

Done when

  • A test in tests/test_assistive_names.py attaches an upload to an application, fetches documents:application_documents, and asserts that the page contains Download<span class="sr-only">: <bdi> followed by the upload's title.
Found on 2026-09-29 in a read-only review of postulo at 95348908d, reading the document templates against what #276 asked of every per-row action. Checked again on 2026-10-01 against `main` at `0a5cad587`: still present. #276 (closed) gave per-row actions a hidden suffix naming their row, and on an application's Documents page the rendered-document rows have it (`application_documents.html:45` and `:48`). The "Files you already had" list on the same page was missed: each row draws a bare "Download", so a links list reads "Download, Download, Download" with nothing to tell the CV from the certificate. Related to #276, whose sweep named `upload_list.html` but not this page. - **Where:** `templates/documents/application_documents.html:88-89`; the upload list's version, which is right, is `templates/documents/upload_list.html:50`. The shared `templates/documents/partials/copies.html:29` has the same gap: its "Send to stores now" button repeats on every row of both this page and the upload list, with no row named. - **What happens:** a screen-reader user brings up the links list on an application's Documents page after sending two uploads with it and hears "Download" twice, with no way to tell which link fetches which file without leaving the list. - **Why it matters:** the page falls short of the naming rule the rest of the documents pages follow since #276, and a person using a screen reader cannot pick the right file from the links list. - **Fix:** add `<span class="sr-only">: <bdi>{{ document.title }}</bdi></span>` after the label in `application_documents.html:89`, as `upload_list.html:50` does, and the same suffix after "Send to stores now" in `partials/copies.html:29` (it already receives `document`). ## Done when - A test in `tests/test_assistive_names.py` attaches an upload to an application, fetches `documents:application_documents`, and asserts that the page contains `Download<span class="sr-only">: <bdi>` followed by the upload's title.
tiagoagueda added this to the 0.6.0 milestone 2026-10-01 10:47:14 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#516
No description provided.