---
title: "Important: The form partials mark rejected fields"
manual: "Academic Base"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-base:important-form-partials-mark-rejected-fields@main"
source: "Changelog/3.0/Important-FormPartialsMarkRejectedFields.rst"
rendered: "2026-10-17T08:47:46+00:00"
---

# Important: The form partials mark rejected fields {#important-form-partials-mark-rejected-fields}

## Description {#description}

The shared form partials below
`Resources/Private/Partials/Academic/Form/` read the validation results of
a field, but showed no message, and the class `is-invalid` sat on the element
around the field only.

A field that failed validation now gets `invalid` itself, in place of the
default class `f3-form-error` of the form field ViewHelpers, and the
attributes `aria-invalid="true"` and
`aria-describedby="<objectName>.<identifier>-error"`. `FieldWrapper.html`
renders the messages of the field right after it in the element of that id,
with the class `ace-field-errors`, each in an `ace-field-error`. The element
around the field carries `invalid` as well. The new partial
`ErrorMessage.html` looks each message up as the label
`create.<objectName>.<identifier>.error.<code>`,
then `create.error.<code>`, of the extension passed as `extensionName`, and
falls back to the message of the validator. All three get the arguments of the
error. The title of the required mark is the label `create.required` of that
extension, `required` when it has none.

`DateTime.html` shows a value it is given as `Y-m-d`, the only format a
date input accepts, instead of `d.m.Y`.

See [The form partials](https://docs.typo3.org/permalink/fgtclb/academic-base:templates-form@main).

## Impact {#impact}

An extension that renders its form through these partials ships the labels
`create.required` and `create.error.<code>` to get translated messages.
**academic_jobs** does. A project that overrides one of the partials
keeps its own output until it adopts the changes. TYPO3 v13 and v14 behave
alike here.
