<fieldset class="rtds-input-field rtds-gap-2" aria-invalid="true">
<legend class="rtds-input-field__label">
Radio fieldset
<abbr class="rtds-font-bold rtds-no-underline" title="obbligatorio">*</abbr>
</legend>
<div class="rtds-input rtds-input-field rtds-input-radio">
<div class="rtds-flex rtds-gap-2 rtds-items-center">
<input id="radioId0" name="radioFieldsetName" data-label="radioShortLabel" class=" " type="radio" aria-describedBy="radioErrorId idInputDescription">
<label class="rtds-input-radio__label" for="radioId0">
label radiobutton
</label>
</div>
</div>
<div class="rtds-input rtds-input-field rtds-input-radio">
<div class="rtds-flex rtds-gap-2 rtds-items-center">
<input id="radioId1" name="radioFieldsetName" data-label="radioShortLabel" class=" " type="radio" aria-describedBy="radioErrorId idInputDescription">
<label class="rtds-input-radio__label" for="radioId1">
label radiobutton
</label>
</div>
</div>
<div class="rtds-input rtds-input-field rtds-input-radio">
<div class="rtds-flex rtds-gap-2 rtds-items-center">
<input id="radioId2" name="radioFieldsetName" data-label="radioShortLabel" class=" " type="radio" aria-describedBy="radioErrorId idInputDescription">
<label class="rtds-input-radio__label" for="radioId2">
label radiobutton
</label>
</div>
</div>
<span class="rtds-input-field__hint">
<span class="rtds-input-field__error" id="radioErrorId" aria-live="assertive">
devi scegliere un'opzione per *nome campo*
</span>
<span class="rtds-input-field__description" id="idInputDescription">
descrizione
</span>
</span>
</fieldset>
<fieldset class="rtds-input-field rtds-gap-2{% if fieldsetClasses %} {{ fieldsetClasses }}{% endif %}"{% if fieldsetAriaInvalid %} aria-invalid="true"{% endif %}>
<legend class="rtds-input-field__label{% if legendClasses %} {{ legendClasses }}{% endif %}">
{{ legend }}
{% if fieldsetRequired %}
<abbr class="rtds-font-bold rtds-no-underline" title="obbligatorio">*</abbr>
{% endif %}
</legend>
{% for i in range(0, radioCount) %}
{% render '@input-radio', { name: fieldsetName, id: inputId ~ i, shortLabel: inputShortLabel, padding: inputPadding, border: inputBorder, radius: inputRadius, classes: inputClasses, checked: inputChecked, placeholder: inputPlaceholder, iconPlaceholder: inputIconPlaceholder, fieldRequired: inputRequired, ariaDescribedBy: inputAriaDescribedBy, errorId: inputErrorId, hasErrorControl: inputHasErrorControl, hasError: inputHasError, inFieldset: true }, true %}
{% endfor %}
{% if fieldsetRequired or inputAriaDescribedBy or inputHasErrorControl %}
<span class="rtds-input-field__hint">
{% if fieldsetRequired or inputHasErrorControl %}
<span class="rtds-input-field__error" id="{{ inputErrorId }}" aria-live="assertive">
{{ errorDescription }}
</span>
{% endif %}
{% if inputDescription %}
<span class="rtds-input-field__description" id="{{ inputAriaDescribedBy }}">
{{ inputDescription }}
</span>
{% endif %}
</span>
{% endif %}
</fieldset>
{
"legend": "Radio fieldset",
"radioCount": 3,
"inputId": "radioId",
"inputShortLabel": "radioShortLabel",
"fieldsetName": "radioFieldsetName",
"fieldsetRequired": true,
"errorDescription": "devi scegliere un'opzione per *nome campo*",
"inputHasErrorControl": true,
"fieldsetAriaInvalid": true,
"inputErrorId": "radioErrorId",
"inputAriaDescribedBy": "idInputDescription",
"inputDescription": "descrizione"
}
Gruppo di radio button raggruppati all’interno di un fieldset, utilizzato per raccogliere input multipli correlati tra loro dove è possibile selezionare una sola opzione.
Il componente utilizza un <fieldset> HTML con <legend> e un gruppo di radio button. Supporta vari stati e configurazioni per l’accessibilità e la validazione.
default: Configurazione base senza validazionerequired: Fieldset obbligatorio con controllo errorihas-error: Fieldset con errori di validazionehas-description: Fieldset con descrizione aggiuntivahas-error-and-description: Combina errori e descrizioneContesto di sviluppo Fractal/Nunjucks — Questa sezione riguarda esclusivamente i parametri del context
.config.ymlusati durante lo sviluppo nella libreria. Non descrive attributi HTML o proprietà da usare nei temi, CMS o ambienti di implementazione: per quello, fare riferimento alla sezione Esempi di utilizzo.
fieldsetClasses (stringa, opzionale): Classi CSS aggiuntive per il fieldsetfieldsetAriaInvalid (booleano, opzionale): Indica se il fieldset ha errori di validazionefieldsetRequired (booleano, opzionale): Indica se il fieldset è obbligatoriofieldsetName (stringa, obbligatorio): Nome del fieldset (condiviso tra tutti i radio button del gruppo)legend (stringa, obbligatorio): Testo della legenda del fieldsetlegendClasses (stringa, opzionale): Classi CSS aggiuntive per la legendaradioCount (numero, opzionale): Numero di radio button da generareinputId (stringa, obbligatorio): ID base per i radio button (verrà concatenato con un indice)inputShortLabel (stringa, opzionale): Etichetta breve per i radio buttoninputChecked (booleano, opzionale): Indica se i radio button sono selezionatiinputRequired (booleano, opzionale): Indica se i radio button sono obbligatoriinputAriaDescribedBy (stringa, opzionale): ID dell’elemento che descrive i radio buttoninputHasErrorControl (booleano, opzionale): Indica se i radio button hanno controllo erroriinputHasError (booleano, opzionale): Indica se i radio button hanno erroriinputErrorId (stringa, opzionale): ID dell’elemento di erroreinputDescription (stringa, opzionale): Descrizione testuale dei radio buttoninputPadding (stringa, opzionale): Padding dei radio buttoninputBorder (stringa, opzionale): Bordo dei radio buttoninputRadius (stringa, opzionale): Raggio del bordo dei radio buttoninputClasses (stringa, opzionale): Classi CSS aggiuntive per i radio buttonLivello AA — criteri pertinenti:
<fieldset> con <legend> raggruppa semanticamente i radio button correlati, dove è possibile selezionare una sola opzionearia-invalid sul <fieldset> e annunciati con aria-live="assertive"<label> associata; la <legend> descrive il gruppoaria-invalid comunica lo stato di errore del gruppo<fieldset> con <legend> come etichetta del gruppo di radio buttoninput-radio con la propria <label> associataname (corrispondente a fieldsetName) è condiviso tra tutti i radio button del gruppo per garantire la selezione singola<abbr title="obbligatorio">*</abbr> nella <legend><span class="rtds-input-field__hint"> al di fuori dei singoli radio button| Attributo | Valori | Condizione |
|---|---|---|
aria-invalid |
"true" |
presente sul <fieldset> quando fieldsetAriaInvalid è true |
aria-live |
"assertive" |
sullo span del messaggio di errore |
<fieldset> con il nome della <legend> e il numero di opzioni disponibiliaria-live="assertive"*) è leggibile tramite l’attributo title="obbligatorio" sull’<abbr><!-- Esempio base -->
<fieldset class="rtds-radio-fieldset">
<legend class="rtds-input-field__label">Scegli un'opzione</legend>
<div class="rtds-input rtds-input-radio">
<div class="rtds-flex rtds-gap-2 rtds-items-center">
<input id="radio1" name="my-group" type="radio">
<label class="rtds-input-radio__label" for="radio1">Opzione 1</label>
</div>
</div>
<div class="rtds-input rtds-input-radio">
<div class="rtds-flex rtds-gap-2 rtds-items-center">
<input id="radio2" name="my-group" type="radio">
<label class="rtds-input-radio__label" for="radio2">Opzione 2</label>
</div>
</div>
</fieldset>
<!-- Esempio con errore -->
<fieldset class="rtds-radio-fieldset" aria-invalid="true">
<legend class="rtds-input-field__label">
Scegli un'opzione <abbr title="obbligatorio">*</abbr>
</legend>
<div class="rtds-input rtds-input-radio">
<div class="rtds-flex rtds-gap-2 rtds-items-center">
<input id="radio1-err" name="my-group" type="radio" aria-describedby="radio-group-error">
<label class="rtds-input-radio__label" for="radio1-err">Opzione 1</label>
</div>
</div>
<span class="rtds-input-field__hint">
<span id="radio-group-error" aria-live="assertive" class="rtds-input-field__error">
Selezionare un'opzione
</span>
</span>
</fieldset>input-radio per generare i singoli radio buttonrtds-input-field__hintinputPlaceholder e inputIconPlaceholder sono presenti nel template ma non sono utilizzati nella configurazione di default