===== W3C ===== Especificación HTML 4.01 (HTML 4.01 Specification) Recomendación del W3C 24 de diciembre de 1999 ================================================================================ Importante: Este documento es una traducción al castellano de la Recomendación del W3C "HTML 4.01 Specification", publicada el 24 de diciembre de 1999. Esta traducción ha sido publicada el 10 de junio de 2001. El URI de este documento es: http://html.conclase.net/w3c/html401-es/html401-es.txt El URI del documento en hipertexto es: http://html.conclase.net/w3c/html401-es/cover.html El URI del documento original es: http://www.w3.org/TR/1999/REC-html401-19991224 El URI de la última versión de la Recomendación en inglés es: http://www.w3.org/TR/html401 La única versión normativa de este documento es la versión original en inglés que se encuentra en el sitio web del W3C. Ninguna parte del presente documento en castellano es normativa aunque se especifique lo contrario. Véase el Aviso de copyright al final de este documento. Este documento puede contener errores de traducción. La traducción ha sido realizada por Juan R. Pozo, Gracias a todos aquellos que han colaborado en la tarea. ================================================================================ Esta versión (en castellano): http://html.conclase.net/w3c/html401-es/cover.html Esta versión (en inglés): http://www.w3.org/TR/1999/REC-html401-19991224 Última versión de HTML 4.01 (en inglés): http://www.w3.org/TR/html401 Última versión de HTML 4 (en inglés): http://www.w3.org/TR/html4 Última versión de HTML (en inglés): http://www.w3.org/TR/html Versión anterior de HTML 4.01 (en inglés): http://www.w3.org/TR/1999/PR-html40-19990824 Recomendación previa HTML 4 (en inglés): http://www.w3.org/TR/1998/REC-html40-19980424 Editores: Dave Raggett Arnaud Le Hors, W3C Ian Jacobs, W3C Copyright ©1997-1999 W3C® (MIT, INRIA, Keio), todos los derechos reservados. Se aplican todas las condiciones de responsabilidad, marcas registradas, uso de documentos y licencias de software del W3C. -------------------------------------------------------------------------------- Resumen Esta especificación define el Lenguaje de Formato de Documentos para Hipertexto (HyperText Markup Language, HTML), el lenguaje de publicación de la World Wide Web. Esta especificación define HTML 4.01, que es una versión de HTML 4. Además de las características relativas a texto, multimedia e hipervínculos de las versiones anteriores de HTML (HTML 3.2 [HTML32] y HTML 2.0 [RFC1866]), HTML 4 soporta más opciones de multimedia, lenguajes de scripts, hojas de estilo, mejores capacidades de impresión, y documentos más accesibles a usuarios con discapacidades. HTML 4 también da un gran paso adelante hacia la internacionalización de los documentos, con la intención de hacer la Web auténticamente universal. HTML4 es una aplicación de SGML conforme al estándar internacional ISO 8879 -- Standard Generalized Markup Language [ISO8879]. Estado de este documento Esta sección describe el estado de este documento en la fecha de su publicación. Otros documentos pueden reemplazar a este documento. En el W3C se conserva el estado más reciente de esta serie de documentos. Este documento especifica HTML 4.01, que es parte de la línea de especificaciones de HTML 4. La primera versión de HTML 4 fue HTML 4.0 [HTML40], publicado el 18 de diciembre de 1997 y revisado el 24 de abril de 1998. Esta especificación es la primera Recomendación HTML 4.01. Incluye cambios no editoriales desde la versión del 24 de abril de HTML 4.0. Por ejemplo, se han hecho algunos cambios en los DTDs. Con este documento quedan obsoletas las versiones previas de HTML 4.0, aunque el W3C seguirá poniendo a disposición del público dichas especificaciones y sus DTDs en su sitio web. Este documento ha sido revisado por Miembros del W3C y otras partes interesadas y ha sido aprobado por el Director como Recomendación del W3C. Es un documento estable y puede ser usado como material de referencia o citado como referencia normativa en otros documentos. La intención del W3C al hacer esta Recomendación es llamar la atención sobre la especificación y promover su difusión general. El W3C recomienda que los agentes de usuario y los autores (y en particular las herramientas de creación) produzcan documentos HTML 4.01 en vez de documentos HTML 4.0. El W3C recomienda que los autores produzcan documentos HTML 4 en vez de documentos HTML 3.2. Por razones de compatibilidad con versiones anteriores, el W3C también recomienda que las herramientas que interpreten HTML 4 sigan dando soporte a HTML 3.2 y a HTML 2.0. Para obtener información sobre la próxima generación de HTML, "El Lenguaje Extensible para el Formato de Documentos de Hipertexto" [XHTML], consulte las Actividades del W3C en el campo del HTML y la lista de Informes Técnicos del W3C. Este documento ha sido producido como parte de las Actividades del W3C en el campo del HTML. Los objetivos del Grupo de Trabajo HTML (sólo Miembros) se plantean en la carta constitucional del Grupo de Trabajo HTML (sólo Miembros). Puede encontrarse una lista de las Recomendaciones actuales del W3C y otros documentos técnicos en http://www.w3.org/TR. En la lista de correo www-html@w3.org se discuten públicamente las características del HTML. Idiomas disponibles La versión en inglés de esta especificación es la única versión normativa. Sin embargo, para traducciones de este documento, véase http://www.w3.org/MarkUp/html4-updates/translations. Erratas La lista de errores conocidos de la versión original en inglés de esta especificación está disponible en: http://www.w3.org/MarkUp/html4-updates/errata Le rogamos informe de errores en la versión original en inglés de este documento a www-html-editor@w3.org. N.T.: La correción de estas erratas ya ha sido tenida en cuenta en la traducción al castellano del documento. Para informar sobre errores presentes en la traducción española de la especificación, puede ponerse en contacto con el traductor en jrpozo@conclase.net. Gracias por su colaboración. ================================================================================ Tabla abreviada de contenidos 1 Sobre la especificación HTML 4 2 Introducción a HTML4 3 Sobre SGML y HTML 4 Conformidad: requisitos y recomendaciones 5 Representación de documentos HTML - Conjuntos de caracteres, codificaciones de caracteres y entidades 6 Tipos de datos básicos de HTML - Datos de caracteres, colores, longitudes, URIs, tipos de contenido, etc. 7 La estructura global de un documento HTML - La cabecera (HEAD) y el cuerpo (BODY) de un documento 8 Información sobre el idioma y la dirección del texto - Consideraciones internacionales sobre el texto 9 Texto - Párrafos, líneas y frases 10 Listas - Listas ordenadas, no ordenadas y de definiciones 11 Tablas 12 Vínculos - Hipertexto y vínculos independientes del medio 13 Objetos, Imágenes y Aplicaciones 14 Hojas de Estilo - Añadir estilo a los documentos HTML 15 Alineación, estilos de fuente y separadores horizontales 16 Marcos - Presentación multivista de documentos 17 Formularios - Formularios para entrada de datos por el usuario: campos de texto, botones, menúes, etc. 18 Scripts - Documentos animados y formularios inteligentes 19 Información de referencia sobre SGML para HTML - Definición formal y validación de HTML 20 Declaración SGML de HTML 4 21 Definición del Tipo de Documento (Document Type Definition) 22 Definición del Tipo de Documento Transicional (Transitional Document Type Definition) 23 Definición del Tipo de Documento con Marcos (Frameset Document Type Definition) 24 Referencias a entidades de caracteres en HTML 4 A. Cambios B. Aplicación, Implementación y Notas de Diseño Referencias Índice de Elementos Índice de Atributos Índice ================================================================================ Tabla completa de contenidos 1. Sobre la especificación HTML 4 1. Cómo está organizada la especificación 2. Convenciones del documento 1. Elementos y atributos 2. Notas y ejemplos 3. Agradecimientos 1. Agradecimientos por la revisión actual 4. Aviso de Copyright 2. Introducción a HTML 4 1. ¿Qué es la World Wide Web? 1. Introducción a los URIs 2. Identificadores de fragmento 3. URIs relativos 2. ¿Qué es el HTML? 1. Breve historia del HTML 3. HTML 4 1. Internacionalización 2. Accesibilidad 3. Tablas 4. Documentos compuestos 5. Hojas de estilo 6. Scripts 7. Impresión 4. Creación de documentos con HTML 4 1. Separar estructura y presentación 2. Considerar la accesibilidad universal a la Web 3. Ayudar a los agentes de usuario con la representación incremental 3. Sobre SGML y HTML 1. Introducción al SGML 2. Estructuras SGML usadas en HTML 1. Elementos 2. Atributos 3. Referencias de caracteres 4. Comentarios 3. Cómo leer el DTD de HTML 1. Comentarios DTD 2. Definiciones de entidades paramétricas 3. Declaraciones de elementos - Definiciones del modelo de contenido 4. Declaraciones de atributos - Entidades DTD en definiciones de atributos - Atributos booleanos 4. Conformidad: requisitos y recomendaciones 1. Definiciones 2. SGML 3. El tipo de contenido text/html 5. Representación de Documentos HTML - Conjuntos de caracteres, codificaciones de caracteres y entidades 1. El Conjunto de Caracteres del Documento 2. Codificaciones de caracteres 1. Elección de una codificación - Notas sobre codificaciones específicas 2. Especificación de la codificación de caracteres 3. Referencias de caracteres 1. Referencias numéricas de caracteres 2. Referencias a entidades de caracteres 4. Caracteres no representables 6. Tipos de datos básicos de HTML - Datos de caracteres, colores, longitudes, URIs, tipos de contenido, etc. 1. Mayúsculas y minúsculas 2. Tipos básicos de SGML 3. Cadenas de texto 4. URIs 5. Colores 6. Notas sobre el uso de colores 7. Longitudes 8. Tipos de contenido (tipos MIME) 9. Códigos de idioma 10. Codificaciones de caracteres 11. Caracteres individuales 12. Fechas y horas 13. Tipos de vínculos 14. Descriptores de medios 15. Datos de scripts 16. Datos de hojas de estilo 17. Nombres de marcos destino 7. La estructura global de un documento HTML - La cabecera (HEAD) y el cuerpo (BODY) de un documento 1. Introducción a la estructura de un documento HTML 2. Información sobre la versión de HTML 3. El elemento HTML 4. La cabecera del documento 1. El elemento HEAD 2. El elemento TITLE 3. El atributo title 4. Metadatos - Especificación de metadatos - El elemento META - Perfiles de metadatos 5. El cuerpo del documento 1. El elemento BODY 2. Identificadores de elementos: los atributos id y class 3. Elementos en bloque y elementos en línea 4. Agrupación de elementos: los elementos DIV y SPAN 5. Encabezados: los elementos H1, H2, H3, H4, H5, H6 6. El elemento ADDRESS 8. Información sobre el idioma y la dirección del texto - Consideraciones internacionales sobre el texto 1. Especificación del idioma del contenido: el atributo lang 1. Códigos de idioma 2. Herencia de los códigos de idioma 3. Interpretación de los códigos de idioma 2. Especificación de la dirección del texto y de las tablas: el atributo dir 1. Introducción al algoritmo bidireccional 2. Herencia de la información sobre la dirección del texto 3. Especificación de la dirección del texto incluido 4. Anulación del algoritmo bidireccional: el elemento BDO 5. Referencias de caracteres para el control de la direccionalidad y de la unión 6. Efecto de las hojas de estilo en la bidireccionalidad 9. Texto - Párrafos, líneas y frases 1. Espacio en blanco 2. Texto estructurado 1. Elementos de frase: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ABBR y ACRONYM 2. Citas: Los elementos BLOCKQUOTE y Q - Representación de citas 3. Subíndices y superíndices: los elementos SUB y SUP 3. Líneas y párrafos 1. Párrafos: el elemento P 2. Control de los saltos de línea - Forzar un salto de línea: el elemento BR - Impedir un salto de línea 3. División de palabras 4. Texto preformateado: el elemento PRE 5. Representación visual de los párrafos 4. Anotación de cambios en los documentos: los elementos INS y DEL 10. Listas - Listas ordenadas, no ordenadas y de definiciones 1. Introducción a las listas 2. Listas no ordenadas (UL), listas ordenadas (OL), y objetos de lista (LI) 3. Listas de definiciones: los elementos DL, DT y DD 1. Representación visual de las listas 4. Los elementos DIR y MENU 11. Tablas 1. Introducción a las tablas 2. Elementos para construir tablas 1. El elemento TABLE - Direccionalidad de tablas 2. Títulos de tablas: el elemento CAPTION 3. Grupos de filas: los elementos THEAD, TFOOT y TBODY 4. Grupos de columnas: los elementos COLGROUP y COL - El elemento COLGROUP - El elemento COL - Cálculo del número de columnas de una tabla - Cálculo de la anchura de las columnas 5. Filas de una tabla: el elemento TR 6. Celdas de una tabla: los elementos TH y TD - Celdas que abarcan varias filas o columnas 3. Formato de tablas por agentes de usuario visuales 1. Bordes y líneas de división 2. Alineación horizontal y vertical - Herencia de las especificaciones de alineación 3. Márgenes de las celdas 4. Representación de tablas por agentes de usuario no visuales 1. Asociación de información de encabezado con celdas de datos 2. Categorización de celdas 3. Algoritmo para encontrar información de encabezado 5. Tabla de muestra 12. Vínculos - Hipertexto y vínculos independientes del medio 1. Introducción a los vínculos 1. Visitar un recurso vinculado 2. Otras relaciones de vínculo 3. Especificación de vínculos 4. Títulos de vínculos 5. Internacionalización y vínculos 2. El elemento A 1. Sintaxis de nombres de vínculos 2. Los vínculos anidados son ilegales 3. Vínculos con el atributo id 4. Recursos no disponibles o no identificables 3. Relaciones entre documentos: el elemento LINK 1. Vínculos directos e inversos 2. Vínculos y hojas de estilo externas 3. Vínculos y motores de búsqueda 4. Información sobre la ruta de acceso: el elemento BASE 1. Cómo completar los URIs relativos 13. Objetos, Imágenes y Aplicaciones 1. Introducción a los objetos, imágenes y aplicaciones 2. Incluir una imagen: el elemento IMG 3. Inclusión genérica: el elemento OBJECT 1. Reglas para representar objetos 2. Inicialización de objetos: el elemento PARAM 3. Esquemas globales de nombres para objetos 4. Declaración y creación de un objeto 4. Incluir un applet: el elemento APPLET 5. Notas sobre la inclusión de documentos 6. Mapas de imágenes 1. Mapas de imágenes en el lado del cliente: los elementos MAP y AREA - Ejemplos de mapas de imágenes en el lado del cliente 2. Mapas de imágenes en el lado del servidor 7. Presentación visual de imágenes, objetos y aplicaciones 1. Anchura y altura 2. Espacio en blanco alrededor de imágenes y objetos 3. Bordes 4. Alineación 8. Cómo especificar texto alternativo 14. Hojas de estilo - Añadir estilo a los documentos HTML 1. Introducción a las hojas de estilo 2. Añadir estilos al HTML 1. Especificación del lenguaje de hojas de estilo por defecto 2. Información de estilo en línea 3. Información de estilo en cabecera: el elemento STYLE 4. Tipos de medios 3. Hojas de estilo externas 1. Hojas de estilo preferentes y alternativas 2. Especificación de hojas de estilo externas 4. Hojas de Estilo en Cascada 1. Cascadas dependientes del medio 2. Herencia y cascada 5. Ocultar datos de estilo a los agentes de usuario 6. Vínculación de hojas de estilo mediante encabezados HTTP 15. Alineación, estilos de fuente y separadores horizontales 1. Formato 1. Color de fondo 2. Alineación 3. Objetos flotantes - Hacer flotar a un objeto - Texto flotante alrededor de un objeto 2. Fuentes 1. Elementos de estilo de fuente: los elementos TT, I, B, BIG, SMALL, STRIKE, S y U 2. Elementos de modificación de fuentes: FONT y BASEFONT 3. Separadores: el elemento HR 16. Marcos - Presentación multivista de documentos 1. Introducción a los marcos 2. Disposición de los marcos 1. El elemento FRAMESET - Filas y Columnas - Anidamiento de grupos de marcos - Compartir datos entre marcos 2. El elemento FRAME - Especificación de los contenidos iniciales de un marco - Representación visual de un marco 3. Especificación de información sobre el marco destino 1. Especificación del destino de los vínculos por defecto 2. Semántica de marcos destino 4. Contenido alternativo 1. El elemento NOFRAMES 2. Descripciones largas de marcos 5. Marcos en línea: el elemento IFRAME 17. Formularios - Formularios para entrada de datos por el usuario: campos de texto, botones, menúes, etc. 1. Introducción a los formularios 2. Controles 1. Tipos de controles 3. El elemento FORM 4. El elemento INPUT 1. Tipos de controles creados con INPUT 2. Ejemplos de formularios con controles INPUT 5. El elemento BUTTON 6. Los elementos SELECT, OPTGROUP y OPTION 1. Opciones preseleccionadas 7. El elemento TEXTAREA 8. El elemento ISINDEX 9. Rótulos 1. El elemento LABEL 10. Añadir estructura a los formularios: los elementos FIELDSET y LEGEND 11. Dirigir el foco hacia un elemento 1. Navegación con tabulador 2. Teclas de acceso 12. Controles deshabilitados y de sólo lectura 1. Controles deshabilitados 2. Controles de sólo lectura 13. Envío de formularios 1. Método de envío del formulario 2. Controles con éxito 3. Procesamiento de los datos del formulario - Paso uno: Identificación de los controles con éxito - Paso dos: Construcción del conjunto de datos del formulario - Paso tres: Codificación del conjunto de datos del formulario - Paso cuatro: Envío del conjunto de datos del formulario codificado 4. Tipos de contenido de formularios - application/x-www-form-urlencoded - multipart/form-data 18. Scripts - Documentos animados y formularios inteligentes 1. Introducción a los scripts 2. Diseño de documentos para agentes de usuario que soporten scripts 1. El elemento SCRIPT 2. Especificación del lenguaje de scripts - El lenguaje de scripts por defecto - Declaración local del lenguaje de un script - Referencias a elementos HTML desde un script 3. Eventos intrínsecos 3. Modificación dinámica de documentos 4. Diseño de documentos para agentes de usuario que no soporten scripts 1. El elemento NOSCRIPT 2. Ocultar datos de scripts a los agentes de usuario 19. Información de referencia de SGML para HTML - Definición formal y validación de HTML 1. Validación de documentos 2. Catálogo SGML de ejemplo 20. Declaración SGML de HTML 4 1. Declaración SGML 21. Definición del Tipo de Documento 22. Definición del Tipo de Documento Transicional 23. Definición del Tipo de Documento con Marcos 24. Referencias a entidades de caracteres en HTML 4 1. Introducción a las referencias a entidades de caracteres 2. Referencias a entidades de caracteres para caracteres de la ISO 8859-1 1. Lista de caracteres 3. Referencias a entidades de caracteres para símbolos, símbolos matemáticos y letras griegas 1. Lista de caracteres 4. Referencias a entidades de caracteres para caracteres con significado en el código y caracteres de internacionalización 1.Lista de caracteres A. Cambios 1. Cambios entre la versión de HTML 4.0 del 24 de abril de 1998 y la versión de HTML 4.01 del 24 de diciembre de 1999 1. Cambios en la especificación - Cambios generales - Sobre SGML y HTML - Representación de Documentos HTML - Tipos de datos básicos de HTML - La estructura global de un documento HTML - Información sobre el idioma y la dirección del texto - Tablas - Vínculos - Objetos, Imágenes y Aplicaciones - Hojas de estilo en documentos HTML - Marcos - Formularios - Declaración SGML - DTD Estricto - Notas - Referencias 2. Erratas corregidas 3. Pequeños errores tipográficos corregidos 4. Clarificaciones 5. Problemas conocidos de los navegadores 2. Cambios entre las versiones del 18 de diciembre de 1997 y del 24 de abril de 1998 1. Erratas corregidas 2. Pequeños errores tipográficos corregidos 3. Cambios entre HTML 3.2 y HTML 4.0 (18 de diciembre de 1997) 1. Cambios en los elementos - Elementos nuevos - Elementos desaprobados - Elementos obsoletos 2. Cambios en los atributos 3. Cambios relacionados con la accesibilidad 4. Cambios relacionados con los metadatos 5. Cambios relacionados con el texto 6. Cambios relacionados con los vínculos 7. Cambios relacionados con las tablas 8. Cambios relacionados con las imágenes, objetos y mapas de imágenes 9. Cambios relacionados con los formularios 10. Cambios relacionados con las hojas de estilo 11. Cambios relacionados con los marcos 12. Cambios relacionados con los scripts 13. Cambios relacionados con la internacionalización B. Notas sobre Aplicación, Implementación y Diseño 1. Notas sobre documentos no válidos 2. Caracteres especiales en valores de atributos URI 1. Caracteres no ASCII en valores de atributos URI 2. El signo & en valores de atributos URI 3. Notas de implementación de SGML 1. Saltos de línea 2. Especificación de datos no HTML - Contenido de elementos - Valores de atributos 3. Características de SGML con soporte limitado 4. Atributos booleanos 5. Secciones marcadas 6. Instrucciones de procesamiento 7. Código abreviado 4. Cómo ayudar a los motores de búsqueda a indexar su sitio web 1. Motores de búsqueda - El fichero robots.txt - Los robots y el elemento META 5. Notas sobre tablas 1. Criterios de diseño - Reformateo dinámico - Representación incremental - Estructura y presentación - Grupos de filas y de columnas - Accesibilidad 2. Algoritmos recomendados de composición - Algoritmo de Composición Fija - Algoritmo de Autocomposición 6. Notas sobre formularios 1. Representación incremental 2. Proyectos futuros 7. Notas sobre scripts 1. Sintaxis reservada para macros de scripts futuras - Práctica actual en macros de scripts 8. Notas sobre marcos 9. Notas sobre accesibilidad 10. Notas sobre seguridad 1. Cuestiones de seguridad relacionadas con los formularios Referencias 1. Referencias normativas 2. Referencias informativas Índice de elementos Índice de atributos Índice ================================================================================ 1 Sobre la especificación HTML 4 -------------------------------------------------------------------------------- Contenidos 1. Cómo está organizada la especificación 2. Convenciones del documento 1. Elementos y atributos 2. Notas y ejemplos 3. Agradecimientos 1. Agradecimientos por la revisión actual 4. Aviso de Copyright -------------------------------------------------------------------------------- 1.1 Cómo está organizada la especificación Esta especificación se divide en las siguientes secciones: Secciones 2 y 3: Introducción al HTML 4 La introducción describe el lugar del HTML en el marco de la World Wide Web, proporciona una breve historia del desarrollo del HTML, explica lo que puede hacerse con HTML 4 y da algunos consejos para la creación de documentos con HTML. Un tutorial escueto de SGML da a los lectores algo de información sobre la relación entre HTML y SGML, así como información resumida sobre cómo leer las Definiciones del Tipo de Documento (DTD). Secciones 4 - 24: Manual de referencia de HTML 4 El grueso del manual de referencia consiste en la referencia del lenguaje HTML, que define todos los elementos y atributos del lenguaje. Se ha organizado este documento por temas, y no por la gramática del HTML. Los temas se agrupan en tres categorías: estructura, presentación e interactividad. Aunque no es fácil dividir las estructuras HTML perfectamente entre estas tres categorías, el modelo refleja la experiencia del Grupo de Trabajo HTML de que separar la estructura del documento de su presentación produce documentos más efectivos y de mantenimiento más sencillo. La referencia del lenguaje consiste en la siguiente información: - Qué caracteres pueden aparecer en un documento HTML. - Tipos de datos básicos de un documento HTML. - Elementos que gobiernan la estructura de un documento HTML, incluyendo texto, listas, tablas, vínculos y objetos, imágenes y aplicaciones incluidos. - Elementos que gobiernan la presentación de un documento HTML, incluyendo hojas de estilo, fuentes, colores, separadores y otras presentaciones visuales y marcos para presentaciones multiventana. - Elementos que gobiernan la interactividad dentro de un documento HTML, incluyendo formularios para la entrada de datos por el usuario y scripts para documentos activos. - La definición formal SGML de HTML: * La declaración SGML de HTML. * Tres DTDs: strict (estricto), transitional (transicional), y frameset (de documentos con marcos). * La lista de referencias de caracteres. Apéndices El primer apéndice contiene información sobre los cambios desde la versión HTML 3.2 para ayudar a los autores e implementadores durante la transición a HTML 4, los cambios desde la especificación del 18 de diciembre de 1997, y los cambios entre las versiones HTML 4.0 y HTML 4.01. El segundo apéndice contiene notas de ejecución e implementación, y su finalidad principal es ayudar a los implementadores a crear agentes de usuario para HTML 4. Referencias Una lista de referencias normativas e informativas. Índices Tres índices permiten a los lectores acceder rápidamente a las definiciones de los conceptos clave, elementos y atributos. 1.2 Convenciones del documento Este documento ha sido escrito con dos tipos de lectores en mente: autores e implementadores. Esperamos que la especificación proporcione a los autores las herramientas que necesitan para escribir documentos eficientes, atractivos y accesibles sin sobreexponerles a detalles sobre la implementación del HTML. Los implementadores, sin embargo, deberían encontrar todo lo que necesitan para crear agentes de usuario conformes. Hay varias maneras de abordar esta especificación: - Leer de principio a fin. Esta especificación comienza con una presentación general de HTML y se va haciendo más técnica y específica a medida que avanza. - Acceso rápido a la información. Para poder obtener información sobre sintaxis y semántica lo más rápidamente posible, la versión en línea de la especificación presenta las siguientes características: 1. Toda referencia a un elemento o atributo está enlazada con su definición en la especificación. Cada elemento o atributo se define en un único lugar. 2. Cada página incluye vínculos a los índices, de modo que el lector nunca está a más de dos vínculos de distancia de la definición de un elemento o atributo. 3. La portada de cada sección del manual de referencia expande la tabla inicial de contenidos con más detalle sobre esa sección. 1.2.1 Elementos y atributos Los nombres de elementos se escriben en mayúscula (p.ej., BODY). Los nombres de atributos se escriben en minúscula (p.ej., lang, onsubmit). Recuerde que HTML no diferencia entre mayúsculas y minúsculas con respecto a los nombres de elementos y atributos; esta convención sólo se sigue para facilitar la lectura. En este documento los nombres de elementos y atributos se han codificado de modo que puedan ser representados de manera especial por algunos agentes de usuario. La definición de cada atributo especifica el tipo de su valor. Si el tipo permite un conjunto pequeño de valores posibles, la definición enumera el conjunto de valores, separados por una barra (|). Después de la información sobre el tipo, la definición de cada atributo indica si se distingue entre mayúsculas y minúsculas para sus valores, con un código entre corchetes ("[]"). Véase la sección sobre mayúsculas y minúsculas para más detalles. 1.2.2 Notas y ejemplos Las notas informativas se han enfatizado para diferenciarlas del texto que las rodea y para poder ser representadas de manera especial por algunos agentes de usuario. Todos los ejemplos que ilustran usos desaprobados se han marcado como "EJEMPLO DESAPROBADO". Los ejemplos desaprobados también incluyen soluciones alternativas recomendadas. Todos los ejemplos que ilustran usos ilegales se han marcado claramente como "EJEMPLO ILEGAL". Los ejemplos y las notas han sido codificadas de modo que puedan ser representados de manera especial por algunos agentes de usuario. 1.3 Agradecimientos Gracias a todos los que han ayudado a crear los borradores de trabajo que han cristalizado en la especificación HTML 4, y a todos aquellos que han enviado sugerencias y correcciones. Muchas gracias a la Iniciativa por la Accesibilidad en la Web (grupo WAI HC) por su trabajo para mejorar la accesibilidad en HTML y a T.V. Raman (Adobe) por su trabajo previo en el desarrollo de formularios accesibles. Los autores de esta especificación, los miembros del Grupo de Trabajo HTML del W3C, merecen un aplauso por la diligente revisión de este documento, sus comentarios constructivos, y su gran trabajo: John D. Burger (MITRE), Steve Byrne (JavaSoft), Martin J. Dürst (Universidad de Zurich), Daniel Glazman (Electricité de France), Scott Isaacs (Microsoft), Murray Maloney (GRIF), Steven Pemberton (CWI), Robert Pernett (Lotus), Jared Sorensen (Novell), Powell Smith (IBM), Robert Stevahn (HP), Ed Tecot (Microsoft), Jeffrey Veen (HotWired), Mike Wexler (Adobe), Misha Wolf (Reuters) y Lauren Wood (SoftQuad). Gracias a Dan Connolly (W3C) por sus rigurosas y abundantes contribuciones como editor a tiempo parcial y por sus amables consejos como presidente del Grupo de Trabajo HTML. Gracias a Sally Khudairi (W3C) por su trabajo indispensable en los comunicados de prensa. Gracias a David M. Abrahamson y a Roger Price por su cuidadosa lectura de la especificación y sus comentarios constructivos. Gracias a Jan Kärrman, autor de html2ps por su gran ayuda en la creación de la versión Postscript de la especificación. De particular ayuda para el W3C en Sophia-Antipolis fueron Janet Bertot, Bert Bos, Stephane Boyera, Daniel Dardailler, Yves Lafon, Håkon Lie, Chris Lilley y Colas Nahaboo (Bull). Por último, gracias a Tim Berners-Lee, sin el cual nada de esto habría sido posible. 1.3.1 Agradecimientos por la revisión actual Muchas gracias a Shane McCarron por el control de erratas para esta revisión de la especificación. 1.4 Aviso de Copyright Para información sobre derechos de autor, léase la Noticia de Propiedad Intelectual del W3C (http://www.w3.org/Consortium/Legal/ipr-notice#Copyright), la Noticia y Licencia de Documentos del W3C (http://www.w3.org/Consortium/Legal/copyright-documents-19990405.html), y la Noticia de Propiedad Intelectual de Software del W3C (http://www.w3.org/Consortium/Legal/copyright-software-19980720.html). ================================================================================ 2 Introducción a HTML 4 -------------------------------------------------------------------------------- Contenidos 1. ¿Qué es la World Wide Web? 1. Introducción a los URIs 2. Identificadores de fragmento 3. URIs relativos 2. ¿Qué es el HTML? 1. Breve historia del HTML 3. HTML 4 1. Internacionalización 2. Accesibilidad 3. Tablas 4. Documentos compuestos 5. Hojas de estilo 6. Scripts 7. Impresión 4. Creación de documentos con HTML 4 1. Separar estructura y presentación 2. Considerar la accesibilidad universal a la Web 3. Ayudar a los agentes de usuario con la representación incremental -------------------------------------------------------------------------------- 2.1 ¿Qué es la World Wide Web? La World Wide Web (Web), en castellano "Tejido Mundial", es una red de recursos de información. La Web se basa en tres mecanismos para hacer que estos recursos estén listos y a disposición de la mayor audiencia posible: 1. Un esquema uniforme de nombres para localizar recursos en la Web (p.ej., URIs). 2. Protocolos, para acceder a recursos con nombre en la Web (p.ej., HTTP). 3. Hipertexto, para navegar fácilmente entre recursos (p.ej., HTML). Las relaciones entre los tres mecanismos son evidentes a todo lo largo de esta especificación. 2.1.1 Introducción a los URIs Todos los recursos disponibles en la Web -- documentos HTML, imágenes, videoclips, programas, etc. -- tienen una dirección que puede ser codificada mediante un Universal Resource Identifier, o "URI", es decir, un Identificador Universal de Recursos. Los URIs se componen normalmente de tres partes: 1. El esquema de nombres del mecanismo usado para acceder al recurso. 2. El nombre de la máquina que aloja el recurso. 3. El nombre en sí del recurso, dado en forma de "path" o "ruta de acceso". Consideremos el URI que designa la página de Informes Técnicos del W3C: http://www.w3.org/TR Este URI puede leerse de la siguiente manera: Hay un documento disponible a través del protocolo HTTP (ver [RFC2616]), que se encuentra en la máquina www.w3.org, accesible a través de la ruta "/TR". Entre otros esquemas que pueden encontrarse en documentos HTML se incluyen "mailto" para correo electrónico y "ftp" para FTP. Aquí tenemos otro ejemplo de URI. Éste se refiere al buzón de correo electrónico de un usuario: ...aquí va texto... Para cualquier comentario, envíe un mensaje a Jose Chévere. Nota. La mayoría de los lectores estará familiarizado con el término "URL" y no con el término "URI". Los URLs forman un subconjunto del esquema de nombres URI, que es más general. 2.1.2 Identificadores de fragmento Algunos URIs se refieren a una localización dentro de un recurso. Este tipo de URIs termina con un "#" seguido de un identificador de vínculo (llamado identificador de fragmento). Por ejemplo, aquí tenemos un URI que apunta a un vínculo llamando seccion_2: http://algunsitio.com/html/superior.html#seccion_2 2.1.3 URIs relativos Un URI relativo no contiene información sobre el esquema de nombres. Su ruta de acceso se refiere generalmente a un recurso que está en la misma máquina que el documento actual. Los URIs relativos pueden contener indicadores relativos de ruta (p.ej., ".." significa un nivel superior en la jerarquía definida por la ruta de acceso), y puede contener identificadores de fragmento. Los URIs relativos se convierten en URIs completos a partir de un URI base. Como ejemplo de conversión de un URI relativo, supongamos que tenemos el URI base "http://www.acme.com/soporte/intro.html". El URI relativo de la siguiente línea de código de un vínculo hipertextual: Proveedores se expandiría al URI completo "http://www.acme.com/soporte/proveedores.html", mientras que el URI relativo de la siguiente línea de código de una imagen: logo se expandiría al URI completo "http://www.acme.com/iconos/logo.gif". En HTML, los URIs se usan para: - Crear un vínculo a otro documento o recurso (ver elementos A y LINK). - Crear un vínculo a una hoja de estilo o script externos (ver elementos LINK y SCRIPT). - Incluir una imagen, objeto o aplicación en una página (ver elementos IMG, OBJECT, APPLET e INPUT). - Crear un mapa de imágenes (ver elementos MAP y AREA). - Enviar un formulario (ver elemento FORM). - Crear un documento con marcos (ver elementos FRAME e IFRAME). - Citar una referencia externa (ver elementos Q, BLOCKQUOTE, INS y DEL). - Hacer referencia a convenciones de metadatos que describen un documento (ver elemento HEAD). - Designar una imagen de fondo (ver elemento BODY). Este es un uso desaprobado y deberían usarse hojas de estilo en su lugar. Consulte la sección sobre el tipo URI para más información sobre URIs. 2.2 ¿Qué es el HTML? Para publicar información y distribuirla globalmente, se necesita un lenguaje entendido universalmente, una especie de lengua franca de publicación que todas las computadoras puedan comprender potencialmente. El lenguaje de publicación usado por la World Wide Web es el HTML (acrónimo de HyperText Markup Language, Lenguaje para el Formato de Documentos de Hipertexto). El HTML da a los autores las herramientas para: - Publicar documentos en línea con encabezados, textos, tablas, listas, fotos, etc. - Obtener información en línea a través de vínculos de hipertexto, haciendo clic con el botón de un ratón. - Diseñar formularios para realizar transacciones con servicios remotos, para buscar información, hacer reservas, pedir productos, etc. - Incluir hojas de cálculo, videoclips, sonidos, y otras aplicaciones directamente en sus documentos. 2.2.1 Breve historia del HTML El HTML fue desarrollado originalmente por Tim Berners-Lee mientras estaba en el CERN, y fue popularizado por el navegador Mosaic desarrollado en el NCSA. Durante los años 90 ha proliferado con el crecimiento explosivo de la Web. Durante este tiempo, el HTML se ha desarrollado de diferentes maneras. La Web depende de que los autores de páginas Web y las compañías compartan las mismas convenciones de HTML. Esto ha motivado el trabajo colectivo en las especificaciones del HTML. El HTML 2.0 (noviembre de 1995, ver [RFC1866]) fue desarrollado bajo los auspicios de la Internet Engineering Task Force (IETF) para codificar lo que era la práctica común a finales de 1994. HTML+ (1993) y HTML 3.0 (1995, ver [HTML30]) propusieron versiones mucho más ricas de HTML. A pesar de no haber logrado nunca el consenso en las discusiones sobre estándares, estos borradores llevaron a la adopción de un número de nuevas características. Los esfuerzos del Grupo de Trabajo HTML del World Wide Web Consortium para codificar la práctica común en 1996 condujeron a HTML 3.2 (enero de 1997, ver [HTML32]). Los cambios desde HTML 3.2 se resumen en el Apéndice A. La mayoría de las personas están de acuerdo en que los documentos HTML deberían funcionar bien en diferentes navegadores y plataformas. Gracias a la interoperabilidad los proveedores de contenidos reducen gastos, ya que sólo deben desarrollar una versión de cada documento. Si este esfuerzo no se realiza, hay un riesgo mucho mayor de que la Web se convierta en un mundo propietario de formatos incompatibles, que al final acabaría por reducir el potencial comercial de la Web para todos los que forman parte de ella. Cada versión de HTML ha intentado reflejar un consenso cada vez mayor entre los interlocutores de la industria, de modo que no se desperdicien las inversiones hechas por los proveedores de contenidos y que sus documentos no dejen de ser legibles a corto plazo. El HTML ha sido desarrollado con la premisa de que cualquier tipo de dispositivo debería ser capaz de usar la información de la Web: PCs con pantallas gráficas con distintas resoluciones y colores, teléfonos móviles, dispositivos de mano, dispositivos de salida y entrada por voz, computadoras con anchos de banda grandes o pequeños, etc. 2.3 HTML 4 El HTML 4 desarrolla el lenguaje HTML con mecanismos para hojas de estilo, ejecución de scripts, marcos, objetos incluidos, soporte mejorado para texto de derecha a izquierda y direcciones mezcladas, tablas más ricas y mejoras en formularios, ofreciendo mejoras de accesibilidad para personas con discapacidades. El HTML 4.01 es una revisión de HTML 4.0 que corrige errores e introduce algunos cambios desde la revisión anterior. 2.3.1 Internacionalización Esta versión de HTML ha sido diseñada con la ayuda de expertos en el campo de la internacionalización, para que los documentos puedan ser escritos en cualquier idioma y fácilmente transportados por todo el mundo. Esto se ha logrado incorporando la referencia [RFC2070], que trata sobre la internacionalización del HTML. Un paso importante ha sido la adopción del estándar ISO/IEC:10646 (ver [ISO10646]) como el conjunto de caracteres del documento para HTML. Este es el estándar más exhaustivo del mundo relacionado con la representación de caracteres internacionales, dirección del texto, puntuación, y otros aspectos de los idiomas del mundo. HTML ofrece ahora un mayor soporte para diversos lenguajes humanos dentro de un documento. Esto permite un indexado más efectivo de los documentos por parte de los motores de búsqueda, tipografía de mayor calidad, mejor conversión de texto a voz, mejor separación de palabras, etc. 2.3.2 Accesibilidad A medida que la comunidad de la Web crece y sus miembros diversifican sus habilidades, es crucial que las tecnologías subyacentes sean apropiadas para sus fines específicos. El HTML se ha diseñado para hacer las páginas web más accesibles a aquéllos con limitaciones físicas. Los desarrollos de HTML 4 derivados de cuestiones de accesibilidad incluyen: - Mejor distinción entre la estructura y la presentación de un documento, aconsejándose la utilización de hojas de estilo en lugar de elementos y atributos de presentación de HTML. - Mejores formularios, incluyendo la adición de teclas de acceso, la posibilidad de agrupar semánticamente los controles de un formulario, la posibilidad de agrupar las opciones SELECT semánticamente, y los rótulos activos. - La posibilidad de codificar una descripción textual de un objeto incluido (con el elemento OBJECT). - Un nuevo mecanismo de mapas de imágenes en el lado del cliente (el elemento MAP) que permite a los autores integrar vínculos de imagen y de texto. - El requerimiento de que se incluya texto alternativo acompañando a las imágenes dentro del elemento IMG y a los mapas de imágenes dentro del elemento AREA. - Soporte de los atributos title y lang en todos los elementos. - Soporte de los elementos ABBR y ACRONYM. - Un espectro más amplio de medios utilizables por hojas de estilo (tty, braille, etc.). - Tablas mejores, incluyendo títulos, grupos de columnas y mecanismos para facilitar su representación no visual. - Descripciones largas para tablas, imágenes, marcos, etc. Los autores que diseñen páginas pensando en el aspecto de la accesibilidad, no sólo recibirán el agradecimiento de la comunidad preocupada por el tema de la accesibilidad, sino que también se beneficiarán en otros aspectos: los documentos HTML bien diseñados que distingan entre estructura y presentación se adaptarán más fácilmente a las nuevas tecnologías. Nota. Para más información sobre el diseño de documentos HTML accesibles, consúltese en [WAI]. 2.3.3 Tablas El nuevo modelo de tablas de HTML se basa en [RFC1942]. Ahora los autores tienen mayor control sobre la estructura y la presentación (p.ej., grupos de columnas). La posibilidad que tienen los autores de recomendar anchuras para las columnas permite a los agentes de usuario mostrar los datos de la tabla incrementalmente (a medida que los reciben) en lugar de tener que cargar toda la tabla antes de empezar a representarla. Nota. En el momento de escribir esta especificación, algunas herramientas de creación de HTML se basan exhaustivamente en el uso de tablas para dar formato a los documentos, lo cual puede causar fácilmente problemas de accesibilidad. 2.3.4 Documentos compuestos HTML ofrece ahora un mecanismo estándar para incluir objetos genéricos y aplicaciones dentro de documentos HTML. El elemento OBJECT (junto a los antiguos elementos IMG y APPLET, más específicos) proporciona un mecanismo para incluir imágenes, vídeo, sonido, fórmulas matemáticas, aplicaciones especializadas y otros objetos en un documento. También permite a los autores especificar una jerarquía de representaciones alternativas para los agentes de usuario que no soporten una representación específica. 2.3.5 Hojas de estilo Las hojas de estilo simplifican el código HTML y liberan en gran medida al HTML de las responsabilidades de presentación. Esto da tanto a los autores como a los usuarios control sobre la presentación de los documentos: fuentes, alineación, colores, etc. La información de estilo puede especificarse para elementos individuales o para grupos de elementos. La información de estilo puede especificarse en un documento HTML o en hojas de estilo externas. El mecanismo para asociar una hoja de estilo con un documento es independiente del lenguaje de la hoja de estilo. Antes de la llegada de las hojas de estilo, los autores tenían un control limitado sobre la representación. HTML 3.2 incluía un número de atributos y elementos que ofrecían control sobre la alineación, el tamaño de la fuente y el color del texto. Además los autores utilizaban las tablas y las imágenes como medio de organizar la presentación de sus páginas. El tiempo relativamente largo que necesitan los usuarios para actualizar sus navegadores hará que estas características sigan siendo usadas durante algún tiempo. Sin embargo, al ofrecer las hojas de estilo mecanismos de presentación más potentes, el World Wide Web Consortium declarará obsoletos en el futuro muchos de los elementos y atributos de presentación del HTML. A lo largo de esta especificación dichos elementos y atributos se marcan como "desaprobados". Se acompañan con ejemplos de cómo lograr los mismos efectos con otros elementos o con hojas de estilo. 2.3.6 Ejecución de scripts Gracias a los scripts, los autores pueden crear páginas web dinámicas (p.ej., "formularios inteligentes", que reaccionan a medida que los usuarios los rellenan) y utilizar el HTML para crear aplicaciones en red. Los mecanismos proporcionados para incluir scripts en un documento HTML son independientes del lenguaje de programación de los scripts. 2.3.7 Impresión En ocasiones los autores querrán facilitar a los usuarios la impresión de su trabajo, sin limitarse al documento actual. Cuando un documento forme parte de un trabajo mayor, las relaciones entre los documentos pueden describirse mediante el elemento HTML LINK o usando el Resource Description Framework (RDF, Marco de Descripción de Recursos) del W3C (ver [RDF10]). 2.4 Creación de documentos con HTML 4 Recomendamos a los autores e implementadores que sigan los siguientes principios generales cuando trabajen con HTML 4. 2.4.1 Separar estructura y presentación El HTML tiene sus raíces en SGML, que siempre ha sido un lenguaje para la especificación de código estructural. A medida que el HTML madura, un número cada vez mayor de sus elementos y atributos presentacionales ha sido reemplazado por otros mecanismos, en particular las hojas de estilo. La experiencia ha demostrado que separando la estructura de un documento de sus aspectos presentacionales se reduce el coste de servir a un amplio espectro de plataformas, medios, etc. y se facilitan las revisiones del documento. 2.4.2 Considerar la accesibilidad universal a la Web Para hacer la Web más accesible a todos, en especial a aquéllos con discapacidades, los autores deberían considerar cómo pueden representarse sus documentos en diferentes plataformas: navegadores basados en voz, lectores braille, etc. No estamos recomendando a los autores que limiten su creatividad, sólo que consideren representaciones alternativas de sus diseños. El HTML ofrece un número de mecanismos con este fin (p.ej., el atributo alt, el atributo accesskey, etc.) Además de esto, los autores deberían recordar que sus documentos pueden llegar a una audiencia muy lejana con diferentes computadoras y configuraciones. Para que los documentos sean correctamente interpretados, los autores deberían incluir en sus documentos información sobre el idioma natural y la dirección del texto, cómo está codificado el documento, y otras cuestiones relacionadas con la internacionalización. 2.4.3 Ayudar a los agentes de usuario con la representación incremental Mediante un diseño cuidadoso de las tablas y haciendo uso de las nuevas características de las tablas de HTML 4, los autores pueden ayudar a los agentes de usuario a representar los documentos más rápidamente. Los autores pueden aprender a diseñar tablas para su representación incremental (ver elemento TABLE). Los implementadores deberían consultar las notas sobre tablas del apéndice para obtener información sobre algoritmos incrementales. ================================================================================ 3 Sobre SGML y HTML -------------------------------------------------------------------------------- Contenidos 1. Introducción al SGML 2. Estructuras SGML usadas en HTML 1. Elementos 2. Atributos 3. Referencias de caracteres 4. Comentarios 3. Cómo leer el DTD de HTML 1. Comentarios DTD 2. Definiciones de entidades paramétricas 3. Declaraciones de elementos - Definiciones del modelo de contenido 4. Declaraciones de atributos - Entidades DTD en definiciones de atributos - Atributos booleanos -------------------------------------------------------------------------------- Esta sección del documento presenta el SGML y habla sobre su relación con HTML. En el estándar puede encontrarse información completa sobre el SGML (ver [ISO8879]). 3.1 Introducción al SGML El SGML es un sistema para definir lenguajes para dar formato a documentos (markup languages). Los autores utilizan un código de formato (en inglés markup) en sus documentos para representar información estructural, presentacional y semántica junto con el contenido. El HTML es un ejemplo de lenguaje de formato de documentos. Aquí tenemos un ejemplo de un documento HTML: Mi primer documento HTML

