Rule handbook metadata
- Rule
DET.FORM.LABEL_ERROR_SUMMARY· lanedeterministic- Page status
- current
- page_version
ff733229fa88cc37c75e966866c1f02f28af0b0ff4bf873f3065ae00584bd0d3- generated_at
- 2026-08-13T02:31:57.071Z
- registry_fingerprint
aef1de6082cf0f50d463783c843dee0ffb9132fbd5ed4ea6e5bb3f031f359c72
How this rule is fixed
Pilot deterministic fixer: plan_only · harness mode standalone · verify expect_rule_clean.
See fixer module for plan_only in lib/ux-deterministic-fixers/.
Detection module: docs/design/ux-audit/deterministic-design-rules.md#det-form-label-error-summary. Scroll down for Before / After examples and Evidence and remediation steps.
Purpose
Governed enterprise forms must not rely on placeholder-only labels or scattered inline errors alone. Operators need visible labels, field-level errors tied to inputs, and on multi-field submit failures an error summary region listing what to fix—especially in ForgeGovernedForm / Swz flows (ENT.APP.04).
Passing signals
- Every required input has a visible
<label>oraria-label/aria-labelledby. - Required fields are marked in text—not color alone.
- Invalid fields set
aria-invalid="true"and reference error text viaaria-describedby. - On failed submit, a summary region (e.g.
role="alert"oraria-live="assertive") lists errors with links or focus moves to the first invalid field. - Primary submit stays enabled only when validation policy allows; disabled submit shows reason (
DET.APP.DISABLED_REASON).
Failing signals
- Placeholder text is the only label.
- Errors appear only in a toast with no field association.
- Multiple invalid fields with no summary heading on submit.
- Error text conveyed by border color only.
- Summary duplicates toast but fields lack
aria-describedby.
Before example
Before (failing example)
After example
After (passing example)
Evidence and remediation
- DOM: count inputs without labels; detect submit without
#form-errors-summaryor equivalent when ≥2aria-invalid. - Remediation: use
createFormController+Swzstep validation; add summary region at form top; wireDET.APP.DISABLED_REASONon gated submit. - ENT.APP.04 contract:
docs/design/enterprise-app/rules/ENT.APP.04.yaml. - Run
tools/website-ux-auditor/auditor-tests/invoke-det-ruleset-harness.sh --only-rule DET.FORM.LABEL_ERROR_SUMMARYwhen harness wired.
Related rules
DET.APP.DISABLED_REASON— explain why submit is disabled.DET.CTA.LABEL_NONEMPTY— submit button accessible name.DET.APP.MODAL_DISMISSAL_GUARD— unsaved changes on dismiss from governed forms.