Elementi e stili per la creazione di input accessibili e responsivi.
Esempi di campi di input
Per il corretto funzionamento degli elementi di tipo <input> è di fondamentale importanza l’utilizzo uno degli appositi attributi type (ad esempio, email per l’inserimento di indirizzi email o number per informazioni numeriche), in modo da sfruttare i controlli nativi dei browser più recenti come la verifica dell’email, l’utilizzo di metodo di input numerico ed altro.
Per l’inserimento guidato di campi di tipo numerico si può anche utilizzare l’elemento dedicato che fornisce migliorie per la validazione e per l’esperienza complessiva, descritto alla pagina dedicata all’input numerico.
Breaking feature dalla versione 2.2.0
Quando si utilizza l’attributo placeholder o l’input parte già valorizzato assicurarsi di aggiungere alla label la classe active per impedire la sovrapposizione della label al campo.
Utilizzo di placeholder e label
Si può includere un’etichetta che si riposiziona automaticamente quando l’utente utilizza il campo di testo.
Si può abbinare all’etichetta un placeholder (testo di esempio) per ulteriore chiarezza.
In caso di necessità, è anche possibile utilizzare un ulteriore contenuto testuale sotto il campo di testo, aggiungendo un elemento <small> con classe .form-text all’interno di .form-group.
Associazione del testo di aiuto con gli elementi del modulo form
Il testo di aiuto deve essere esplicitamente associato agli elementi del modulo form a cui si riferisce utilizzando l’attributo aria-describedby. Ciò garantirà che le tecnologie assistive, come gli screenreader, leggano questo testo di aiuto quando l’utente avrà il focus sull’elemento.
Ulteriore testo informativo
Input con icona o pulsanti
Input password
Per rendere più semplice l’inserimento della password, l’elemento è stato dotato di un visualizzatore dei caratteri digitati. Inoltre è possibile abbinare un controllo per segnalare quanto la password che si sta inserendo sia sicura con l’aggiunta dell’HTML necessario.
È possibile personalizzare la componente strength meter usando gli attributi data.
Attributo data
Descrizione
Default
data-bs-minimum-length
Lunghezza minima per il calcolo della forza della password (soglia password molto debole)
4
È possibile personalizzare i testi dei messaggi riguardanti la robustezza della password usando gli attributi data dell’elemento small.form-text.
Attributo data
Descrizione
Default
data-bs-short-pass
Testo per il punteggio di forza della password minimo
Password molto debole
data-bs-bad-pass
Testo per punteggio di forza della password basso
Password debole
data-bs-good-pass
Testo per punteggio di forza della password buono
Password sicura
data-bs-strong-pass
Testo per il punteggio di forza della password massimo
Password molto sicura
Inserisci almeno 8 caratteri e una lettera maiuscola
Inserisci almeno 8 caratteri e una lettera maiuscola
Lunghezza minima per il calcolo della forza della password (soglia password molto debole)
4
Disabilitato
Aggiungi l’attributo disabled ad un input per impedire la modifica del valore contenuto e non inviare i dati in esso contenuti.
Readonly
Aggiungi l’attributo readonly ad un input per impedire la modifica del valore contenuto.
Readonly normalizzato
Se per qualche motivo vuoi avere gli elementi <input readonly> nella forma stilizzata come testo normale usa la classe .form-control-plaintext anziché .form-control.
Ricerca con autocompletamento
Per ottenere un input con un risultato ricerca o un autocomplete statico è necessario aggiungere all’input la classe .autocomplete e l’attributo data-bs-autocomplete contenente un JSON da filtrare.
L’icona della lente è contenuta in uno <span> con classe .autocomplete-icon, nascosta agli screen reader dall’attributo aria-hidden="true".
Accessibilità
La descrizione accessibile del campo è ottenuta con una label nascosta visivamente dalla classe .visually-hidden.
L’elenco dei risultati generati dalla ricerca è una lista <ul> con classe .autocomplete-list, mentre i singoli risultati sono contenuti negli elementi <li> della lista e si compongono di:
Avatar o Icona: nel caso in cui non sia presente un’icona adeguata,
utilizzare come icona di default #it-file per indicare una pagina generica.
Testo: elemento <span> contenuto in .autocomplete-list-text
Label: elemento <em> contenuto nel testo
Il testo corrispondente alla ricerca (“ite”, nell’esempio) deve essere racchiuso in un tag <mark>.
Per ottenere una versione grande dell’Autocomplete, indicata ad esempio per intestazioni di pagina ed overlay dedicati, aggiungere la classe .autocomplete-wrapper-big al contenitore .form-group.
Questo autocompletamento è collegato, tramite l’attributo data-bs-autocomplete, ad una lista di oggetti nella quale sono presenti:
nel campo text i nomi di tutte le regioni italiane
nel campo link un link associato a ciascuna di esse
Questi sono i minimi dati necessari per il corretto funzionamento dell’autocomplete.
Cerca una regione italiana per verificarne il comportamento.
Questo Autocomplete è collegato, sempre tramite l’attributo data-bs-autocomplete, ad una lista di oggetti nella quale sono presenti:
nel campo text i nomi di alcune nazioni
nel campo link un link associato a ciascuna di esse
nel campo icon l’icona identificativa del risultato trovato
nel campo label la label aggiuntiva
Cerca ad esempio “Italia” per verificarne il comportamento.
Attivazione tramite JavaScript
È possibile creare un’istanza con il constructor, ad esempio:
varinputElement=document.getElementById('autocomplete-test')varinputSearch=newbootstrap.InputSearch(inputElement,{autocomplete:'[{"text":"Abruzzo","link":"#"},{"text":"Basilicata","link":"#"},{"text":"Calabria","link":"#"},{"text":"Campania","link":"#"},{"text":"Emilia Romagna","link":"#"},{"text":"Friuli Venezia Giulia","link":"#"},{"text":"Lazio","link":"#"},{"text":"Liguria","link":"#"},{"text":"Lombardia","link":"#"},{"text":"Marche","link":"#"},{"text":"Molise","link":"#"},{"text":"Piemonte","link":"#"},{"text":"Puglia","link":"#"},{"text":"Sardegna","link":"#"},{"text":"Sicilia","link":"#"},{"text":"Toscana","link":"#"},{"text":"Trentino Alto Adige","link":"#"},{"text":"Umbria","link":"#"},{"text":"Valle d’Aosta","link":"#"},{"text":"Veneto","link":"#"}]',})
Area di testo
Per permettere agli utenti di inserire un testo esteso (ad esempio per lasciare commenti o informazioni), è bene utilizzare un elemento di tipo <textarea> ridimensionabile.
Includendo l’elemento all’interno di un .form-group, la label assumerà lo stesso comportamento dinamico dei campi di input.
Dimensione
È possibile modificare la dimensione dell’elemento utilizzando le classi .form-control-lg e .form-control-sm, che modificano la grandezza del carattere e la spaziatura interna.