Breaking changes are split across two major versions to minimize disruption:
Internal validators not used by consumers. No deprecation cycle needed.
Touch tracking, change tracking, screen reader system. Deprecation warnings first.
All consuming apps use external validation (VeeValidate, Vuelidate, TanStack Form) via the errors and invalid props.
| Item | Type |
|---|---|
validators | Option |
asyncValidators | Option |
validationDebounceMs | Option |
validatorErrors | Ref |
checkValidity() | Method |
cancelValidation() | Method |
waitForValidation() | Method |
| Item | Type |
|---|---|
checkValidity() | Method |
waitForValidation() | Method |
lib/composables/formField/validation.tstest/.../validation.test.tsConsumers may be using these features. Deprecation warnings must ship before removal.
touched reftouchCount reftouch() methodresetTouches() methodUse your form library's touch tracking:
meta.touched$dirtyfield.state.meta.isToucheddirty refUse your form library's dirty tracking:
meta.dirty$dirtyfield.state.meta.isDirtyscreenReaderAnnouncement refannounceToScreenReaders() methodScreenReaderAnnouncement componentUse role="alert" on error containers:
<span v-if="errors.length" role="alert">
{{ errors[0] }}
</span>
| Item | Migration |
|---|---|
committed ref |
Not needed with external validation |
errorsCleared ref |
Not needed with external validation |
form ref |
Access form context directly if needed |
convertValue() |
Use your own type conversion |
Ship in current version. Dev-mode console warnings for all features being removed in v3.0.0.
[shared-components] useTouch is deprecated and will be removed in v3.0.0...
role="alert" to error containersvalidators prop usage in platform-frontend
checkValidity() calls
touched/touch() usage
dirty ref usage
role="alert" works with screen readers
| File | Change |
|---|---|
lib/composables/formField/validation.ts |
Delete |
lib/composables/formField/index.ts |
Modify |
lib/types/formFields.ts |
Modify |
test/.../validation.test.ts |
Delete |
| File | Change |
|---|---|
lib/composables/touch/index.ts |
Delete |
lib/composables/formField/index.ts |
Simplify |
lib/composables/form/index.ts |
Simplify |
lib/components/ScreenReaderAnnouncement.vue |
Delete |
Field components |
Add role="alert" |
Last updated: 2026-10-20