0Pricing
HTML Academy · Lezione

L’attributo hidden

Alternare la visibilità di un elemento con l’attributo booleano hidden

L’attributo hidden è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.

Che cos'è hidden?

L'attributo hidden rende invisibile un elemento e lo rimuove dall'albero dell'accessibilità:

<p hidden>This paragraph is hidden.</p>
<!-- Equivalent to: display: none in CSS -->
<!-- The element is in the DOM but not rendered -->
<!-- Screen readers do not announce hidden elements -->

hidden è un attributo booleano

Gli attributi booleani sono presenti (true) o assenti (false): non richiedono alcun valore:

<!-- All of these are equivalent: -->
<div hidden>Content</div>
<div hidden="">Content</div>
<div hidden="hidden">Content</div>

<!-- Remove with JavaScript: -->
element.removeAttribute('hidden');

<!-- Or set: -->
element.setAttribute('hidden', '');

hidden, display:none e visibility:hidden a confronto

Tre modi per nascondere gli elementi:

/* hidden attribute = display:none */
/* Element is removed from flow, invisible to AT */

/* visibility: hidden */
/* Element occupies space but is invisible */
/* Still read by some screen readers */

/* opacity: 0 */
/* Element occupies space, invisible, still interactive */
/* Still read by screen readers */

/* Hidden attribute is the simplest for fully hiding content */

Alternare la visibilità con JavaScript

Controlli la visibilità aggiungendo o rimuovendo l'attributo hidden:

const modal = document.getElementById('modal');

// Show:
modal.removeAttribute('hidden');
// or:
modal.hidden = false;

// Hide:
modal.setAttribute('hidden', '');
// or:
modal.hidden = true;

// Toggle:
modal.toggleAttribute('hidden');

CSS può sovrascrivere hidden

display in CSS può sovrascrivere l'attributo hidden: presti attenzione:

/* This makes hidden elements visible again: */
[hidden] {
  display: block !important;
}

/* Do not do this unless you have a very specific reason */

/* The hidden attribute should be trusted as the source of truth for visibility */

hidden e aria-hidden a confronto

Due diversi tipi di nascondimento:

  • hidden — nascosto visivamente E rimosso dall'albero dell'accessibilità
  • aria-hidden="true" — nascosto solo dall'albero dell'accessibilità, ma ancora visualizzato
<!-- hidden: nothing sees it -->
<div hidden>Completely hidden</div>

<!-- aria-hidden: visual users see it, screen readers skip it -->
<span aria-hidden="true">★★★★☆</span>
<span class="sr-only">4 out of 5 stars</span>

Schema Mostra/Nascondi

Il classico meccanismo per mostrare e nascondere con hidden:

<button
  aria-expanded="false"
  aria-controls="menu"
  id="menu-btn"
>Menu</button>

<ul id="menu" hidden>
  <li><a href="/">Home</a></li>
  <li><a href="/about">About</a></li>
</ul>

<script>
document.getElementById('menu-btn').addEventListener('click', function() {
  const menu = document.getElementById('menu');
  const expanded = this.getAttribute('aria-expanded') === 'true';
  menu.hidden = expanded;
  this.setAttribute('aria-expanded', !expanded);
});
</script>

Valore until-found (nuovo)

HTML 5.1+ ha introdotto hidden="until-found" per i contenuti ricercabili ma compressi:

<details>
  <summary>Read More</summary>
  <div hidden="until-found" id="more-content">
    <p>This content is collapsed but findable by Ctrl+F.</p>
  </div>
</details>
<!-- hidden="until-found" hides visually but allows browser Ctrl+F to find and reveal it -->
<!-- Only supported in Chromium-based browsers currently -->

Comportamento con i lettori di schermo

L'attributo hidden nasconde completamente il contenuto alle tecnologie assistive:

  • I lettori di schermo ignorano gli elementi nascosti
  • Il focus tramite Tab non entra negli elementi nascosti
  • È corretto per finestre modali, menu fuori canvas e pannelli condizionali che non devono essere attraversati quando sono nascosti

Casi d'uso comuni

Quando usare l'attributo hidden:

  • Finestre di dialogo modali prima dell'apertura
  • Contenuti dei pannelli a schede (mostri il pannello della scheda attiva e nasconda gli altri)
  • Procedure guidate a passaggi (mostri il passaggio corrente)
  • Visualizzazione progressiva (riveli ulteriori informazioni al clic)
  • Stati di caricamento (sostituisca l'indicatore di caricamento con il contenuto)

Mantenere lo stato di visibilità

Usi localStorage per ricordare lo stato di visibilità tra i caricamenti della pagina:

const panel = document.getElementById('info-panel');
const key = 'info-panel-visible';

// Restore state:
if (localStorage.getItem(key) === 'false') {
  panel.hidden = true;
}

// On toggle:
document.getElementById('toggle-btn').addEventListener('click', () => {
  panel.hidden = !panel.hidden;
  localStorage.setItem(key, !panel.hidden);
});

Verifica rapida

Qual è la differenza tra l'attributo hidden e aria-hidden?

Riepilogo: attributo hidden

Elementi essenziali dell'attributo hidden:

  • hidden — equivalente a display: none
  • Booleano: presenza = nascosto, assenza = visibile
  • Rimosso dall'albero dell'accessibilità (a differenza di visibility: hidden)
  • Alterni il valore con element.hidden = true/false
  • aria-hidden="true" nasconde solo alle tecnologie assistive, mantenendo la visualizzazione

Domande Frequenti

La lezione «L’attributo hidden» è gratuita?

Sì — il testo completo di «L’attributo hidden» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.

Cosa imparerò in «L’attributo hidden»?

Alternare la visibilità di un elemento con l’attributo booleano hidden Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare HTML Academy?

Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «L’attributo hidden»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione HTML Academy?

Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. id, class, style e title
  2. L’attributo hidden
  3. tabindex e accesskey
  4. Attributi data personalizzati: data-*
← Torna a HTML Academy