The following guidance is for content creators to ensure compliance accessibility compliance
If a user enters any form data in to a form, this data must not be asked for again within the same session. Previously entered data must be either auto-populated or available for the user to select.
Information previously entered by or provided to the user that is required to be entered again in the same process is either:
Except when:
Further information on Redundant Entry from w3.org
A cognitive function test (such as remembering a password or solving a puzzle) is not required for any step in an authentication process unless that step provides at least one of the following:
Another authentication method that does not rely on a cognitive function test.
A mechanism is available to assist the user in completing the cognitive function test.
The cognitive function test is to recognize objects.
The cognitive function test is to identify non-text content the user provided to the Web site.
Understanding Accessible Authentication (Enhanced)
A cognitive function test (such as remembering a password or solving a puzzle) is not required for any step in an authentication process unless that step provides at least one of the following:
Another authentication method that does not rely on a cognitive function test.
A mechanism is available to assist the user in completing the cognitive function test.
Further information on Accessible Authentication from w3.org
{% extends '@uol-form' %}
<div class="uol-form__container uol-form-container--centered ">
<div class="uol-form__inner-wrapper">
<h2 class="uol-form__title">Form components with form error</h2>
<div class="uol-form__lead">
<p>This is an optional lead sentence. Quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues.</p>
</div>
<div class="uol-rich-text">
<div class="uol-form__additional-content uol-form__additional-content--before">
<p>Lead links <a href="/">may be used to offer a user alternative pages</a></p>
<p>Lead links <a href="/">may be used to offer a user alternative options</a></p>
</div>
</div>
<div id="someRandomID" class="uol-form__form-error" aria-label="Error" role="alert" aria-live="polite" tabindex="-1" data-form-error="true">
<div class="uol-form__form-error__text">There has been a problem with form submission</div>
</div>
<form class="uol-form" action="/example-form-action">
<div class="uol-form__input-group uol-form__input-group--block">
</div>
<div class="uol-form--button-block">
<div class="uol-form__inputs-wrapper">
<div class="uol-form__input-container
uol-form__input-container--small">
<label class="uol-form__input-label" for="selectID1" id="selectID1-label">
<span class="uol-form__input-label__text">Select input (required)</span>
<span class="uol-form__input-label__hint" id="selectID1-hint">Select hint </span>
</label>
<div class="uol-form__input-wrapper " data-field-invalid=false>
<select class="uol-form__input uol-form__input--select " name="select1" id="selectID1" aria-label="Select Select input" required>
<option value="">Select an option</option>
<option value="optionValue1">Option 1</option>
<option value="optionValue2">Option 2</option>
<option value="optionValue3">Option 3</option>
<option value="optionValue4">Option 4</option>
</select>
<svg class="uol-form__input__chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" focusable="false" aria-hidden="true">
<path fill="none" d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" />
</svg>
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--large">
<label class="uol-form__input-label" for="tInputMdLg">
<span class="uol-form__input-label__text">Text input large (required)</span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--text
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--text" type="text" id="tInputMdLg" name="tInputLg" value="" autocomplete="off" required>
<!-- -->
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--medium">
<label class="uol-form__input-label" for="tInputMdId">
<span class="uol-form__input-label__text">Text input medium (required)</span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--text
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--text" type="text" id="tInputMdId" name="tInputMd" value="" autocomplete="off" required>
<!-- -->
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--small">
<label class="uol-form__input-label" for="tInputSmId">
<span class="uol-form__input-label__text">Text input small (required)</span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--text
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--text" type="text" id="tInputSmId" name="tInputSm" value="" autocomplete="off" required>
<!-- -->
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--x-small">
<label class="uol-form__input-label" for="tInputXsId">
<span class="uol-form__input-label__text">Text input x-small (required)</span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--text
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--text" type="text" id="tInputXsId" name="tInputXs" value="" autocomplete="off" required>
<!-- -->
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--small">
<label class="uol-form__input-label" for="telId">
<span class="uol-form__input-label__text">Telephone input (required)</span>
<span class="uol-form__input-label__hint">Telephone input hint </span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--tel
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--tel" type="tel" id="telId" name="telName" value="" pattern="[0-9]*" autocomplete="tel" required>
<!-- -->
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--medium">
<label class="uol-form__input-label" for="urlId">
<span class="uol-form__input-label__text">URL input (required)</span>
<span class="uol-form__input-label__hint">For example, https://www.example.com </span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--url
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--url" type="url" id="urlId" name="urlName" value="" inputmode="url" autocomplete="url" required>
<!-- -->
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--medium">
<label class="uol-form__input-label" for="timeId">
<span class="uol-form__input-label__text">Select a time (required)</span>
<span class="uol-form__input-label__hint">Time hint </span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--time
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--time" type="time" id="timeId" name="timeName" value="" autocomplete="off" required>
<!-- -->
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--medium">
<label class="uol-form__input-label" for="emailId">
<span class="uol-form__input-label__text">Email address (required)</span>
<span class="uol-form__input-label__hint">Email hint </span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--email
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--email" type="email" id="emailId" name="emailName" value="" inputmode="email" autocomplete="email" required>
<!-- -->
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--x-small uol-form__input-container--multiple">
<div class="uol-form__input__group-wrapper">
<div role="group" aria-labelledby="dobLabelID dobLabelID-hint" class="uol-form__custom-fieldset">
<h3 id="dobLabelID" class="uol-form__custom__legend">Inputs inline (required)</h3>
<span class="uol-form__input-label__hint" id="dobLabelID-hint">For example, 28 04 2022 </span>
<div class="uol-form__input--inline-wrapper">
<div class="uol-form__input--inline-field-wrapper" data-field-invalid=false>
<label class="uol-form__input-label" for="dobDay">Day</label>
<input class="uol-form__input uol-form__input--inline-field" inputmode="numeric" name="dayName" id="dobDay" type="text" pattern="[0-9]{2}" autocomplete="bday-day" maxlength="2" required value="">
</div>
<div class="uol-form__input--inline-field-wrapper" data-field-invalid=false>
<label class="uol-form__input-label" for="dobMonth">Month</label>
<input class="uol-form__input uol-form__input--inline-field" inputmode="numeric" name="monthName" id="dobMonth" type="text" pattern="[0-9]{2}" autocomplete="bday-month" maxlength="2" required value="">
</div>
<div class="uol-form__input--inline-field-wrapper" data-field-invalid=false>
<label class="uol-form__input-label" for="dobYear">Year</label>
<input class="uol-form__input uol-form__input--inline-field" inputmode="numeric" name="yearName" id="dobYear" type="text" pattern="[0-9]{4}" autocomplete="bday-year" maxlength="4" required value="">
</div>
</div>
</div>
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--medium">
<label class="uol-form__input-label" for="pWordId">
<span class="uol-form__input-label__text">Password input (required)</span>
<span class="uol-form__input__requirements" aria-hidden="true">
<span>Must be at least 8 characters </span>
<span>Must contain at least 1 uppercase letter </span>
</span>
<span class="hide-accessible">
Must be at least 8 characters, Must contain at least 1 uppercase letter,
</span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--password
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--password" type="password" id="pWordId" name="pWord" value="" pattern="^(?=.*?[A-Z]).{8,}$" autocomplete="new-password" required>
<button type="button" class="uol-form__input--password-toggle" aria-controls="pWordId" data-password-visible="false" hidden></button>
<!-- -->
</div>
</div>
<div class="uol-form__input-container
">
<div role="group" aria-labelledby="cBoxes1 cBoxes1-hint" class="uol-form__custom-fieldset" data-checkboxes-required="2">
<span id="cBoxes1" class="uol-form__custom__legend">Checkboxes</span>
<span class="uol-form__input-label__hint" id="cBoxes1-hint">Select all that apply </span>
<div class="uol-form__input--checkbox-wrapper">
<input class="uol-form__input--checkbox" type="checkbox" id="cboxOne" name="cboxName" value="">
<label class="uol-form__input--checkbox-label" for="cboxOne" id="cboxOne-label">Option 1</label>
<span class="uol-form__input--checkbox-custom">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="38" height="38" focusable="false" aria-hidden="true">
<path fill="#000" fill-rule="nonzero" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path>
</svg>
</span>
</div>
<div class="uol-form__input--checkbox-wrapper">
<input class="uol-form__input--checkbox" type="checkbox" id="cboxTwo" name="cboxName" value="">
<label class="uol-form__input--checkbox-label" for="cboxTwo" id="cboxTwo-label">Option 2</label>
<span class="uol-form__input--checkbox-custom">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="38" height="38" focusable="false" aria-hidden="true">
<path fill="#000" fill-rule="nonzero" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path>
</svg>
</span>
</div>
<div class="uol-form__input--checkbox-wrapper">
<input class="uol-form__input--checkbox" type="checkbox" id="cboxThree" name="cboxName" value="">
<label class="uol-form__input--checkbox-label" for="cboxThree" id="cboxThree-label">Option 3 displaying example with a really really really long title</label>
<span class="uol-form__input--checkbox-custom">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="38" height="38" focusable="false" aria-hidden="true">
<path fill="#000" fill-rule="nonzero" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path>
</svg>
</span>
</div>
<div class="uol-form__input--checkbox-wrapper">
<input class="uol-form__input--checkbox" type="checkbox" id="cboxFour" name="cboxName" value="">
<label class="uol-form__input--checkbox-label" for="cboxFour" id="cboxFour-label">Option 4</label>
<span class="uol-form__input--checkbox-custom">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="38" height="38" focusable="false" aria-hidden="true">
<path fill="#000" fill-rule="nonzero" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path>
</svg>
</span>
</div>
<div class="uol-form__input--checkbox-wrapper">
<input class="uol-form__input--checkbox" type="checkbox" id="cboxFive" name="cboxName" value="">
<label class="uol-form__input--checkbox-label" for="cboxFive" id="cboxFive-label">Option 5</label>
<span class="uol-form__input--checkbox-custom">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="38" height="38" focusable="false" aria-hidden="true">
<path fill="#000" fill-rule="nonzero" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path>
</svg>
</span>
</div>
<div class="uol-form__input--checkbox-wrapper">
<input class="uol-form__input--checkbox" type="checkbox" id="cboxSix" name="cboxName" value="">
<label class="uol-form__input--checkbox-label" for="cboxSix" id="cboxSix-label">Option 6</label>
<span class="uol-form__input--checkbox-custom">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="38" height="38" focusable="false" aria-hidden="true">
<path fill="#000" fill-rule="nonzero" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path>
</svg>
</span>
</div>
</div>
</div>
<div class="uol-form__input-container
">
<div role="radiogroup" aria-labelledby="rGroupId1 rGroupId1-hint" class="uol-form__custom-fieldset" aria-required="true">
<span id="rGroupId1" class="uol-form__custom__legend">Radios (required)</span>
<span class="uol-form__input-label__hint" id="rGroupId1-hint">Select one option. </span>
<div class="uol-form__inputs-wrapper ">
<div class="uol-form__input--radio-wrapper">
<input class="uol-form__input--radio" type="radio" id="rOne" name="rName" value="rOption1" checked>
<label class="uol-form__input--radio__label" for="rOne">Option 1</label>
<span class="uol-form__input--custom-radio" hidden>
<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" aria-hidden="true" focusable="false">
<circle cx="12" cy="12" r="12" />
</svg>
</span>
</div>
<div class="uol-form__input--radio-wrapper">
<input class="uol-form__input--radio" type="radio" id="rTwo" name="rName" value="rOption2">
<label class="uol-form__input--radio__label" for="rTwo">Option 2</label>
<span class="uol-form__input--custom-radio" hidden>
<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" aria-hidden="true" focusable="false">
<circle cx="12" cy="12" r="12" />
</svg>
</span>
</div>
<div class="uol-form__input--radio-wrapper">
<input class="uol-form__input--radio" type="radio" id="rThree" name="rName" value="rOption3">
<label class="uol-form__input--radio__label" for="rThree">Option 3 displaying example with a really really really long title</label>
<span class="uol-form__input--custom-radio" hidden>
<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" aria-hidden="true" focusable="false">
<circle cx="12" cy="12" r="12" />
</svg>
</span>
</div>
<div class="uol-form__input--radio-wrapper">
<input class="uol-form__input--radio" type="radio" id="rFour" name="rName" value="rOption4">
<label class="uol-form__input--radio__label" for="rFour">Option 4</label>
<span class="uol-form__input--custom-radio" hidden>
<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" aria-hidden="true" focusable="false">
<circle cx="12" cy="12" r="12" />
</svg>
</span>
</div>
<div class="uol-form__input--radio-wrapper">
<input class="uol-form__input--radio" type="radio" id="rFive" name="rName" value="rOption5">
<label class="uol-form__input--radio__label" for="rFive">Option 5</label>
<span class="uol-form__input--custom-radio" hidden>
<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" aria-hidden="true" focusable="false">
<circle cx="12" cy="12" r="12" />
</svg>
</span>
</div>
<div class="uol-form__input--radio-wrapper">
<input class="uol-form__input--radio" type="radio" id="rSix" name="rName" value="rOption6">
<label class="uol-form__input--radio__label" for="rSix">Option 6</label>
<span class="uol-form__input--custom-radio" hidden>
<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" aria-hidden="true" focusable="false">
<circle cx="12" cy="12" r="12" />
</svg>
</span>
</div>
</div>
</div>
</div>
<div class="uol-form__input-container
">
<label class="uol-form__input-label uol-form__input--teaxtarea-label" for="tAreaLg" id="tAreaLg-label">
<span class="uol-form__input-label__text">Event description - large (required)</span>
<span class="uol-form__input-label__hint">Write a short summary about your event </span>
</label>
<div class="uol-form__input--textarea-wrapper" data-field-invalid=false>
<textarea class="uol-form__input uol-form__input--textarea" id="tAreaLg" name="tarea3" data-character-input="true" required data-textarea-height="large" data-maxlength="300"></textarea>
</div>
</div>
<div class="uol-form__input-container
">
<label class="uol-form__input-label uol-form__input--teaxtarea-label" for="tAreaMd" id="tAreaMd-label">
<span class="uol-form__input-label__text">Event description - medium (required)</span>
<span class="uol-form__input-label__hint">Write a short summary about your event </span>
</label>
<div class="uol-form__input--textarea-wrapper" data-field-invalid=false>
<textarea class="uol-form__input uol-form__input--textarea" id="tAreaMd" name="tArea2" data-character-input="true" required data-textarea-height="medium" data-maxlength="200" data-char-limit="true" aria-labelledby="tAreaMd-label tAreaMd-char-count"></textarea>
</div>
<p class="uol-form__input--character-count" id="tAreaMd-char-count">200 character limit</p>
</div>
<div class="uol-form__input-container
">
<label class="uol-form__input-label uol-form__input--teaxtarea-label" for="tAreaSm" id="tAreaSm-label">
<span class="uol-form__input-label__text">Event description - small (required)</span>
<span class="uol-form__input-label__hint">Write a short summary about your event </span>
</label>
<div class="uol-form__input--textarea-wrapper" data-field-invalid=false>
<textarea class="uol-form__input uol-form__input--textarea" id="tAreaSm" name="tArea1" data-character-input="true" required data-textarea-height="small" data-maxlength="100" data-char-limit="true" aria-labelledby="tAreaSm-label tAreaSm-char-count"></textarea>
</div>
<p class="uol-form__input--character-count" id="tAreaSm-char-count">100 character limit</p>
</div>
<div class="uol-form__input-container
">
<fieldset class="uol-form__input--fieldset">
<legend class="uol-form__input--legend">
<h3 class="uol-form__input--legend-title">Fieldset</h3>
<span class="uol-form__input--legend-subtitle">Fieldset legend</span>
</legend>
<div class="uol-form__input-container
uol-form__input-container--small">
<label class="uol-form__input-label" for="textgroupedId1">
<span class="uol-form__input-label__text">Text input grouped</span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--text
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--text" type="text" id="textgroupedId1" name="textgrouped1" value="" autocomplete="off">
<!-- -->
</div>
</div>
<div class="uol-form__input-container
uol-form__input-container--small">
<label class="uol-form__input-label" for="textgroupedId2">
<span class="uol-form__input-label__text">Text input grouped</span>
<span class="uol-form__input-label__hint">Some hint </span>
</label>
<div class="uol-form__input-wrapper
uol-form__input-wrapper--text
" data-field-invalid=false>
<!-- -->
<input class="uol-form__input uol-form__input--text" type="text" id="textgroupedId2" name="textgrouped2" value="" autocomplete="off">
<!-- -->
</div>
</div>
</fieldset>
</div>
<div class="uol-form__input-container
">
<span class="uol-rich-text uol-form__input--checkbox-link">
<a href="/">Terms and conditions</a>
</span>
<div class="uol-form__input--checkbox-wrapper">
<input class="uol-form__input--checkbox" type="checkbox" id="cboxConfirm" name="cboxConfirmName" value="" required>
<label class="uol-form__input--checkbox-label" for="cboxConfirm" id="cboxConfirm-label">I agree to the terms and conditions</label>
<span class="uol-form__input--checkbox-custom">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="38" height="38" focusable="false" aria-hidden="true">
<path fill="#000" fill-rule="nonzero" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path>
</svg>
</span>
</div>
</div>
</div>
<div class="uol-form__button-wrapper">
<button class="uol-button uol-button--primary
" type="submit">Submit</button>
</div>
</div>
</form>
</div>
</div>
{
"form": {
"heading_level": "h2",
"form_centered": true,
"action": "/example-form-action",
"title": "Form components with form error",
"lead": "This is an optional lead sentence. Quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues.",
"additional_info_before": "<p>Lead links <a href=\"/\">may be used to offer a user alternative pages</a></p><p>Lead links <a href=\"/\">may be used to offer a user alternative options</a></p>",
"button": {
"style": "primary",
"type": "submit",
"content": "Submit"
},
"fields": [
{
"type": "select",
"label": "Select input",
"hint": "Select hint",
"name": "select1",
"id": "selectID1",
"required": true,
"invalid": false,
"input_width": "small",
"options": [
{
"id": "option1",
"value": "optionValue1",
"label": "Option 1"
},
{
"id": "option2",
"value": "optionValue2",
"label": "Option 2"
},
{
"id": "option3",
"value": "optionValue3",
"label": "Option 3"
},
{
"id": "option4",
"value": "optionValue4",
"label": "Option 4"
}
]
},
{
"type": "text",
"label": "Text input large",
"name": "tInputLg",
"id": "tInputMdLg",
"required": true,
"invalid": false,
"input_width": "large"
},
{
"type": "text",
"label": "Text input medium",
"name": "tInputMd",
"id": "tInputMdId",
"required": true,
"invalid": false,
"input_width": "medium"
},
{
"type": "text",
"label": "Text input small",
"name": "tInputSm",
"id": "tInputSmId",
"required": true,
"invalid": false,
"input_width": "small"
},
{
"type": "text",
"label": "Text input x-small",
"name": "tInputXs",
"id": "tInputXsId",
"required": true,
"invalid": false,
"input_width": "x-small"
},
{
"type": "tel",
"id": "telId",
"name": "telName",
"label": "Telephone input",
"hint": "Telephone input hint",
"invalid": false,
"required": true,
"pattern": "[0-9]*",
"input_width": "small",
"autocomplete": "tel"
},
{
"type": "url",
"id": "urlId",
"name": "urlName",
"inputmode": "url",
"label": "URL input",
"hint": "For example, https://www.example.com",
"invalid": false,
"required": true,
"input_width": "medium",
"autocomplete": "url"
},
{
"type": "time",
"id": "timeId",
"name": "timeName",
"label": "Select a time",
"hint": "Time hint",
"invalid": false,
"required": true,
"input_width": "medium"
},
{
"type": "email",
"id": "emailId",
"name": "emailName",
"label": "Email address",
"inputmode": "email",
"hint": "Email hint",
"invalid": false,
"required": true,
"input_width": "medium",
"autocomplete": "email"
},
{
"type": "inputs-inline",
"required": true,
"invalid": false,
"legend": "Inputs inline",
"heading_level": "h3",
"group_label_id": "dobLabelID",
"hint": "For example, 28 04 2022",
"input_width": "x-small",
"options": [
{
"id": "dobDay",
"name": "dayName",
"inputmode": "numeric",
"label": "Day",
"minValue": 1,
"maxValue": 31,
"maxlength": 2,
"pattern": "[0-9]{2}",
"autocomplete": "bday-day",
"required": true
},
{
"id": "dobMonth",
"name": "monthName",
"inputmode": "numeric",
"label": "Month",
"minValue": 1,
"maxValue": 12,
"maxlength": 2,
"pattern": "[0-9]{2}",
"invalid": false,
"autocomplete": "bday-month",
"required": true
},
{
"id": "dobYear",
"name": "yearName",
"inputmode": "numeric",
"label": "Year",
"minValue": 1900,
"maxValue": 2021,
"maxlength": 4,
"pattern": "[0-9]{4}",
"autocomplete": "bday-year",
"required": true
}
]
},
{
"type": "password",
"id": "pWordId",
"name": "pWord",
"label": "Password input",
"pattern": "^(?=.*?[A-Z]).{8,}$",
"requirements": [
{
"item": "Must be at least 8 characters"
},
{
"item": "Must contain at least 1 uppercase letter"
}
],
"invalid": false,
"required": true,
"input_width": "medium",
"autocomplete": "new-password"
},
{
"type": "checkbox",
"invalid": false,
"heading_level": "h3",
"legend": "Checkboxes",
"num_required": 2,
"hint": "Select all that apply",
"group_label_id": "cBoxes1",
"options": [
{
"id": "cboxOne",
"name": "cboxName",
"value": "cboxVal1",
"label": "Option 1"
},
{
"id": "cboxTwo",
"name": "cboxName",
"value": "cboxVal2",
"label": "Option 2"
},
{
"id": "cboxThree",
"name": "cboxName",
"value": "cboxVal3",
"label": "Option 3 displaying example with a really really really long title"
},
{
"id": "cboxFour",
"name": "cboxName",
"value": "cboxVal4",
"label": "Option 4"
},
{
"id": "cboxFive",
"name": "cboxName",
"value": "cboxVal5",
"label": "Option 5"
},
{
"id": "cboxSix",
"name": "cboxName",
"value": "cboxVal6",
"label": "Option 6"
}
]
},
{
"type": "radio",
"heading_level": "h3",
"legend": "Radios",
"hint": "Select one option.",
"required": true,
"invalid": false,
"group_label_id": "rGroupId1",
"options": [
{
"id": "rOne",
"name": "rName",
"value": "rOption1",
"label": "Option 1"
},
{
"id": "rTwo",
"name": "rName",
"value": "rOption2",
"label": "Option 2"
},
{
"id": "rThree",
"name": "rName",
"value": "rOption3",
"label": "Option 3 displaying example with a really really really long title"
},
{
"id": "rFour",
"name": "rName",
"value": "rOption4",
"label": "Option 4"
},
{
"id": "rFive",
"name": "rName",
"value": "rOption5",
"label": "Option 5"
},
{
"id": "rSix",
"name": "rName",
"value": "rOption6",
"label": "Option 6"
}
]
},
{
"type": "textarea",
"id": "tAreaLg",
"name": "tarea3",
"label": "Event description - large",
"hint": "Write a short summary about your event",
"invalid": false,
"required": true,
"maxlength": 300
},
{
"type": "textarea",
"id": "tAreaMd",
"name": "tArea2",
"label": "Event description - medium",
"hint": "Write a short summary about your event",
"invalid": false,
"required": true,
"char_count": true,
"maxlength": 200
},
{
"type": "textarea",
"id": "tAreaSm",
"name": "tArea1",
"label": "Event description - small",
"hint": "Write a short summary about your event",
"invalid": false,
"required": true,
"char_count": true,
"maxlength": 100
},
{
"type": "fieldset",
"fieldset": {
"title": "Fieldset",
"sub_title": "Fieldset legend",
"fields": [
{
"type": "text",
"id": "textgroupedId1",
"name": "textgrouped1",
"label": "Text input grouped",
"invalid": false,
"input_width": "small"
},
{
"type": "text",
"id": "textgroupedId2",
"name": "textgrouped2",
"hint": "Some hint",
"label": "Text input grouped",
"invalid": false,
"input_width": "small"
}
]
}
},
{
"type": "checkbox",
"checkbox_link": {
"text": "Terms and conditions",
"url": "/"
},
"options": [
{
"id": "cboxConfirm",
"name": "cboxConfirmName",
"value": "cboxConfirmVal",
"label": "I agree to the terms and conditions",
"required": true,
"invalid": false
}
]
}
],
"form_error": "There has been a problem with form submission",
"form_error_id": "someRandomID"
}
}