<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Html5 - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Impara a programmare gratuitamente! Tutorial di programmazione su Python, JavaScript, Linux e molto altro. ]]>
        </description>
        <link>https://www.freecodecamp.org/italian/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Html5 - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/italian/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Thu, 07 May 2026 08:46:53 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/italian/news/tag/html5/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Come creare e convalidare dei moduli web con l'HTML5 ]]>
                </title>
                <description>
                    <![CDATA[ I moduli HTML sono costituiti da un corpo di caselle di testo, pulsanti, menu a tendina e altri widget di selezione. Gli sviluppatori web usano questi elementi per ricevere le informazioni degli utenti di un sito. Se hai mai fatto una ricerca su Google, ti sei iscritto o loggato su ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/come-creare-e-convalidare-dei-moduli-web-con-lhtml5/</link>
                <guid isPermaLink="false">630ceaab1c3e7e073e092fc8</guid>
                
                    <category>
                        <![CDATA[ Html5 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Dario Di Cillo ]]>
                </dc:creator>
                <pubDate>Wed, 21 Sep 2022 05:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/08/Web-Forms-2.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/create-and-validate-modern-web-forms-html5/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Create and Validate Modern Web Forms with HTML5</a>
      </p><p>I moduli HTML sono costituiti da un corpo di caselle di testo, pulsanti, menu a tendina e altri widget di selezione. Gli sviluppatori web usano questi elementi per ricevere le informazioni degli utenti di un sito.</p><p>Se hai mai fatto una ricerca su Google, ti sei iscritto o loggato su un sito web, effettuato un pagamento o risposto a un questionario, allora hai interagito con un modulo web.</p><p>Costruendo un sito web, devi assicurarti che la tua applicazione sia accessibile a tutti gli utenti. Ciò comprende anche chi necessita di tecnologie assistive come i lettori di schermo per navigare su un sito web.</p><p>L'HTML5 ha degli elementi semantici per moduli ottimi per questo scopo. E i benefici vanno oltre l'accessibilità:</p><ol><li>Facilitano lo sviluppo, dato che sono dotati di funzionalità libere e sono generalmente semplici da capire.</li><li>Si adattano ai dispositivi mobili — l'HTML semantico è più semplice per un design responsivo su schermi di dimensioni diverse e genera file più leggeri del codice non semantico.</li><li>Sono ottimi per la SEO — la tua pagina web avrà delle possibilità più alte di essere trovata dai clienti perché il motore di ricerca favorisce le parole chiave all'interno di intestazioni, link e via dicendo, rispetto a quelle in elementi non semantici come <code>&lt;div&gt;</code> ecc.</li></ol><p>In questo articolo, discuteremo gli elementi e gli attributi HTML5 più recenti, che puoi usare per costruire e convalidare il modulo semplice ma moderno che puoi vedere qui:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2022/08/HTML5Form.png" class="kg-image" alt="HTML5Form" width="600" height="400" loading="lazy"></figure><p>Puoi utilizzare il codice sorgente <a href="https://codepen.io/ophyboamah/pen/wvmMagP">qui</a>.</p><h1 id="come-usare-i-nuovi-elementi-per-moduli-html5"><strong>Come usare i nuovi elementi per moduli HTML5</strong></h1><p>Negli anni, i moduli web hanno attraversato svariati cambiamenti fino all'arrivo dell'HTML5.</p><p>Con l'introduzione dei nuovi e migliorati elementi HTML5 con i loro attributi, chiunque può imparare a realizzare moduli belli, funzionali e accessibili.</p><p>Gli elementi per moduli sono molto numerosi, ma adesso parleremo di quelli più essenziali.</p><h2 id="struttura-del-modulo-come-usare-i-tag-fieldset-legend-e-label"><strong>Struttura del modulo – Come usare i tag fieldset, legend e label</strong></h2><p>Puoi usare il tag <code>&lt;fieldset&gt;</code> per raggruppare elementi correlati (controlli ed etichette) in un modulo web creando un riquadro intorno a loro. Di solito contiene elementi come <code>legend</code>, <code>label</code> e <code>input</code>.</p><p>Puoi usare il tag <code>&lt;legend&gt;</code> per definire didascalie per elementi <code>fieldset</code>. In questo modo, può essere usato anche per raggruppare vari elementi. Mentre il tag <code>&lt;label&gt;</code> fornisce definizioni per diversi elementi.</p><p>Dovresti sempre collegare l'elemento <code>label</code> all'elemento <code>input</code> perché:</p><ol><li>L'utente può selezionare l'<code>input</code> cliccando sul <code>label</code></li><li>Quando l'<code>input</code> è selezionato, i lettori di schermo leggono il <code>label</code> per aiutare gli utenti ipovedenti.</li><li>Per le caselle di spunta (checkbox), soprattutto su mobile, gli utenti che non sono in grado di cliccare facilmente su elementi piccoli, possono cliccare sul <code>label</code> per selezionare la casella di spunta.</li></ol><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;fieldset class="first-section"&gt;
      &lt;legend&gt;Contact Details&lt;/legend&gt;
      &lt;label for="name"&gt;Name&lt;/label&gt;
      &lt;input type="text" id="name" name="name" autofocus placeholder="Ophy Boamah" autocomplete="on" required&gt; &lt;br&gt;&lt;br&gt;
      &lt;label for="email"&gt;Email&lt;/label&gt;
      &lt;input type="email" id="email" placeholder="ob2@hotmail.com"&gt; &lt;br&gt;&lt;br&gt;
      &lt;label for="tel"&gt;Phone&lt;/label&gt;
      &lt;input type="tel" id="tel" placeholder="+233 200001212"&gt; &lt;br&gt;&lt;br&gt;
&lt;/fieldset&gt;

</code></pre><figcaption>Esempi di codice con tag fieldset, legend e label</figcaption></figure><p>Nel codice qui sopra, stiamo usando l'elemento <code>fieldset</code> per creare un gruppo iniziale chiamato "first-section". L'elemento <code>legend</code> contiene del testo con una descrizione per gli elementi del gruppo. Infine, il <code>label</code> identifica ogni <code>input</code> e il suo scopo.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/08/Fieldset-2.png" class="kg-image" alt="Fieldset-2" width="600" height="400" loading="lazy"><figcaption>Elementi fieldset, legend e label</figcaption></figure><h2 id="come-usare-il-testo-segnaposto"><strong>Come usare il testo segnaposto</strong></h2><p>All'interno dei campi di input è possibile usare del testo segnaposto che viene rimosso soltanto quando il campo viene selezionato o riempito.</p><p>Di solito, il testo segnaposto è di colore più chiaro rispetto a quello dei valori dei label di input. Il loro utilizzo principale è quello di dare ulteriori informazioni circa la compilazione del modulo. Ecco un esempio:</p><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;input type="email" id="email" placeholder="ob2@hotmail.com"&gt;
</code></pre><figcaption>Codice di esempio segnaposto email</figcaption></figure><p>L'attributo <code>type="email"</code> assicura che l'<code>input</code> non accetti altri valori che non siano email. L'attributo <code>id</code> collega l'elemento <code>input</code> al suo <code>label</code> per permettere l'associazione e il selezionamento. "ob2@hotmail.com" dà all'utente un suggerimento sul tipo di valore di input atteso.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/08/Placeholder.png" class="kg-image" alt="Placeholder" width="600" height="400" loading="lazy"><figcaption>Segnaposto email</figcaption></figure><h2 id="come-usare-focus"><strong>Come usare focus</strong></h2><p>Inizialmente, gli utenti dovevano cliccare nella prima casella di input per iniziare a compilare un modulo. Ma l'HTML5 permette agli sviluppatori web di evidenziare l'<code>input</code> con cui gli utenti dovrebbero interagire inizialmente.</p><p><code>autofocus</code> è un attributo che puoi aggiungere in un elemento <code>input</code> o <code>textarea</code> con questo scopo. È anche un'importante caratteristica di accessibilità perché semplifica la vita alle persone che usano i lettori di schermo, per esempio.</p><p>Ecco un esempio dell'uso di <code>autofocus</code>:</p><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;input autofocus type="text" id="name" name="name" placeholder="Ophy Boamah" required&gt;
</code></pre><figcaption>Codice di esempio autofocus</figcaption></figure><p>Come hai visto nel codice qui sopra, puoi aggiungere l'attributo <code>autofocus</code> in qualsiasi tag <code>input</code>. Spesso è seguito o circondato da altri attributi generici come <code>name</code>, <code>id</code> e via dicendo.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/08/Focus.png" class="kg-image" alt="Focus" width="600" height="400" loading="lazy"><figcaption>Input autofocus</figcaption></figure><h1 id="come-usare-i-nuovi-input-html5"><strong>Come usare i nuovi input HTML5</strong></h1><p>Credo si possa affermare che l'<code>input</code> è l'elemento più comune in un modulo web. In realtà, tutto ciò che è in un modulo è un input perché richiede una qualche forma di dato dagli utenti. Il suo utilizzo principale è per ricevere testo, numeri, email e altro.</p><p>I vari elementi sono differenziati usando il valore dell'attributo <code>type</code> nell'<code>input</code>.</p><h2 id="come-usare-search"><strong>Come usare search</strong></h2><p>Puoi usare il valore <code>search</code> per consentire agli utenti di inserire delle query quando hanno bisogno di cercare qualcosa. È molto simile a un input di testo.</p><p>La caratteristica principale che li differenzia è nello stile, dato che accedere agli <code>input</code> usando <code>input[type=search]</code> risulta molto comodo in confronto a dare una classe a un input di testo.</p><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;input type="search" id="email" placeholder="ob2@hotmail.com"&gt;
</code></pre><figcaption>Codice di esempio search</figcaption></figure><p>Su alcuni browser come Chrome, dopo aver iniziato a scrivere, un'icona "x" compare alla fine del campo di input. Cliccare su questa icona cancella i valori digitati nell'input. Lo stesso risultato si ottiene con il tasto esc.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/08/search-1.png" class="kg-image" alt="search-1" width="600" height="400" loading="lazy"><figcaption>Search input</figcaption></figure><h2 id="come-usare-hidden"><strong>Come usare hidden</strong></h2><p>Gli sviluppatori web usano il valore <code>hidden</code> per nascondere il contenuto di un <code>input</code> e far sì che sia inaccessibile a un utente che interagisce con il modulo. Questo tipo di <code>input</code> non viene renderizzato visivamente. Il suo contenuto non viene visto dall'utente ma viene mandato al server una volta che il modulo viene inviato.</p><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;input type="hidden" id="indexNumber" name="indexNumber" value="00202010"&gt;</code></pre><figcaption>Codice di esempio hidden</figcaption></figure><h2 id="come-usare-l-elemento-progress"><strong>Come usare l'elemento progress</strong></h2><p>Questo è un elemento che puoi usare per indicare il progresso di un'attività. L'attributo <code>max</code> viene usato per indicare il valore totale della barra di progresso. L'attributo <code>value</code> mostra essenzialmente la percentuale dell'attività che è stata completata colorando la barra di quella quantità. L'attributo <code>id</code>, come sempre, è usato come collegamento al <code>label</code>.</p><figure class="kg-card kg-code-card"><pre><code class="language-html"> &lt;label for="days"&gt;Proficiency:&lt;/label&gt;
&lt;progress id="days" value="27" max="100"&gt; 27% &lt;/progress&gt; 
</code></pre><figcaption>Progress bar code example</figcaption></figure><p>A differenza degli <code>input</code> con <code>type="range"</code>, l'elemento <code>progress</code> non consente agli utenti di apportare cambiamenti, poiché di "sola lettura".</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/08/progress.png" class="kg-image" alt="Progress bar" width="600" height="400" loading="lazy"><figcaption>Progress bar</figcaption></figure><h2 id="come-usare-l-elemento-datalist"><strong>Come usare l'elemento datalist</strong></h2><p>L'elemento <code>datalist</code> specifica una lista di opzioni predefinite per un elemento. È usato spesso per offrire funzionalità di completamento automatico per una lista di elementi. Questo perché una volta che inizi a scrivere, puoi avere una preview della lista di opzioni disponibili.</p><p>Come mostrato qui sotto, per collegare un tag <code>input</code> con un <code>datalist</code>, devi assicurarti che il valore dell'attributo <code>list</code> sia lo stesso dell'<code>id</code> di <code>datalist</code>.</p><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;label for="gender"&gt;Gender ??&lt;/label&gt;
      &lt;input list="genders" name="gender" id="gender"&gt;
      &lt;datalist id="genders"&gt;
        &lt;option value="female"&gt;
        &lt;option value="male"&gt;
        &lt;option value="other"&gt;
      &lt;/datalist&gt;
</code></pre><figcaption>Codice di esempio datalist</figcaption></figure><p>Questo <code>input</code> è renderizzato in modo diverso sui vari browser:</p><p><strong><strong>Chrome</strong></strong>: quando passi con il cursore sull'<code>input</code>, un'icona a tendina compare alla fine dell'<code>input</code>. Quando clicchi all'interno dell'<code>input</code> o sul <code>label</code>, i valori delle varie opzioni vengono mostrati nella tendina.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2022/08/Datalist-Chrome.png" class="kg-image" alt="Datalist-Chrome" width="600" height="400" loading="lazy"></figure><p><strong><strong>Firefox</strong></strong>: per vedere i valori delle opzioni, l'utente deve inserire una parte del testo e le opzioni saranno mostrate in una sorta di completamento automatico.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2022/08/datalist.png" class="kg-image" alt="datalist" width="600" height="400" loading="lazy"><figcaption>datalist</figcaption></figure><h1 id="cosa-vuol-dire-convalidare-un-modulo"><strong>Cosa vuol dire convalidare un modulo?</strong></h1><p>Realizzare il modulo è il primo step in questo processo. Come sviluppatore, devi sempre assicurarti che gli utenti stiano fornendo risposte accurate. Ciò è necessario perché non puoi assumere che gli utenti facciano sempre la cosa corretta.</p><p>Questo è il concetto di convalida di un modulo – evitare errori o individuarli non appena si verificano.</p><h2 id="tipi-di-validazione"><strong>Tipi di validazione</strong></h2><p>Esistono due tipi comuni di validare un modulo web: client-side e server-side.</p><h3 id="validazione-lato-client"><strong>Validazione lato client </strong></h3><p>La validazione lato client (client-side) è la parte del processo con lo scopo di evitare errori. Comprende strategie come fare determinati controlli nel browser prima di inviare il modulo.</p><p>I metodi della validazione lato client includono l'aggiunta di popup di errore e far sì che l'utente non possa procedere finché non immette l'informazione corretta nel modulo.</p><h3 id="validazione-lato-server"><strong>Validazione lato server</strong></h3><p>La validazione lato server (server-side) è la parte del processo coinvolta nell'individuazione di errori.</p><p>A differenza della validazione lato client, non verifica la presenza di errori quando l'utente è ancora sul modulo. Invece, effettua i controlli quando i dati sono già stati inviati al server.</p><p>In questo caso, una pagina di errore viene mostrata come feedback per indicare la presenza di errori.</p><h1 id="metodi-popolari-di-validazione-lato-client"><strong>Metodi popolari di validazione lato client</strong></h1><h2 id="validazione-base-lato-client"><strong>Validazione base lato client </strong></h2><p>Alcuni esempi di validazione lato client di base includono "Questo campo è obbligatorio", "Inserisci un indirizzo email valido" e "La password deve avere almeno 8 caratteri".</p><p>Questi sono solo alcuni dei molti messaggi di errore generati quando un utente non inserisce i dati nel formato richiesto.</p><p>Gli attributi di questo tipo usati più comunemente sono:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2022/08/Name-validation.png" class="kg-image" alt="Name-validation" width="600" height="400" loading="lazy"></figure><ol><li><strong><strong>Required</strong></strong>: specifica i campi di input che devono essere riempiti prima di poter inviare il modulo.</li><li><strong><strong>Minlength </strong></strong>e<strong> <strong>Maxlength</strong></strong>: specificano la lunghezza minima e massima attesa per una stringa.</li><li><strong><strong>Min </strong></strong>e <strong><strong>Max</strong></strong>: specificano il valore minimo e massimo per un numero.</li></ol><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2022/08/Email-Validation.png" class="kg-image" alt="Email-Validation" width="600" height="400" loading="lazy"></figure><p>4.<strong><strong> &nbsp;Type</strong></strong>: specifica che tipo di dato è richiesto per specifici campi di input, ad esempio, date, number, name, email e così via.</p><h2 id="constraint-validation-api"><strong>Constraint Validation API</strong></h2><p>Come suggerisce il nome, l'API di convalida dei vincoli (constraint validation API) è un API che offre funzionalità di validazione per i moduli web. Puoi usare le sue nuove proprietà e metodi per modificare la validità di un input in un modulo.</p><p>Gli sviluppatori adesso possono usufruire facilmente di funzionalità e messaggi di errore personalizzati. In pratica, questa API permette di individuare gli errori e di mostrare un messaggio personalizzato a seconda del tipo di errore.</p><p>Puoi creare una convalida e messaggi di errore in modo personalizzato con il metodo <code>setCustomValidity</code>, così come con la proprietà <code>validationMessage</code>.</p><h2 id="altri-attributi-utili-da-conoscere"><strong>Altri attributi utili da conoscere</strong></h2><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Attributo</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td>autocomplete</td>
<td>Puoi usare autocomplete per richiamare valori digitati di recente in un input. Tranne che dati sensibili e PIN temporanei, è una funzionalità salvatempo.</td>
</tr>
<tr>
<td>autocorrect</td>
<td>Usa questo attributo per la correzione automatica e per impostare l'iniziale maiuscola su dispositivi mobili (la versione di Safari eseguita su iPad e iPhone).</td>
</tr>
<tr>
<td>spellcheck</td>
<td>Puoi impostare questo attributo su true per indicare che l'utente dovrebbe controllare l'ortografia di un testo, soprattutto di stringhe digitate in un input. L'unico problema è che non tutto il testo digitato in un input è costituito da parole "reali".</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><h1 id="riassumendo"><strong>Riassumendo</strong></h1><p>Ed ecco il risultato dopo aver messo insieme i vari elementi che abbiamo imparato in questo articolo:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2022/08/WebForm.png" class="kg-image" alt="WebForm" width="600" height="400" loading="lazy"></figure><p>E questo è il codice:</p><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
  &lt;title&gt;Bootcamp Registration&lt;/title&gt;
  &lt;link rel="preconnect" href="https://fonts.googleapis.com"&gt;
&lt;link rel="preconnect" href="https://fonts.googleapis.com"&gt;
&lt;link rel="preconnect" href="https://fonts.gstatic.com" crossorigin&gt;
&lt;link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&amp;display=swap" rel="stylesheet"&gt; 
&lt;/head&gt;
&lt;body&gt;
  &lt;div class="form"&gt;
    &lt;h1&gt;Bootcamp Registration Form&lt;/h1&gt;
  &lt;p&gt;Complete this form to express your interest in the upcoming web development bootcamp.&lt;/p&gt;
  &lt;form&gt;
&lt;!-- Contact Details --&gt;
    &lt;fieldset class="first-section"&gt;
      &lt;legend&gt;Contact Details&lt;/legend&gt;
      &lt;label for="name"&gt;Name&lt;/label&gt;
      &lt;input autofocus type="text" id="name" name="name" placeholder="Ophy Boamah" autocomplete="on" required&gt; &lt;br&gt;&lt;br&gt;
      &lt;label for="email"&gt;Email&lt;/label&gt;
      &lt;input type="email" id="email" placeholder="ob2@hotmail.com"&gt; &lt;br&gt;&lt;br&gt;
      &lt;label for="tel"&gt;Phone&lt;/label&gt;
      &lt;input type="tel" id="tel" placeholder="+233 200001212"&gt; &lt;br&gt;&lt;br&gt;
    &lt;/fieldset&gt;
    &lt;!-- Personal Information --&gt;
    &lt;fieldset class="second-section"&gt;
      &lt;legend&gt;Personal Information&lt;/legend&gt;
      &lt;label for="dob"&gt;Birth Date&lt;/label&gt;
      &lt;input type="date" id="dob"&gt; &lt;br&gt;&lt;br&gt;
        &lt;label for="gender"&gt;Gender ??&lt;/label&gt;
      &lt;input list="genders" name="gender" id="gender"&gt;
      &lt;datalist id="genders"&gt;
        &lt;option value="female"&gt;
        &lt;option value="male"&gt;
        &lt;option value="other"&gt;
      &lt;/datalist&gt;&lt;br&gt;&lt;br&gt;
     &lt;div class="proficiency"&gt;
        &lt;label for="profeciency"&gt;Proficiency&lt;/label&gt;
      &lt;input type="range" value="4" max="10" id="profeciency" name="profeciency"&gt;
     &lt;/div&gt;

    &lt;/fieldset&gt;
     &lt;!-- Preferred Language --&gt;
     &lt;div class="terms"&gt;
        &lt;input type="checkbox" id="scales" name="scales" class="checkbox"&gt;
      &lt;label for="scales"&gt;I have read and agree to the terms and conditions&lt;/label&gt;
     &lt;/div&gt;
    &lt;button&gt;Submit&lt;/button&gt;
  &lt;/form&gt;
  &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre><figcaption>Codice HTML</figcaption></figure><figure class="kg-card kg-code-card"><pre><code class="language-css">* {
  font-family: 'Montserrat', sans-serif;
}

body {
  height: 80vh;
  margin-top: 5rem;
  background-image: url("https://images.unsplash.com/photo-1595675024853-0f3ec9098ac7?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxzZWFyY2h8Nnx8Y29kaW5nJTIwYm9vdGNhbXB8ZW58MHx8MHx8&amp;auto=format&amp;fit=crop&amp;w=500&amp;q=60");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  padding: 10px;
}

.form {
  background-color: #fff;
  border-radius: 5px;
  padding: 15px 25px;
  width: 80%;
  margin: 0 auto;
}

.checkbox {
  width: 20px !important;
}

.first-section input {
  width: 85%;
  height: 25px;
  margin-left: 5px;
}

.second-section input{
  width: 80%;
  height: 25px;
  margin-left: 5px;
}

.form h1, p {
  text-align: center;
}
button {
  border: none;
  color: white;
  background: #1560BD;
  padding: 8px 25px;
  border-radius: 5px;
  display: block;
  margin: 20px auto 10px auto;
  width: 120px;
}

.second-section {
  margin-top: 15px;
}

.proficiency {
  display: flex;
  align-items: center;
}

.terms {
  margin-top: 15px;
  display: flex;
  align-items: center;
}
</code></pre><figcaption>Codice CSS</figcaption></figure><h2 id="conclusione"><strong>Conclusione</strong></h2><p>I nuovi elementi e attributi per moduli HTML5 facilitano l'uso di funzionalità essenziali. Soprattutto quelle che altrimenti richiederebbero il CSS o svariate righe di JavaScript.</p><p>Adesso, creare un modulo web moderno e funzionale con l'HTML è più semplice che mai. E soprattutto, sapere di poter creare moduli che saranno uniformi su diversi browser, rende più tranquilla la vita degli sviluppatori web.</p><p>Grazie per aver letto questo articolo 👋🏾. Spero ti sia stato d'aiuto.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Gli elementi semantici HTML5 ]]>
                </title>
                <description>
                    <![CDATA[ Gli elementi HTML semantici sono quegli elementi che descrivono espressamente il loro significato. Elementi come <header>, <footer> e <article> sono considerati semantici perché descrivono precisamente lo scopo dell'elemento e il tipo di contenuto al loro interno. Cosa sono gli elementi semantici? L'HTML è stato originariamente creato come linguaggio di formattazione ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/gli-elementi-semantici-html5/</link>
                <guid isPermaLink="false">62b06cdcbf2a8706f90f32c8</guid>
                
                    <category>
                        <![CDATA[ Html5 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Dario Di Cillo ]]>
                </dc:creator>
                <pubDate>Thu, 30 Jun 2022 05:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/06/html5.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/semantic-html5-elements/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Semantic HTML5 Elements Explained</a>
      </p><p>Gli elementi HTML semantici sono quegli elementi che descrivono espressamente il loro significato.</p><p>Elementi come <code>&lt;header&gt;</code>, <code>&lt;footer&gt;</code> e <code>&lt;article&gt;</code> sono considerati semantici perché descrivono precisamente lo scopo dell'elemento e il tipo di contenuto al loro interno.</p><h3 id="cosa-sono-gli-elementi-semantici"><strong>Cosa sono gli elementi semantici<strong><strong>?</strong></strong></strong></h3><p>L'HTML è stato originariamente creato come linguaggio di formattazione per definire i documenti all'inizio dell'avvento di internet. Con la crescita di internet, è stato adottato da sempre più persone, creando la necessità di cambiamenti.</p><p>Inizialmente, internet era stato ideato per condividere materiale di carattere scientifico, mentre adesso le persone lo utilizzano per molti altri scopi e desiderano che i loro siti web abbiano un bell'aspetto.</p><p>Dato che il web non è stato strutturato per il design, i programmatori hanno utilizzato diversi trucchetti per agire sull'aspetto estetico in vari modi. Invece di utilizzare i tag <code>&lt;table&gt;&lt;/table&gt;</code> per descrivere delle informazioni tramite una tabella, i programmatori li usavano per disporre altri elementi sulla pagina. </p><p>Con il progredire del design del layout, i programmatori hanno iniziato a utilizzare tag generici "non semantici" come <code>&lt;div&gt;</code>, attribuendo loro attributi <code>class</code> o <code>id</code> per descriverne lo scopo. Ad esempio, scrivendo <code>&lt;div class="header"&gt;</code> invece di <code>&lt;header&gt;</code>.</p><p>Visto che l'HTML5 è relativamente nuovo, questo uso degli elementi non semantici è attualmente ancora molto comune.</p><h3 id="lista-dei-nuovi-elementi-semantici"><strong>Lista dei nuovi elementi semantici</strong></h3><p>Gli elementi semantici aggiunti in HTML5 sono:</p><ul><li><code>&lt;article&gt;</code></li><li><code>&lt;aside&gt;</code></li><li><code>&lt;details&gt;</code></li><li><code>&lt;figcaption&gt;</code></li><li><code>&lt;figure&gt;</code></li><li><code>&lt;footer&gt;</code></li><li><code>&lt;header&gt;</code></li><li><code>&lt;main&gt;</code></li><li><code>&lt;mark&gt;</code></li><li><code>&lt;nav&gt;</code></li><li><code>&lt;section&gt;</code></li><li><code>&lt;summary&gt;</code></li><li><code>&lt;time&gt;</code></li></ul><p>Elementi come <code>&lt;header&gt;</code>, <code>&lt;nav&gt;</code>, <code>&lt;section&gt;</code>, <code>&lt;article&gt;</code>, <code>&lt;aside&gt;</code> e <code>&lt;footer&gt;</code> agiscono più o meno come elementi <code>&lt;div&gt;</code>. Raggruppano in sezioni altri elementi all'interno della pagina. Però, mentre un <code>&lt;div&gt;</code> può contenere qualsiasi tipo di informazione, è semplice identificare il contenuto di un elemento semantico come <code>&lt;header&gt;</code>.</p><h2 id="perch-usare-elementi-semantici"><strong>Perché usare elementi semantici?</strong></h2><p>Analizziamo i vantaggi dell'uso degli elementi semantici osservando due blocchi di codice HTML. Il primo blocco contiene elementi HTML semantici:</p><pre><code class="language-text">&lt;header&gt;&lt;/header&gt;
&lt;section&gt;
	&lt;article&gt;
		&lt;figure&gt;
			&lt;img&gt;
			&lt;figcaption&gt;&lt;/figcaption&gt;
		&lt;/figure&gt;
	&lt;/article&gt;
&lt;/section&gt;
&lt;footer&gt;&lt;/footer&gt;</code></pre><p>Mentre il secondo utilizza elementi non semantici:</p><pre><code class="language-text">&lt;div id="header"&gt;&lt;/div&gt;
&lt;div class="section"&gt;
	&lt;div class="article"&gt;
		&lt;div class="figure"&gt;
			&lt;img&gt;
			&lt;div class="figcaption"&gt;&lt;/div&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
&lt;div id="footer"&gt;&lt;/div&gt;</code></pre><p>Il primo risulta molto più <strong>leggibile</strong>. Questa è la prima cosa che puoi notare guardando il blocco con gli elementi semantici. È un semplice esempio, ma come programmatore, potresti aver bisogno di leggere centinaia o migliaia di righe di codice e un codice più semplice da leggere e capire, semplifica notevolmente il lavoro.</p><p>Inoltre, è più<strong> accessibile</strong>. Non sei il solo a trovare gli elementi semantici più facili da comprendere, infatti, anche i motori di ricerca e le tecnologie assistive (come lettori di schermo per utenti ipovedenti) sono in grado di avere una migliore comprensione del contesto e del contenuto dei siti web, fornendo una migliore esperienza per gli utenti.</p><p>Nel complesso, gli elementi semantici portano a un codice più coerente. Un programmatore può realizzare un'intestazione con elementi non semantici con <code>&lt;div class="header"&gt;</code>, <code>&lt;div id="header"&gt;</code>, <code>&lt;div class="head"&gt;</code> o semplicemente con <code>&lt;div&gt;</code>. Ci sono moltissimi modi di creare un'intestazione e la scelta dipende fondamentalmente dalla preferenza personale del programmatore. Un elemento semantico standard, rende tutto più semplice.</p><p>Dall'ottobre 2014, l'HTML4 è stato aggiornato a HTML5 e adesso contiene alcuni nuovi elementi semantici. In molti sono confusi dal gran numero di elementi diversi che non sembrano mostrare cambiamenti consistenti.</p><h4 id="section-e-article"><strong><strong><strong><code>&lt;section&gt;</code> </strong></strong>e <strong><strong><code>&lt;article&gt;</code></strong></strong></strong></h4><p>"Qual è la differenza?", ti starai chiedendo. Entrambi questi elementi vengono usati per dividere del contenuto in sezioni e possono essere usati in modo intercambiabile, a seconda della situazione. L'HTML4 offriva soltanto un tipo di elemento contenitore, ovvero il <code>&lt;div&gt;</code>. Nonostante sia ancora utilizzato, l'HTML5 fornisce gli elementi <code>&lt;section&gt;</code> e <code>&lt;article&gt;</code> che possono essere usati per sostituire un <code>&lt;div&gt;</code>.</p><p>Gli elementi <code>&lt;section&gt;</code> e <code>&lt;article&gt;</code> sono concettualmente simili e intercambiabili. Per decidere quale dei due utilizzare, considera che:</p><ol><li>Un <code>&lt;article&gt;</code> è pensato per essere distribuibile indipendentemente o riutilizzabile.</li><li>Un <code>&lt;section&gt;</code> consiste in raggruppamento tematico di contenuto.</li></ol><pre><code class="language-html">&lt;section&gt;
  &lt;p&gt;Top Stories&lt;/p&gt;
  &lt;section&gt;
    &lt;p&gt;News&lt;/p&gt;
    &lt;article&gt;Story 1&lt;/article&gt;
    &lt;article&gt;Story 2&lt;/article&gt;
    &lt;article&gt;Story 3&lt;/article&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p&gt;Sport&lt;/p&gt;
    &lt;article&gt;Story 1&lt;/article&gt;
    &lt;article&gt;Story 2&lt;/article&gt;
    &lt;article&gt;Story 3&lt;/article&gt;
  &lt;/section&gt;
&lt;/section&gt;</code></pre><h4 id="header-e-hgroup"><strong><strong><strong><code>&lt;header&gt;</code> </strong></strong>e <strong><strong><code>&lt;hgroup&gt;</code></strong></strong></strong></h4><p>L'elemento <code>&lt;header&gt;</code> è generalmente situato nella parte superiore di un documento, di una sezione o di un articolo e, di solito, contiene l'intestazione principale e alcuni strumenti di navigazione e ricerca. </p><pre><code class="language-html">&lt;header&gt;
  &lt;h1&gt;Company A&lt;/h1&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href="/home"&gt;Home&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="/about"&gt;About&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="/contact"&gt;Contact us&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;form target="/search"&gt;
    &lt;input name="q" type="search" /&gt;
    &lt;input type="submit" /&gt;
  &lt;/form&gt;
&lt;/header&gt;</code></pre><p>L'elemento <code>&lt;hgroup&gt;</code> dovrebbe essere usato se vuoi avere un'intestazione principale con una o più sotto-intestazioni.</p><pre><code class="language-html">&lt;hgroup&gt;
  &lt;h1&gt;Heading 1&lt;/h1&gt;
  &lt;h2&gt;Subheading 1&lt;/h2&gt;
  &lt;h2&gt;Subheading 2&lt;/h2&gt;
&lt;/hgroup&gt;</code></pre><p>Ricorda che l'elemento <code>&lt;header&gt;</code> può avere qualsiasi contenuto, ma l'elemento &nbsp;<code>&lt;hgroup&gt;</code> può contenere soltanto altre intestazioni, cioè da <code>&lt;h1&gt;</code> a <code>&lt;h6&gt;</code>, <code>&lt;hgroup&gt;</code> incluso.</p><h4 id="aside"><strong><strong><strong><code>&lt;aside&gt;</code></strong></strong></strong></h4><p>L'elemento <code>&lt;aside&gt;</code> è pensato per del contenuto che non fa parte del flusso del testo in cui appare, ma vi è correlato in qualche modo. Pensa ad <code>&lt;aside&gt;</code> come a una barra laterale per il contenuto principale della pagina.</p><pre><code class="language-html">&lt;aside&gt;
  &lt;p&gt;This is a sidebar, for example a terminology definition or a short background to a historical figure.&lt;/p&gt;
&lt;/aside&gt;</code></pre><p>Prima dell'HTML5, i menu venivano creati con elementi <code>&lt;ul&gt;</code> e <code>&lt;li&gt;</code>. Adesso, insieme a questi, possiamo separare gli oggetti menu con un <code>&lt;nav&gt;</code>, per navigare tra le pagine. Puoi avere un qualsiasi numero di elementi <code>&lt;nav&gt;</code> all'interno di una pagina. Ad esempio, è comune avere una barra di navigazione globale nella parte superiore (in un <code>&lt;header&gt;</code>) e una barra laterale di navigazione locale (in un elemento <code>&lt;aside&gt;</code>).</p><pre><code class="language-html">&lt;nav&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href="/home"&gt;Home&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="/about"&gt;About&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="/contact"&gt;Contact us&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/nav&gt;</code></pre><h4 id="footer"><strong><strong><strong><code>&lt;footer&gt;</code></strong></strong></strong></h4><p>Se c'è un <code>&lt;header&gt;</code>, deve esserci anche un <code>&lt;footer&gt;</code>. Il <code>&lt;footer&gt;</code> si trova generalmente nella parte inferiore di un documento, una sezione o un articolo. Proprio come per <code>&lt;header&gt;</code>, di solito, &nbsp;il suo contenuto è costituito da meta-informazioni come dettagli sull'autore, informazioni legali e/o link a informazioni inerenti. È possibile anche aggiungere elementi <code>&lt;section&gt;</code> all'interno del <code>&lt;footer&gt;</code>.</p><pre><code class="language-html">&lt;footer&gt;&amp;copy;Company A&lt;/footer&gt;</code></pre><h4 id="small"><strong><strong><strong><code>&lt;small&gt;</code></strong></strong></strong></h4><p>L'elemento <code>&lt;small&gt;</code> appare spesso all'interno degli elementi <code>&lt;footer&gt;</code> o <code>&lt;aside&gt;</code> contenenti informazioni legati al copyright o note legali e altre postille. Comunque, non è pensato per rendere il testo più piccolo. Descrive soltanto il suo contenuto, senza influenzarne il layout.</p><pre><code class="language-html">&lt;footer&gt;&lt;small&gt;&amp;copy;Company A&lt;/small&gt; Date&lt;/footer&gt;</code></pre><h4 id="time"><strong><strong><strong><code>&lt;time&gt;</code></strong></strong></strong></h4><p>L'elemento <code>&lt;time&gt;</code> permette di inserire una data ISO 8601 non ambigua in una versione facilmente leggibile da una persona.</p><pre><code class="language-html">&lt;time datetime="2017-10-31T11:21:00+02:00"&gt;Tuesday, 31 October 2017&lt;/time&gt;</code></pre><p>Perché preoccuparsi di <code>&lt;time&gt;</code>? Mentre le persone possono leggere l'ora e risalire al valore corretto attraverso il contesto, i computer leggono le date in formato ISO 8601, risalendo alla data, all'ora e al fuso orario.</p><h4 id="figure-e-figcaption"><strong><strong><strong><code>&lt;figure&gt;</code> </strong></strong>e <strong><strong><code>&lt;figcaption&gt;</code></strong></strong></strong></h4><p>L'elemento <code>&lt;figure&gt;</code> viene usato per racchiudere immagini e <code>&lt;figcaption&gt;</code> per assegnar loro una didascalia.</p><pre><code class="language-html">&lt;figure&gt;
  &lt;img src="https://en.wikipedia.org/wiki/File:Shadow_of_Mordor_cover_art.jpg" alt="Shadow of Mordor" /&gt;
  &lt;figcaption&gt;Cover art for Middle-earth: Shadow of Mordor&lt;/figcaption&gt;
&lt;/figure&gt;</code></pre><h3 id="impara-di-pi-sui-nuovi-elementi-html5-"><strong>Impara di più sui nuovi elementi HTML5<strong><strong>:</strong></strong></strong></h3><ul><li><a href="https://www.w3schools.com/html/html5_semantic_elements.asp">w3schools</a> fornisce descrizioni chiare e semplici di molti dei nuovi elementi e di come dovrebbe essere usati.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element">MDN</a> è una risorsa di riferimento per tutti gli elementi HTML e approfondisce il loro utilizzo.</li></ul> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
