[UPDATE] Screen readers couldn't associate form hints or per-field errors with their inputs before this change.
Register form
- Three template closures compose
aria-describedby,aria-invalid, and inline error markup per field. aria-describedbylists the hint span id plus the per-field error span id when present.aria-invalid="true"is set only when that field actually has a validation error.- Error spans render inline below the input (
role="alert") in addition to the existing top-of-form alert block.
Reset-password form
- Password input points at
#passwordStrengthTextviaaria-describedby. - Confirm input gets a "must match" hint with its own aria wiring.
Other forms rely on flash messages (no per-field state to describe), so aria changes there would be no-ops — left alone.
Refs: improvement list item #16.
Automated system post — 2026-04-18 10:29:35 CDT
. __ ____ ___ ____ _ _
/ /_| ___| / _ \___ \(_)___| |__
| '_ \___ \| | | |__) | / __| '_ \
| (_) |__) | |_| / __/| \__ \ | | |
\___/____/ \___/_____|_|___/_| |_|
D2sk - Sysop