<div class="rtds-input rtds-input-field rtds-input-radio has-error">
<div class="rtds-flex rtds-gap-2 rtds-items-center">
<input id="radioId" name="" class=" " type="radio" aria-describedBy="radioErrorId" aria-invalid="true">
<label class="rtds-input-radio__label" for="radioId">
label radiobutton
</label>
</div>
<span class="rtds-input-field__hint">
<span class="rtds-input-field__error" id="radioIdError" aria-live="assertive">
il campo *nome campo* non può essere vuoto
</span>
</span>
</div>
<div class="rtds-input rtds-input-field rtds-input-radio{% block size %}{% endblock size %}{% if classes %} {{ classes }}{% endif %}{% if hasError %} has-error{% endif %}">
{% if errorId is not defined %}
{% set errorId = id ~ 'Error' %} {% endif %}
{%- if iconPlaceholder %}
{% render '@icon', {id: iconPlaceholder, classes: 'rtds-absolute rtds-left-4 rtds-content-placeholder', size: 'rtds-w-6 rtds-h-6'}, true %}
{% endif -%}
<div class="rtds-flex rtds-gap-2 rtds-items-center">
<input
id="{{ id }}"
name="{{ name }}"
{% if shortLabel %} data-label="{{ shortLabel }}"{% endif %}
class="{{ padding }} {{ radius }} {{ border }}{% if inputClasses %} {{ inputClasses }}{% endif %}"
type="radio"
{% if fieldRequired %} aria-required="true"{% endif %}
{% if ariaDescribedBy or hasErrorControl or fieldRequired %} aria-describedBy="
{%- if hasErrorControl or fieldRequired -%}
{{- errorId -}}
{%- if ariaDescribedBy %} {{ ariaDescribedBy -}}{%- endif -%}
{% elseif ariaDescribedBy -%}
{{- ariaDescribedBy -}}
{% endif %}"
{% endif %}
{% if ariaInvalid %} aria-invalid="true"{% endif %}
{% if checked %} checked{% endif %}
>
<label class="rtds-input-radio__label{% if labelClasses %} {{ labelClasses }}{% endif %}" for="{{ id }}">
{{ label | safe }}
{% if fieldRequired %}<abbr class="rtds-font-bold rtds-no-underline" title="obbligatorio">*</abbr>{% endif %}
{%- if iconAlert %}
{% render '@icon', {id: 'outline--exclamation-circle', classes: 'rtds-absolute rtds-right-4 rtds-content-placeholder rtds-content-error', size: 'rtds-w-6 rtds-h-6'}, true %}
{% endif -%}
</label>
</div>
{% if inFieldset == false %}
{% if fieldRequired or ariaDescribedBy or hasErrorControl %}
<span class="rtds-input-field__hint">
{% if fieldRequired or hasErrorControl %}
<span class="rtds-input-field__error" id="{{ id }}Error" aria-live="assertive">
{{ errorDescription }}
</span>
{% endif %}
{% if inputDescription %}
<span class="rtds-input-field__description" id="{{ ariaDescribedBy }}">
{{ inputDescription }}
</span>
{% endif %}
</span>
{% endif %}
{% endif %}
</div>
{
"label": "label radiobutton",
"id": "radioId",
"inFieldset": false,
"errorDescription": "il campo *nome campo* non può essere vuoto",
"hasErrorControl": true,
"ariaInvalid": true,
"hasError": true,
"errorId": "radioErrorId"
}
/**
* INPUT
*
*
*/
@layer components {
.rtds-input-radio input[type="radio"] {
@apply rtds-w-5 rtds-h-5 rtds-border-input rtds-rounded-full;
}
.rtds-input-radio__label {
@apply rtds-text-base rtds-font-medium;
}
/* SIZES */
.rtds-input--sm input[type="radio"] {
@apply rtds-w-4 rtds-h-4;
}
:where(.rtds-input--sm) .rtds-input-radio__label {
@apply rtds-text-sm;
}
.rtds-input--lg input[type="radio"] {
@apply rtds-w-6 rtds-h-6;
}
.has-error input[type="radio"]{
@apply rtds-border-error-dark rtds-border-2;
}
}
Componente per la gestione di input di tipo radio button con supporto per accessibilità, validazione e gestione degli errori.
Il componente supporta diverse varianti preconfigurate:
Il componente implementa diverse caratteristiche di accessibilità:
aria-required invece di required per una migliore accessibilitàaria-describedby per descrizioni del campoaria-invalid e aria-liveIl componente supporta la gestione degli errori attraverso:
Il componente genera un input di tipo radio con il seguente markup:
<div class="rtds-input rtds-input-field rtds-input-radio">
<div class="rtds-flex rtds-gap-2 rtds-items-center">
<input
id="[id]"
name="[name]"
data-label="[shortLabel]"
class="[padding] [radius] [border]"
type="radio"
aria-required="[true/false]"
aria-describedBy="[errorId] [ariaDescribedBy]"
aria-invalid="[true/false]"
checked="[true/false]"
>
<label class="rtds-input-radio__label" for="[id]">
[label]
<abbr title="obbligatorio">*</abbr>
</label>
</div>
<span class="rtds-input-field__hint">
<span class="rtds-input-field__error" id="[errorId]">
[errorDescription]
</span>
<span class="rtds-input-field__description" id="[ariaDescribedBy]">
[inputDescription]
</span>
</span>
</div>--sm e --lgConfigurazioni del componente per l’implementazione in template Nunjucks: