HTML5 ha un nuovo attributo globale hidden
, che può essere utilizzato per nascondere il contenuto.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSS ha la display:none
regola, che può essere utilizzata anche per nascondere i contenuti.
article { display:none; }
Visivamente, sono identici. Qual è la differenza semanticamente? Computazionalmente?
Quali linee guida dovrei considerare su quando utilizzare l'una o l'altra?
TIA.
EDIT : sulla base delle risposte di @ newtron (sotto), ho fatto più ricerche. L' hidden
attributo è stato fortemente contestato lo scorso anno e (apparentemente) a malapena è entrato nelle specifiche HTML5. Alcuni hanno sostenuto che fosse ridondante e non avesse alcuno scopo. Da quello che posso dire, la valutazione finale è questa: se mi rivolgo solo ai browser web, non c'è differenza. (Una pagina affermava addirittura che i browser web usassero display:none
l'attributo nascosto.) Ma se sto considerando l'accessibilità (ad esempio, forse mi aspetto che il mio contenuto venga letto da lettori di schermo), allora c'è una differenza. La regola CSS display:none
potrebbe nascondere i miei contenuti dai browser web, ma una regola aria corrispondente (ad es.aria-hidden="false"
) potrebbe provare a leggerlo. Quindi, ora sono d'accordo sul fatto che la risposta di @ newtron sia corretta, anche se forse (probabilmente) non è così chiara come vorrei. Grazie @newtron per il tuo aiuto.
hidden
attributo esistesse, ma sicuramente una buona domanda in quanto sembra violare la separazione struttura / presentazione.