2011-02-25 11 views
9

Estoy tratando de entender la razón detrás de la existencia de dos atributos en lugar de simplemente hacer que el elemento que contiene el 'tipo de elemento' sea el que envuelve el alcance del artículo.Al usar Microdatos HTML5, ¿se deben usar siempre el "ítem de elemento" y el "tipo de elemento" en el mismo elemento?

¿Es válido tener el atributo 'itemtype' en un elemento y el atributo 'itemscope' en algún otro? de esta manera:

<section itemtype="http://data-vocabulary.org/Person"> 
    <div itemscope> 
     <span itemprop="name">Alonso Torres</span> 
    </div> 
</section> 

Si este caso no es válida, entonces por qué la existencia de la '' itemscope atribuyen en absoluto? Por qué a la especificación no se le ocurrió la idea de hacer que el elemento que tiene el atributo 'tipo de elemento' sea el que establece el alcance. Eso tendría sentido para mí.

Respuesta

9

Tiene razón, el atributo itemscope parece redundante. Otra persona señaló esto en la lista de correo HTML del W3C: http://lists.w3.org/Archives/Public/public-html-bugzilla/2011Jan/0517.html

La respuesta (http://lists.w3.org/Archives/Public/public-html-bugzilla/2011Jan/0523.html) fue que:

El editor especificación HTML hizo de la característica anterior, y si de pruebas de usuario recuerdo correctamente, varios de los sujetos de prueba encontraron que era mucho más fácil si fuera un indicador explícito del contenedor , en lugar de ser implícito debido al tipo.

En otras palabras, es mejor para los atributos que tienen una única definición clara de lo que implica múltiples definiciones. No estoy seguro de estar de acuerdo, pero esa es la vista oficial.

0

No creo que sea útil colocar un atributo de tipo de elemento en cualquier lugar, excepto en el mismo elemento que el atributo itemscope. El spec dice:

El tipo de un artículo se da como el valor de un atributo itemtype en el mismo elemento como el itemscope atributo.

Las razones por las que se necesitan dos atributos tampoco son claras para mí. Semánticamente sirven para diferentes propósitos, por lo que para una mayor claridad de uso puede parecer más sensato. Para un uso simple, es posible crear un elemento utilizando itemscope sin darle un tipo. Eso significa que itemscope es un atributo booleano, mientras que itemtype toma un valor de cadena. No es posible en HTML que un atributo se comporte como booleano cuando se usa sin un valor, y una cadena cuando se utiliza con uno, por lo que los atributos independientes tienen sentido.

Sé que Google realizó un estudio de usabilidad sobre el marcado de microdatos antes de que se anunciara, por lo que era probable que tales preguntas se abordaran allí y que los atributos separados fueran el resultado preferido. (Aunque ese estudio también dio como resultado una preferencia para itemref siendo un elemento, no un atributo, algo que se modificó posteriormente.)

1

itemscopeitemtype es obligatorio si se utiliza en el mismo elemento

El ejemplo que muestran no es válido.El spec ha sido actualizado para incluir lo siguiente:

El atributo itemtype no se debe especificar en elementos que no tienen un atributo itemscope especificado.

Aquí, "no debe" está a interpretarse como en RFC2119: "la definición es una prohibición absoluta de la especificación".

Cuestiones relacionadas