¡Hola mundo! Un documento HTML se divide en una sección de cabecera (aquí, entre y ) y un cuerpo (aquí, entre y ). El título del documento aparece en la cabecera (junto con otras informaciones sobre el documento), y el contenido del documento aparece en el cuerpo. El cuerpo de este ejemplo contiene únicamente un párrafo, codificado o marcado como

. Cada lenguaje de formato de documentos definido con SGML se llama aplicación SGML. Una aplicación SGML se caracteriza generalmente por: 1. Una declaración SGML. La declaración SGML especifica qué caracteres y delimitadores pueden aparecer en la aplicación. 2. Una definición del tipo de documento (document type definition, DTD). El DTD define la sintaxis de las estructuras de formato. El DTD puede incluir definiciones adicionales, tales como referencias a entidades de caracteres. 3. Una especificación que describe la semántica que se debe conferir al código de formato. Esta especificación también impone restricciones de sintaxis que no pueden expresarse dentro del DTD. 4. Documentos que contienen datos (contenido) y código (markup). Cada documento contiene una referencia al DTD que debe usarse para interpretarlo. Esta especificación incluye una declaración SGML, tres definiciones del tipo de documento (ver la sección sobre información sobre la versión de HTML para una descripción de las tres), y una lista de referencias de caracteres. 3.2 Estructuras SGML usadas en HTML Las secciones siguientes presentan las estructuras de SGML que se usan en HTML. El apéndice enumera algunas características de SGML que no son soportadas por la mayoría de las herramientas y agentes de usuario HTML y que deberían evitarse. 3.2.1 Elementos Una definición del tipo de documento SGML declara tipos de elementos que representan estructuras o un comportamiento deseado. HTML incluye elementos que representan párrafos, vínculos de hipertexto, listas, tablas, imágenes, etc. Cada declaración de tipo de elemento describe generalmente tres partes: una etiqueta inicial, un contenido y una etiqueta final. El nombre del elemento aparece en la etiqueta inicial (escrita ) y en la etiqueta final (escrita ); obsérvese la barra que precede al nombre del elemento en la etiqueta final. Por ejemplo, las etiquetas inicial y final del tipo de elemento UL delimitan los objetos de una lista:

