2010-09-29 18 views
38

No me mates por el momento, estoy pidiendo por pura curiosidad.¿Son inútiles los elementos HTML5 nuevos como <section> y <article>?

Elementos como <section>, <nav>, <article>, <aside> etc parecen completamente inútiles. Claro que hacen que todo tenga su propio pequeño lugar (y seo'd) ... pero es es posible sobreorganizar las cosas. Hay algunos casos en los que las cosas tampoco encajan en ninguna de las categorías. También aumenta el tiempo dedicado a tratar de codificar estas cosas. Simplemente no veo ningún propósito real para mover para agregar estos nuevos elementos.

¿Qué tenemos que ganar nosotros (desarrolladores y personas que ven las páginas web por igual) al agregarlas?

+3

+1 Es una buena pregunta. Algunas personas realmente no lo saben. – NotMe

+1

Relacionados: http://en.wikipedia.org/wiki/Semantic_web –

+0

el único sitio que encontré usarlos es getbootstrap.com – Omu

Respuesta

24

Estos elementos son importantes para cosas como lectores de pantalla para ciegos y lectores de libros electrónicos como Kindle. Les ayuda a saber qué mostrar/leer y cuándo.

+0

Además, son muy críticos para bots (también conocidos como motores de búsqueda) como google, Yahoo, etc. que rastrean las páginas web. El uso de elementos semánticos les ayuda a indexar un contenido más preciso para el usuario final que está buscando contenido. – RBT

12

leído sobre this article, ya que señala varias ventajas, tales como:

Hay varias ventajas de utilizar estos elementos. Cuando se utiliza en conjunción con el elementos de encabezado (h1 a h6), todos estos proporcionan una forma para marcar secciones anidadas con niveles de título, más allá de los seis niveles posible con las versiones anteriores de HTML.

y

Al identificar el propósito de secciones en la página utilizando específicos elementos de seccionamiento, tecnología de asistencia puede ayudar al usuario a navegar más fácilmente la página. Por ejemplo, pueden omitir fácilmente omitir la sección de navegación o saltar rápidamente de un artículo al siguiente sin la necesidad de que los autores proporcionen enlaces omitidos. Autores también beneficio porque la sustitución de muchos de los divs en el documento con uno de varios elementos distintos puede ayudar a hacer que el código fuente sea más claro y más fácil de autor.

4

HTML5 estilo CSS es también algo más fácil de leer:

div#header 
div#content .article 
div#content .article h1 
div#content .article h1+h2 
div#footer 

vs

header 
section#content 
section#content article 
section#content article hgroup h1 
section#content article hgroup h2 
footer 

(no usar selector avanzado)

Y como keyboardP dio a entender a través de la cotización es más fácil navegar por una página para visitantes no humanos. Agrega semántica. Pero estoy de acuerdo con usted, que a veces puede ser difícil determinar qué elemento usar section, article o bien viejo div. OMI, esto hace que la semántica sea menos fuerte. Pero veamos qué pasa.

+0

Esto no tiene ninguna relación con la pregunta o su respuesta, pero ... muchos autores de CSS recomendarían no usar los selectores ** id **. Quizás desee cambiar sus ejemplos para que tengan selectores ** de clase en su lugar. No estoy juzgando el significado de su respuesta, solo estoy sugiriendo otra forma de presentarla. – chharvey

+0

@ TestSubject528491 escribiendo el ejemplo No pensé en el ejemplo como CSS sino en una especie de pseudo HTML, pero tienes razón, esto podría llevar a la gente a pensar que esta es una buena manera de hacer CSS. El CSS actual no tendría la sección delante de 'section', sino solo' # content', que es perfecto y rápido. – Michael

+1

@chharvey Eso es ridículo. Muchas personas nunca usan ID y solo usan clases, lo cual es absurdo. Existen identificadores para estos elementos, los únicos que ocurren una vez en una página y que pueden ser dirigidos como tales. ¿Cuál supondrías que es la desventaja de usar IDs? –

3

¡Todo se trata de semántica!

pero estoy de acuerdo con usted en que para algunas personas estas nuevas etiquetas pueden parecer sin sentido. Una pregunta frecuente es por qué se eligieron estas etiquetas en particular y ninguna otra, especialmente porque algunas de las etiquetas son muy específicas del blog (artículo, sección, etc.) pero no incluyen otros nombres comúnmente utilizados, como el producto o el contenido. Como puede ver en los comentarios a continuación, ¡es un tema muy debatido!

Así que para el uso de estas nuevas etiquetas que realmente depende de la forma de escribir su margen de beneficio, y no hay manera correcta o incorrecta de cómo hacerlo. Tome listas, por ejemplo, puede utilizarlas para su navegación y no desea que tengan un estilo y también las use en su contenido principal y las necesite con estilo. Usted podría agregar clases adicionales para especificar qué listas son de estilo o puede utilizar su margen de beneficio y de destino estilos de las etiquetas por sí solos:

 
<nav> 
<ul> 
    <li><a href="">Nav item 1</a></li> 
    <li><a href="">Nav item 2</a></li> 
</ul> 
</nav> 
<div> 
<ul> 
    <li><a href="">List item 1</a><li> 
    <li><a href="">List item 1</a></li> 
<ul> 
</div> 

y en el CSS:

 

ul { list-style: bullet } 
nav ul { list-style: none; } 

+2

"Si le preguntas a alguien que formó parte del grupo de trabajo por qué se eligieron estas etiquetas en particular y no otras, en realidad no pueden responder". Derecha. Excepto si le pregunta a Ian Hickson, como lo hizo xhtml.com en [esta entrevista] (http://xhtml.com/en/future/conversation-with-x-html-5-team/), donde respondió que el nuevo los elementos se basaron en lo que los autores ya estaban haciendo, lo que se juzgó a través de [una encuesta de varios miles de millones de páginas web hechas por Google] (http://code.google.com/webstats/2005-12/classes.html). –

+1

Notarás, por ejemplo, que 1. 'nav' fue la octava clase más comúnmente utilizada, 2.' navigation' no estaba entre las 20 principales, y 3. 'nav' tomó menos bytes de ancho de banda que' navigation '. –

+1

Paul, esa fue solo una opinión en el primer párrafo que refleja el contexto de la pregunta original. No creo que continuar la discusión sobre HTML5 no sea útil; esa respuesta fue de una sesión de preguntas y respuestas después de una conversación en @media en Londres a principios de este año, después de una pregunta sobre por qué se eligieron estas etiquetas específicas. Si lee mi respuesta completamente, verá que sí señalé lo que los desarrolladores web tienen que ganar al usar las etiquetas HTML5 – graham

1

que Permiten la rúbrica alcance es la beneficio principal de <section> y <article>. Ver http://diveintohtml5.info/semantics.html#header-element.

En pocas palabras, es mucho más fácil marcar un contorno de su documento (que es útil para lectores de pantalla) sin preocuparse por usar <h2> o <h3> o lo que sea (lo cual se complica cuando se incluyen componentes en diferentes lugares en diferentes páginas).

No podrían haber hecho eso con <div> s, porque hay miles de millones de páginas web que ya han usado <div> y encabezados, sin tener necesariamente el alcance del encabezado.

Es cierto que <section> y <hgroup> hubieran sido suficientes para este propósito.

2

bien, que suena más productivo y fácil de leer uno:

<div id="nav">list of links</div> 
<div id=header> 
<div id=section>content is good 
</div> 
</div> 
<div id=footer>copyright</div> 

vs

<nav>list of links</nav> 
    <header> 
    <section>content is good</section> 
    </header> 
    <footer>copyright</footer> 

Sería mucho más fácil de explorar en busca de sección y de cabecera y de diálogo en medio de DIV depósito de chatarra. También mejora la accesibilidad para ciegos, ya que claramente le diría al lector de la pantalla qué es. Lo mismo con la etiqueta del artículo. Además, mejora la estructura y proporciona más significado a las etiquetas.

Algunos navegadores no soportan estilo CSS en elementos desconocidos y para mí, eso es increíblemente miope.

0

El beneficio visual de la utilización de las nuevas etiquetas de marcado HTML 5 podría estar oculta a los usuarios, pero los usuarios pueden beneficiarse, sin saberlo, debido a que estas etiquetas pueden les han proporcionado un mejor resultado de la búsqueda. Creo que una vez que HTML5 se convierta en un estándar, el uso de estas etiquetas de marcado será extremadamente importante para sus sitios SEO.

2

Creo que el gran error de las divisiones semánticas HTML es que el código para hacer que funcionen en el mundo real implica múltiples declaraciones para hacer frente a los navegadores reales que están siendo utilizados por personas reales. Los ejemplos indicados anteriormente no son reales y, en cualquier caso, para leer el código html5, debe recordar que un pie de página es un tipo de div. Simplemente llamándolo div y dándole una ID descriptiva me parece mucho más claro, incluso si nos olvidamos de las declaraciones múltiples que realmente necesitará (realmente, lo hará. Durante varios años). Aquí hay una idea.Cree los atributos IDs div semánticos, como 'title =', etc. - permita que los navegadores y lectores de pantalla modernos usen esta información para identificar secciones, apartados, etc., y el código será más claro. No dejes de llamar a un div a div, porque no puedes instalar nuevos navegadores para todo el planeta.

<div id ="footer" class="someclass someotherclass" semantic="footer">You, the screen 
readers and all browsers know this is a div</div> 
Cuestiones relacionadas