Tags and industries: with scripts on, their validation errors are hidden along with the native controls #522
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
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#522
Loading…
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?
Found on 2026-09-29 in a read-only review of postulo at
95348908d, reading the label-chip control instatic/js/app.jsagainst the templates it is layered over.Checked again on 2026-10-01 against
mainat0a5cad587: still present. The code is now atstatic/js/app.js:1831-1842(readyLabelshiding the two boxes) andjobs/forms.py:118-124(new_industries); the two templates are unchanged.When the chip control takes over,
readyLabelshides the whole box that holds the native control and the whole box that holds the new field. Both boxes also hold the field's<c-field-feedback>, so the help text and anyrole="alert"errors for tags, new tags, industries and new industries are rendered and then hidden. The chip input does not refer to them, and neither form summarises field errors anywhere else.static/js/app.js:1598-1609(native.hidden = trueon[data-labels-existing],newBox.hidden = trueon[data-labels-newbox]);templates/partials/tags_field.html:8-16(<c-field-feedback>fortagsandnew_tagsinside those boxes);templates/jobs/company_form.html:47-70(the same forindustriesandnew_industries);jobs/forms.py:117-123(new_industrieshasmax_length=300; the chips write it withwriteTyped, which the input'smaxlengthdoes not limit);company_form.html:12-14summarises onlynon_field_errors.ModelMultipleChoiceFieldthen reports an invalid choice). The page comes back unsaved, the chips are redrawn, and no error is visible or announced.<c-field-feedback>outside the box the script hides, or havereadyLabelshide the select, the checkbox row and the text input individually. When an error block exists, add its id to the chip input'saria-describedby.Done when
tests/e2e/test_labels.pysubmits a company form whose new industries exceed 300 characters, with the script on, and asserts that thenew_industrieserror is visible. It fails today and passes after the fix.