Algunos tipos de elemento de HTML permiten a los autores omitir las etiquetas finales (p.ej., los tipos de elemento P y LI). Algunos elementos también permiten omitir la etiqueta inicial; por ejemplo, HEAD y BODY. El DTD de HTML indica para cada tipo de elemento si la etiqueta inicial y la etiqueta final son necesarias. Algunos tipos de elemento de HTML no tienen contenido. Por ejemplo, el elemento de salto de línea BR no tiene contenido; su único papel es terminar una línea de texto. Estos elementos vacíos nunca tienen etiquetas finales. La definición del tipo de documento y el texto de la especificación indican si un tipo de elemento es vacío (es decir, si no tiene contenido) o, en caso de que pueda tener contenido, lo que se considera como contenido legal. Para los nombres de los elementos no se distingue nunca entre mayúsculas y minúsculas. Consulte el estándar SGML para más información sobre las reglas que gobiernan a los elementos (p.ej., deben anidarse correctamente, una etiqueta final cierra hasta su etiqueta inicial correspondiente todas las etiquetas iniciales intermedias abiertas (sección 7.5.1.), etc.). Por ejemplo, el siguiente párrafo:

Este es el primer párrafo.

...un elemento en bloque... puede escribirse sin su etiqueta final:

Este es el primer párrafo. ...un elemento en bloque... ya que la etiqueta inicial

