HTML5 tiene un nuevo atributo global hidden
, que se puede utilizar para ocultar contenido.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSS tiene la display:none
regla, que también se puede usar para ocultar contenido.
article { display:none; }
Visualmente, son idénticos. ¿Cuál es la diferencia semánticamente? Computacionalmente?
¿Qué pautas debo tener en cuenta sobre cuándo usar uno u otro?
TIA.
EDITAR : Basado en las respuestas de @ newtron (abajo), hice más búsquedas. El hidden
atributo fue muy disputado el año pasado y (aparentemente) apenas se incorporó a la especificación HTML5. Algunos argumentaron que era redundante y no tenía ningún propósito. Por lo que puedo decir, la evaluación final es la siguiente: si me dirijo solo a navegadores web, no hay diferencia. (Una página incluso afirmó que los navegadores web solían display:none
implementar el atributo oculto). Pero si estoy considerando la accesibilidad (por ejemplo, tal vez espero que los lectores de pantalla lean mi contenido), entonces hay una diferencia. La regla CSS display:none
puede ocultar mi contenido de los navegadores web, pero una regla aria correspondiente (p. Ej.,aria-hidden="false"
) podría intentar leerlo. Por lo tanto, ahora estoy de acuerdo en que la respuesta de @newtron es correcta, aunque quizás (posiblemente) no es tan clara como me gustaría. Gracias @newtron por tu ayuda.
fuente
hidden
existe el atributo, pero ciertamente es una buena pregunta ya que parece violar la separación de estructura / presentación.Respuestas:
La diferencia clave parece ser que los
hidden
elementos siempre están ocultos independientemente de la presentación:http://dev.w3.org/html5/spec/Overview.html#the-hidden-attribute
Dado que CSS puede apuntar a diferentes tipos de medios / presentaciones,
display: none
dependerá de una presentación determinada. Por ejemplo, algunos elementos pueden tenerdisplay: none
cuando se ven en un navegador de escritorio, pero no un navegador móvil. O estar oculto visualmente pero aún disponible para un lector de pantalla.fuente