| UI or UX | UI + UX - Controlling and dependent form fields | UI + UX - Single-choice dropdown control | UI + UX - Field-level validation feedback | UI + UX - Sectioned enterprise configuration form |
| UI guidance | Place the controlling field before the dependent field, label both clearly, and explain the dependency in helper text such as Choose a category first to see valid subcategories. | Render a persistent label, hint text, native closed value, finite option list, selected option, and validation state. | Render a labeled field with hint text, field-adjacent error text, invalid styling, preserved value, and corrected state. | Render one coherent form surface with a clear title, section navigation or section headings, current section state, grouped controls, persistent labels, helper text, required indicators, error summary, field-level errors, review or summary state, and one save contract. |
| UX guidance | Use dependent fields to prevent impossible combinations and guide users through valid answer pairs without forcing them to learn backend data rules. | Help users choose one value from a moderate known list without showing every option permanently. | Help users correct a specific field without losing or re-entering the value they already typed. | Use a complete complex form when users must edit many related product settings together and need to inspect dependencies across sections before saving. |
| Good UI | An incident form asks Category first, then Subcategory shows only options for that category and says why it was cleared after Category changed. | Persistent label, hint text, visible selected value, readable options, and clear required validation state. | Error text appears next to the field with readable spacing, persistent label, hint text, and the invalid value still visible. | A policy configuration form has Basics, Rules, Approvals, Notifications, and Review sections; Approvals shows an error because the threshold in Rules requires at least two approvers. |
| Bad UI | A Subcategory dropdown appears disabled at page load with no explanation of which Category unlocks it. | Placeholder as the only label. | Only a red border with no message. | A single grid shows Nm, Rule, Appr, Esc, Mail, JSON, Mode, and Owner fields with no labels, fieldsets, section status, or error ownership. |
| Good UX | A user chooses Hardware, selects Laptop, switches Category to Network, sees Laptop cleared, and chooses VPN from the new valid list before submitting. | Users can open, scan, choose one value, and review the selected value after close. | Validation appears after blur or submit when it helps correction. | A user raises a spend threshold, validates the form, is moved to the Approvals section, adds a second approver and escalation owner, reviews the complete policy, and saves without re-entering earlier values. |
| Bad UX | A user submits a record with Category Facilities and Subcategory VPN because the stale dependent value was hidden but not cleared. | Hiding two obvious critical choices in a dropdown. | Showing errors before users type. | A user clicks Save, sees three generic errors somewhere in the page, and must scan many controls to discover which section owns each problem. |
| Best fit | A downstream field's valid values or requirement depend on a previous answer. | The user chooses one option from a moderate known list. | A single field has a specific correctable problem. | A product configuration has many related fields across named sections. |
| Avoid when | The choices are independent and users need to compare them together. | The option set is short and comparison matters. | The main recovery task is finding several errors across a submitted page. | The form is a short related set of fields that fits a simple single-page form. |
| Required state | No controlling answer selected, with dependent field unavailable or empty and prerequisite helper text. | Closed state with empty option or current selected value. | Neutral field with label, hint, and no error. | Initial draft state with named sections, required-field convention, grouped controls, and save unavailable or clearly pending validation. |
| Accessibility burden | Keep controlling and dependent fields in logical DOM order and use labels, hints, and descriptions that name the relationship. | Prefer native semantics or implement equivalent name, role, state, and keyboard behavior. | Expose invalid state on the input and connect error text to the field description where possible. | Use semantic headings, fieldsets, legends, and persistent labels so each section and field group has a programmatic name. |
| Common misuse | Leaving a stale dependent value selected after the controlling field changes. | Custom select with no keyboard support or hidden selected state. | Showing field errors before users have interacted with the control. | Calling a dense settings table a complex form without section status, labels, or validation ownership. |