es cerrada por el siguiente elemento en bloque. Análogamente, si un párrafo está contenido en un elemento en bloque, como aquí:

Este es el párrafo.

la etiqueta final del elemento en bloque que lo contiene (aquí, ) implica la etiqueta final de la etiqueta inicial

abierta. Los elementos no son etiquetas. Algunas personas se refieren a los elementos como etiquetas (p.ej., "la etiqueta P"). Recuerde que el elemento es una cosa, y la etiqueta (sea la inicial o la final) es otra cosa distinta. Por ejemplo, el elemento HEAD está siempre presente, incluso si tanto la etiqueta inicial de HEAD como la final están ausentes del código. Todos los tipos de elemento declarados en esta especificación se enumeran en el índice de elementos. 3.2.2 Atributos Los elementos pueden tener propiedades asociadas, llamadas atributos, que pueden tener valores (por defecto o asignados por el autor o por un script). Las parejas atributo/valor aparecen antes del ">" final de la etiqueta inicial de un elemento. En la etiqueta inicial de un elemento puede aparecer cualquier número de parejas (legales) atributo/valor, separadas por espacios. Pueden aparecer en cualquier orden. En este ejemplo se establece el atributo id de un elemento H1:

Este es un título identificado gracias al atributo id

Por defecto, SGML requiere que todos los valores de atributo estén delimitados ya sea mediante comillas dobles (ASCII decimal 34) o mediante comillas simples (ASCII decimal 39). Un valor de atributo delimitado por comillas dobles puede contener signos de comillas simples, y viceversa. Los autores también pueden utilizar referencias numéricas de caracteres para representar comillas dobles (") y simples ('). Para las comillas dobles los autores también pueden utilizar la referencia a entidad de caracteres ". En ciertos casos, los autores pueden especificar el valor de un atributo sin ponerlo entre comillas. El valor del atributo sólo puede contener letras (a-z y A-Z), dígitos (0-9), guiones (ASCII decimal 45), puntos (ASCII decimal 46), subguiones (ASCII decimal 95) y dos puntos (ASCII decimal 58). Recomendamos usar comillas incluso cuando sea posible eliminarlas. Para los nombres de atributos no se distingue nunca entre mayúsculas y minúsculas. Para los valores de los atributos en general no se distingue entre mayúsculas y minúsculas. En el manual de referencia se indica, en la definición de cada atributo, si se distingue para su valor entre mayúsculas y minúsculas. Todos los atributos definidos por esta especificación se enumeran en el índice de atributos. 3.2.3 Referencias de caracteres Las referencias de caracteres son nombres simbólicos o numéricos de caracteres que pueden incluirse en un documento HTML. Son útiles para hacer referencia a caracteres usados esporádicamente, o a aquellos que son difíciles o imposibles de introducir con las herramientas de creación. A lo largo de este documento pueden verse referencias de caracteres; comienzan con un signo "&" y terminan con un punto y coma (;). A continuación figuran algunos ejemplos comunes: - "<" representa el signo <. - ">" representa el signo >. - """ representa el signo ". - "å" (en decimal) representa la letra "a" con un pequeño círculo encima. - "И" (en decimal) representa la letra mayúscula cirílica "I". - "水" (en hexadecimal) representa el carácter chino para el agua. Hablaremos con más detalle acerca de las referencias de caracteres en HTML más adelante en la sección sobre el conjunto de caracteres de los documentos HTML. La especificación contiene también una lista de referencias de caracteres que pueden aparecer en documentos HTML 4. 3.2.4 Comentarios Los comentarios en HTML tienen la sintaxis siguiente: No se permite espacio en blanco entre el delimitador de apertura de declaración de etiqueta (""). Un error común es incluir una cadena de guiones ("---") dentro de un comentario. Los autores deberían evitar poner dos o más guiones adyacentes dentro de un comentario. La información que aparece entre comentarios no tiene significado especial (p.ej., las referencias de caracteres no se interpretan como tales). Obsérvese que los comentarios forman parte del código. 3.3 Cómo leer el DTD de HTML En esta especificación, todas las declaraciones de elementos y atributos vienen acompañadas del fragmento correspondiente de la definición del tipo de documento. Hemos optado por incluir en la especificación fragmentos del DTD en lugar de intentar describir las propiedades de un elemento de una forma que sea más abordable, pero más larga y menos precisa. El tutorial que sigue permitirá a los lectores que no estén familiarizados con el SGML leer el DTD y entender los detalles técnicos de la especificación HTML. 3.3.1 Comentarios DTD En los DTDs, los comentarios pueden extenderse a lo largo de una o más líneas. En el DTD, los comentarios están delimitados por un par de marcas "--", p.ej.: Aquí, el comentario "valor de propiedad con nombre" explica el uso del tipo de elemento PARAM. Los comentarios de un DTD son únicamente informativos. 3.3.2 Definiciones de entidades paramétricas El DTD HTML comienza con una serie de definiciones de entidades paramétricas. Una definición de entidad paramétrica define una clase de macro a la que se puede hacer referencia y ser expandida en cualquier otra parte del DTD. Estas macros no pueden aparecer en documentos HTML, sólo en el DTD. Otros tipos de macros, llamadas referencias de caracteres, sí pueden utilizarse en el texto de un documento HTML o dentro de los valores de los atributos. Cuando se hace referencia a una entidad paramétrica por su nombre en el DTD, ésta se expande, sustituyéndose por una cadena. Una definición de entidad paramétrica comienza con la palabra clave de cierre. Las apariciones de entidades paramétricas dentro de un DTD comienzan con un "%", seguido por el nombre de la entidad paramétrica, y finalmente por un ";" opcional. El siguiente ejemplo define la cadena a la que se expandirá la entidad "%fontstyle;". La cadena a la que se expande la entidad paramétrica puede contener otros nombres de entidades paramétricas. Estos nombres se expanden recursivamente. En el siguiente ejemplo, la entidad paramétrica "%inline;" se define de modo que incluya las entidades paramétricas "%fontstyle;", "%phrase;", "%special;" y "%formctrl;". Hay dos entidades DTD que aparecen frecuentemente en el DTD HTML: "%block;" e "%inline;". Se utilizan cuando el modelo de contenido incluye elementos en bloque y elementos en línea, respectivamente (definidos en la sección sobre la estructura global de un documento HTML). 3.3.3 Declaraciones de elementos El grueso del DTD HTML consiste en la declaración de tipos de elementos y sus atributos. La palabra clave la termina. Entre ellos se especifica: 1. El nombre del elemento. 2. Si las etiquetas del elemento son opcionales. Si aparecen dos guiones después del nombre del elemento tanto la etiqueta inicial como la final son obligatorias. Un guión seguido por la letra "O" indica que puede omitirse la etiqueta final. Un par de letras "O" indican que tanto la etiqueta inicial como la final pueden omitirse. 3. Los contenidos del elemento, si los hay. El contenido admitido para un elemento se denomina su modelo de contenido. Los tipos de elemento diseñados de modo que no tengan contenido se llaman elementos vacíos. El modelo de contenido de tales tipos de elemento se declara con la palabra clave "EMPTY". En este ejemplo: - El tipo de elemento declarado es UL. - Los dos guiones indican que tanto la etiqueta inicial son obligatorias para este tipo de elemento. - El modelo de contenido de este tipo de elemento se ha declarado como "al menos un elemento LI". Más adelante se explica cómo especificar los modelos de contenido. Este ejemplo ilustra la declaración de un tipo de elemento vacío: - El tipo de elemento declarado es IMG. - El guión y la "O" que le sigue indican que la etiqueta final puede omitirse, pero eso, junto al modelo de contenido "EMPTY", implica que la etiqueta final debe ser omitida. - La palabra clave "EMPTY" significa que las apariciones de este tipo no deben tener contenido. Definiciones del modelo de contenido El modelo de contenido describe cuál puede ser el contenido de una aparición de un tipo de elemento. Las definiciones del modelo de contenido pueden incluir: - Nombres de los tipos de elementos permitidos o prohibidos (p.ej., el elemento UL contiene apariciones del tipo de elemento LI, y el tipo de elemento P no puede contener otros elementos P). - Entidades DTD (p.ej., el elemento LABEL contiene apariciones de la entidad paramétrica "%inline;"). - Texto de documento (indicado mediante la estructura SGML "#PCDATA"). El texto puede contener referencias de caracteres. Recuérdese que éstas comienzan con & y terminan con un punto y coma (p.ej., "Las aventuras de Astérix" contiene la referencia a la entidad de caracteres del carácter "e con acento agudo"). El modelo de contenido de un elemento se especifica de acuerdo a la sintaxis siguiente. Obsérvese que la lista que sigue es una simplificación de las reglas de sintaxis de SGML y no habla, por ejemplo, de precedencias. ( ... ) Delimita un grupo. A A debe aparecer una sola vez. A+ A debe aparece una o más veces. A? A debe aparecer cero o una veces. A* A puede aparecer cero o más veces. +(A) A puede aparecer. -(A) A no debe aparecer. A | B O bien A o bien B deben aparecer, pero no las dos. A , B Tanto A como B deben aparecer, y en ese orden. A & B Tanto A como B deben aparecer, en cualquier orden. Aquí presentamos algunos ejemplos sacados del DTD de HTML: El elemento UL debe contener uno o más elementos LI. El elemento DL debe contener uno o más elementos DT o DD en cualquier orden. El elemento OPTION sólo puede contener texto y entidades, tales como &. Esto se indica con el tipo de datos de SGML #PCDATA. Algunos tipos de elementos HTML usan una característica adicional de SGML para excluir elementos de su modelo de contenido. Los elementos excluidos van precedidos de un guión, y van al final de la descripción del modelo de contenido. Las exclusiones explícitas prevalecen sobre los elementos permitidos. En este ejemplo, el -(A) significa que el elemento A no puede aparecer en otro elemento A (es decir, los vínculos no pueden estar anidados). Obsérvese que el tipo de elemento A es parte de la entidad paramétrica del DTD "%inline;", pero está excluido explícitamente debido al -(A). Análogamente, la siguiente declaración del tipo de elemento FORM prohíbe los formularios anidados: 3.3.4 Declaraciones de atributos La palabra clave de cierre. Cada definición de atributo es una terna que define: - El nombre del atributo. - El tipo del valor del atributo o un conjunto explícito de valores posibles. Los valores definidos explícitamente por el DTD no distinguen entre mayúsculas y minúsculas. Consulte la sección sobre tipos de datos básicos de HTML para más información sobre tipos de valores de atributos. - Si el valor por defecto del atributo es implícito (palabra clave "#IMPLIED"), en cuyo caso el valor por defecto debe ser porporcionado por el agente de usuario (en algunos casos heredándolo de elementos padre); siempre requerido (palabra clave "#REQUIRED"); o fijo e igual a un valor dado (palabra clave "#FIXED"). Algunas definiciones de atributos especifican explícitamente un valor por defecto para el atributo. En este ejemplo, se define el atributo name para el elemento MAP. El atributo es opcional para este elemento. El tipo de los valores permitidos para el atributo está dado como CDATA, un tipo de datos de SGML. CDATA es texto que puede contener referencias de caracteres. Para más información sobre "CDATA", "NAME", "ID", y otros tipos de datos, consúltese la sección sobre tipos de datos de HTML. Los siguientes ejemplos ilustran varias definiciones de atributos: rowspan NUMBER 1 -- número de filas abarcado por la celda -- http-equiv NAME #IMPLIED -- nombre de encabezado de respuesta HTTP -- id ID #IMPLIED -- identificador único a nivel de documento -- valign (top|middle|bottom|baseline) #IMPLIED El atributo rowspan requiere valores de tipo NUMBER. El valor por defecto está dado explícitamente y es "1". El atributo opcional http-equiv requiere valores de tipo NAME. El atributo opcional id requiere valores de tipo ID. El atributo opcional valign está restringido a los valores del conjunto {top, middle, bottom, baseline}. Entidades DTD en definiciones de atributos Las definiciones de atributos también pueden contener referencias a entidades. En este ejemplo, vemos que la lista de definiciones de atributos para el elemento LINK comienza con la entidad paramétrica "%attrs;". -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Etiqueta inicial: obligatoria, Etiqueta final: prohibida La entidad paramétrica "%attrs;" se define como sigue: -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- La entidad paramétrica "%coreattrs;" de la definición de "%attrs;" se expande como sigue: -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- La entidad paramétrica "%attrs;" se ha definido por conveniencia ya que estos atributos se definen para la mayoría de los tipos de elemento de HTML. Análogamente, el DTD define la entidad paramétrica "%URI;" que se expande a la cadena "CDATA". -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Como se muestra en este ejemplo, la entidad paramétrica "%URI;" proporciona a los lectores del DTD más información sobre el tipo de datos que se espera para un atributo. Se han definido entidades similares para "%Color;", "%Charset;", "%Length;", "%Pixels;", etc. Atributos booleanos Algunos atributos actúan como variables booleanas (p.ej., el atributo selected del elemento OPTION). Su aparición en la etiqueta inicial de un elemento implica que el valor del atributo es "verdadero" ("true"). Su ausencia implica un valor "falso" ("false"). Los atributos booleanos sólo pueden tomar un valor legal: el propio nombre del atributo (p.ej., selected="selected"). Este ejemplo define el atributo selected como un atributo booleano. selected (selected) #IMPLIED -- opción preseleccionada -- El atributo se iguala a "verdadero" si aparece en la etiqueta inicial del elemento: En HTML, los atributos booleanos pueden aparecer en forma minimizada: sólo aparece el valor del atributo en la etiqueta inicial del elemento. Así, puede establecerse selected escribiendo: