2012-08-13 21 views
7
<!DOCTYPE html> 
<meta charset="utf-8"> 
<body> 
Hello, world! 

SOURCE FOR CODE¿Es válido este marcado minimalista HTML5?

Si es así, además de la eliminación de "Hola, mundo!" ¿Hay alguna etiqueta que pueda eliminarse y que siga siendo válida, y cómo sabes que sigue siendo válida?

+0

Hmm, falta exactamente una etiqueta y otra que se puede eliminar. Huele un poco como * deberes *. –

+0

@mootinator: Fuente es esta [presentación en D3] (http://bost.ocks.org/mike/d3/workshop/), puesto que no puedo encontrar la manera de enlazar con la diapositiva, así que me he vinculado a el código. Pensé que era interesante, pero no parecía válido. Más al grano, no, no es HW. – blunders

+0

Ah, pero un ejemplo artificial para el propósito de discusión :) Interesante que estaba en esa presentación, pero * no es * válido en realidad. –

Respuesta

11

No es válido. Para verificarlo puede ejecutarlo en W3C Validator

El error es: Al elemento principal le falta una instancia requerida del título del elemento hijo.

...

ACTUALIZACIÓN

Como vcsjones declaró el elemento head es opcional. Ese es el title que se requiere. Crédito al mootinator para señalar que el body también es opcional.

Así que el documento válido será más simple:

<!DOCTYPE html> 
<title></title> 
+2

Para ser claros, la etiqueta 'head' es opcional. Es la etiqueta 'title' que se requiere. Agregar un 'título' antes del cuerpo borrará el error de validación. – vcsjones

+0

Además, '' no es necesario. –

+3

Aparentemente '' también es opcional. –

4

(. Suponiendo que la sintaxis HTML de HTML5)

Tenga en cuenta que en algunas situaciones el elemento title es opcional, también.

De HTML5’s definition of head:

El elemento title es un niño requiere en la mayoría de las situaciones, pero cuando un protocolo de nivel superior proporciona la información del título, por ejemplo, en la línea Asunto de un correo electrónico cuando se usa HTML como formato de creación de correo electrónico, el elemento title se puede omitir.

lo tanto, el margen de beneficio mínimo para un documento que consigue un título de un "protocolo de nivel superior" es la siguiente:

<!DOCTYPE html> 

Si el documento es el valor de un iframe - srcdoc que es esto (suponiendo un título es proporcionada por el documento contenedor):

<html> 

Y para un documento independiente que es esto (el elemento title necesita un poco de contenido real, como noted by kapep, por lo que el "..." es sólo un ejemplo):

<!DOCTYPE html> 
<title>…</title> 
2

La etiqueta del título no puede estar vacía o únicamente consistirá en un espacio en blanco. Por lo tanto, si el documento se encuentra en un contexto donde se requiere la etiqueta de título, deberá establecer un valor de título válido.

El title content model se define como "Texto que no es un espacio en blanco entre elementos".

"Los nodos de texto vacíos y los nodos de texto que consisten en secuencias simples de [caracteres de espacio]" son inter-element whitespace. Los caracteres espaciales son espacio, tabulación, avance de línea, avance de página y retorno de carro.

Si la etiqueta de título está vacía, el Validador de W3C se queja de que "El título del elemento no debe estar vacío". El Validator está bien con solo agregar espacios, a pesar de que eso no es correcto de acuerdo con las especificaciones.

Es válido si se agrega otro personaje no-espacio:

<!DOCTYPE html> 
<title>x</title> 

Se podría utilizar otros caracteres de espacio como espacio de no-break o espacio no ruptura de anchura cero si quiere fingir un "vacío "título"

Cuestiones relacionadas