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:
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:
...objeto de lista 1...
...objeto de lista 2...
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í:
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:
...contenidos...
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:
en lugar de:
Los autores deberían tener en cuenta que muchos agentes de usuario sólo
reconocen la forma minimizada de los atributos booleanos, y no la forma
completa.
================================================================================
4 Conformidad: requisitos y recomendaciones
--------------------------------------------------------------------------------
Contenidos
1. Definiciones
2. SGML
3. El tipo de contenido text/html
--------------------------------------------------------------------------------
En esta sección comenzamos la especificación de HTML 4, empezando por las
obligaciones de y entre autores, documentos, usuarios y agentes de usuario.
Las palabras clave "DEBE", "NO DEBE", "REQUERIDO", "DEBERÁ", "NO DEBERÁ",
"DEBERÍA", "NO DEBERÍA", "RECOMENDADO", "PUEDE", y "OPCIONAL" de este documento
deben interpretarse como se describe en [RFC2119]. Sin embargo, para facilitar
la lectura, estas palabras no aparecen en mayúsculas en esta especificación.
En ocasiones, los autores de esta especificación recomiendan buena práctica a
autores y agentes de usuario. Estas recomendaciones no son normativas, y la
conformidad con esta especificación no depende de su ejecución. Estas
recomendaciones contienen las expresiones "Recomendamos que...", "Esta
especificación recomienda...", o similares.
4.1 Definiciones
Documento HTML
Un documento HTML es un documento SGML que se atiene a las restricciones de
esta especificación.
Autor
Un autor es una persona o programa que escribe o genera documentos HTML. Una
herramienta de creación es un caso especial de autor, a saber, un programa
que genera HTML.
Recomendamos a los autores que escriban documentos que sean conformes con el
DTD estricto mejor que con otros DTDs definidos por esta especificación.
Consulte la sección sobre información sobre versiones para más detalles sobre
los DTDs definidos en HTML 4.
Usuario
Un usuario es una persona que interactúa con un agente de usuario para ver,
oír, o usar de cualquier otra manera un documento HTML representado.
Agente de usuario HTML
Un agente de usuario HTML es cualquier dispositivo que interprete documentos
HTML. Los agentes de usuario incluyen navegadores visuales (de texto o
gráficos), navegadores no visuales (audio, Braille), robots de búsqueda,
proxies, etc.
Un agente de usuario conforme con HTML 4 es el que cumple las condiciones
obligatorias ("debe") establecidas en esta especificación, incluyendo los
puntos siguientes:
- Un agente de usuario debería evitar imponer límites arbitrarios a la
longitud de los valores literales de los atributos (ver la sección sobre
capacidades en la Declaración de SGML). Para información preliminar sobre
atributos SGML, consúltese la sección sobre definiciones de atributos.
- Un agente de usuario debe asegurarse de que la representación no cambia
por la presencia o la ausencia de etiquetas iniciales o finales cuando el
DTD HTML indique que éstas son opcionales. Véase la sección sobre
definiciones de elementos para información preliminar sobre elementos
SGML.
- Por razones de compatibilidad con versiones anteriores, recomendamos que
las herramientas que interpreten HTML 4 sigan soportando HTML 3.2 (ver
[HTML32]) y HTML 2.0 (ver [RFC1866]).
Condiciones de error
Esta especificación no define cómo deben tratar los agentes de usuario las
condiciones de error generales, incluyendo cómo se comportan los agentes de
usuario cuando encuentran elementos, atributos, valores de atributos o
entidades no especificadas en este documento.
Sin embargo, para un comportamiento recomendado de manejo de errores,
consúltense las notas sobre documentos no válidos.
Desaprobado
Un elemento o atributo desaprobado es aquel que ha quedado anticuado por la
presencia de estructuras nuevas. Los elementos desaprobados se definen en el
manual de referencia en los lugares apropiados, pero claramente marcados como
desaprobados. Los elementos desaprobados pueden declararse obsoletos en
versiones futuras de HTML.
Los agentes de usuario deberían seguir dando soporte a los elementos
desaprobados por razones de compatibilidad con versiones anteriores.
Las definiciones de elementos y atributos indican claramente cuáles son
desaprobados.
Esta especificación incluye ejemplos que ilustran cómo evitar el uso de
elementos desaprobados. En la mayoría de los casos estos ejemplos dependen de
que el agente de usuario soporte hojas de estilo. En general, los autores
deberían usar hojas de estilo para lograr efectos estilíticos y de formato
depresentación en lugar de utilizar atributos presentacionales de HTML. Los
atributos de presentación de HTML han sido desaprobados cuando existen
alternativas con hojas de estilo (véase, por ejemplo, [CSS1]).
Obsoleto
Un elemento o atributo obsoleto es aquél para el cual no hay garantía de
soporte por parte de un agente de usuario. Los elementos obsoletos han dejado
de estar definidos en la especificación, pero se enumeran por motivos
históricos en la sección de cambios del manual de referencia.
4.2 SGML
El HTML 4 es una aplicación SGML conforme al Estándar Internacional ISO 8879 --
Standard Generalized Markup Language SGML (definido en [ISO8879]).
Los ejemplos del texto son conformes a la definición del tipo de documento
estricta a menos que el ejemplo en cuestión se refiera a elementos o atributos
definidos sólo por la definición del tipo de documento transicional o por la
definición del tipo de documento con marcos. En pos de la brevedad, la mayoría
de los ejemplos de esta especificación no comienzan con la declaración del tipo
de documento que es obligatoria al principio de todo documento HTML.
Los fragmentos de DTD de las definiciones de los elementos están sacados de la
definición del tipo de documento estricta excepto para los elementos
relacionados con marcos.
Consulte la sección sobre información sobre versiones de HTML para detalles
sobre cuándo usar el DTD estricto, el transicional o el de documentos con
marcos.
Los comentarios que aparecen en el DTD de HTML 4 no tienen valor normativo; sólo
son informativos.
Los agentes de usuario no deben representar instrucciones de procesamiento SGML
(p.ej., ) ni comentarios. Para más información sobre éstas y otras
características de SGML que pueden ser legales en HTML pero que no son
generalmente soportadas por agentes de usuario, consulte la sección sobre
características de SGML con soporte limitado.
4.3 El tipo de contenido text/html
Los documentos HTML se envían por Internet como una secuencia de bytes
acompañada de información de codificación (descrita en la sección sobre
codificaciones de caracteres). La estructura de la transmisión, denominada
entidad de mensaje, está definida por [RFC2045] y [RFC2616]. Una entidad de
mensaje con un tipo de contenido "text/html" representa un documento HTML.
El tipo de contenido para los documentos HTML se define como sigue:
Nombre del tipo de contenido (Content type name):
text
Nombre del subtipo de contenido (Content subtype name):
html
Parámetros obligatorios:
ninguno
Parámetros opcionales:
charset
Consideraciones de codificación:
se permite cualquier codificación
Consideraciones de seguridad:
Véanse las notas sobre seguridad
El parámetro opcional "charset" se refiere a la codificación de caracteres usada
para representar el documento HTML como una secuencia de bytes. Los valores
legales para este parámetro están definidos en la sección sobre codificaciones
de caracteres. Aunque este parámetro es opcional, recomendamos que esté siempre
presente.
================================================================================
5 Representación de Documentos HTML
--------------------------------------------------------------------------------
Contenidos
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
--------------------------------------------------------------------------------
En este capítulo hablamos sobre cómo se representan los documentos HTML en una
computadora y en Internet.
La sección sobre el conjunto de caracteres del documento trata la cuestión de
qué caracteres abstractos pueden formar parte de un documento HTML. Estos
caracteres incluyen la letra latina "A", la letra cirílica "I", el carácter
chino que significa "agua", etc.
La sección sobre las codificaciones de caracteres trata la cuestión de cómo
pueden representarse esos caracteres en un fichero o cuando se transmiten por
Internet. Como algunas codificaciones de caracteres no pueden representar
directamente todos los caracteres que un autor puede querer incluir en un
documento, HTML ofrece otros mecanismos, llamados referencias de caracteres,
para hacer referencia a cualquier carácter.
Al haber un gran número de caracteres en todos los lenguajes humanos, y una gran
variedad de formas de representar estos caracteres, debe tenerse un cuidado
especial para que los documentos puedan ser entendidos por agentes de usuario de
todo el mundo.
5.1 El Conjunto de Caracteres del Documento
Para promover la interoperabilidad, SGML requiere que cada aplicación
(incluyendo al HTML) especifique su conjunto de caracteres del documento. Un
conjunto de caracteres del documento consiste en:
- Un Repertorio : Un conjunto de caracteres abstractos, tales como la letra
latina "A", la letra cirílica "I", el carácter chino que significa "agua",
etc.
- Posiciones de códigos: Un conjunto de referencias enteras a los caracteres
del repertorio.
Cada documento SGML (incluidos los documentos HTML) es una secuencia de
caracteres del repertorio. Los sistemas informáticos identifican cada carácter
según la posición de su código; por ejemplo, en el conjunto de caracteres ASCII,
las posiciones de los códigos 65, 66 y 67 se refieren a los caracteres 'A', 'B'
y 'C' respectivamente.
El conjunto de caracteres ASCII no es suficiente para un sistema de información
global como la Web, de modo que HTML usa un conjunto de caracteres mucho más
completo llamado Conjunto Universal de Caracteres (Universal Character Set,
UCS), definido en [ISO10646]. Este estándar define un repertorio de miles de
caracteres usados por comunidades de todo el mundo.
El conjunto de caracteres definido en [ISO10646] es equivalente carácter por
carácter a Unicode ([UNICODE]). Ambos estándares se actualizan de vez en cuando
con nuevos caracteres, y las correcciones deberían consultarse en los sitios web
respectivos. En la especificación actual, se utiliza "[ISO10646]" para hacer
referencia al conjunto de caracteres del documento, mientras que "[UNICODE]" se
reserva para hacer referencia al algoritmo de texto bidireccional de Unicode.
El conjunto de caracteres del documento no es suficiente, sin embargo, para
permitir a los agentes de usuario interpretar correctamente los documentos HTML
del modo en que éstos se intercambian normalmente: codificados como una
secuencia de bytes en un fichero o durante una transmisión en red. Los agentes
de usuario deben conocer además la codificación de caracteres específica que fue
usada para transformar el flujo de caracteres del documento en un flujo de
bytes.
5.2 Codificaciones de caracteres
Lo que en esta especificación se denomina codificación de caracteres se conoce
con nombres diferentes en otras especificaciones (lo cual puede causar cierta
confusión). Sin embargo, el concepto es básicamente el mismo en todo Internet.
Asimismo, las cabeceras, atributos y parámetros del protocolo que se refieren a
la codificación de caracteres comparten todos el mismo nombre -- "charset" -- y
usan los mismos valores del registro [IANA] (ver [CHARSETS] para una lista
completa).
El parámetro "charset" identifica una codificación de caracteres, que es un
método para convertir una secuencia de bytes en una secuencia de caracteres.
Esta conversión se adapta naturalmente al modo de funcionamiento de la Web: los
servidores envían los documentos HTML a los agentes de usuario como un flujo de
bytes; los agentes de usuario los interpretan como un flujo de caracteres. El
método de conversión puede ir desde una correspondencia simple uno a uno hasta
complejos algoritmos o procesos de intercambio.
Una técnica simple de codificación uno a uno no es suficiente para cadenas de
texto con un repertorio tan amplio como el de [ISO10646]. Hay varias
codificaciones diferentes de partes de [ISO10646] además de codificaciones del
conjunto completo de caracteres (como por ejemplo UCS-4).
5.2.1 Elección de una codificación
Las herramientas de creación (p.ej., editores de texto) pueden codificar
documentos HTML con una codificación de caracteres de su elección, y dicha
elección depende en gran medida de las convenciones usadas por el software del
sistema. Estas herramientas pueden emplear cualquier codificación que cubra
convenientemente la mayor parte de los caracteres contenidos en el documento,
suponiendo que la codificación esté etiquetada correctamente. Algunos caracteres
se saldrán fuera de esta codificación, pero aún pueden seguir siendo
representados mediante referencias de caracteres. Éstas siempre hacen referencia
al conjunto de caracteres del documento, no a la codificación de caracteres.
Los servidores y los proxies pueden cambiar la codificación de caracteres (la
llamada transcodificación) en tiempo real para atender a las demandas de los
agentes de usuario (véase la sección 14.2 sobre [RFC2616], el encabezado de
petición HTTP "Accept-Charset"). Los servidores y los proxies no tienen por qué
servir un documento con una codificación de caracteres que cubra el conjunto
completo de caracteres del documento.
Las codificaciones de caracteres usadas normalmente en la Web incluyen la
ISO-8859-1 (también llamada "Latin-1"; utilizable para la mayor parte de los
idiomas de Europa occidental), la ISO-8859-5 (que soporta el alfabeto cirílico),
la SHIFT_JIS (una codificación japonesa), la EUC-JP (otra codificación
japonesa), y la UTF-8 (una codificación de ISO 10646 que utiliza un número
diferente de bytes para distintos caracteres). En los nombres de las
codificaciones no se distingue entre mayúsculas y minúsculas, así que por
ejemplo "SHIFT_JIS", "Shift_JIS", y "shift_jis" son equivalentes.
Esta especificación no dicta qué codificaciones de caracteres debe soportar un
agente de usuario.
Los agentes de usuario conformes deben transformar correctamente a ISO 10646
todos los caracteres de todas las codificaciones de caracteres que reconozcan (o
deben comportarse como si lo hicieran).
Notas sobre codificaciones específicas
Cuando un texto HTML se transmite en UTF-16 (charset=UTF-16), los datos de texto
deberían transmitirse con el orden de bytes de la red ("big-endian", el byte de
mayor peso primero) de acuerdo con [ISO10646], Sección 6.3 y [UNICODE], cláusula
C3, página 3-1.
Además, para maximizar la probabilidad de una interpretación correcta, se
recomienda que los documentos transmitidos como UTF-16 empiecen siempre con un
carácter de ESPACIO NO SEPARABLE DE ANCHURA ZERO (ZERO-WIDTH NON-BREAKING SPACE,
hexadecimal FEFF, también llamado Byte Order Mark, BOM) que, al invertirse los
bytes, se convierte en el hexadecimal FFFE, un carácter que nunca será asignado.
De este modo, un agente de usuario que reciba un hexadecimal FFFE como los
primeros bytes de un texto sabrá que los bytes deben ser invertidos para el
resto del texto.
El formato de transformación UTF-1 de [ISO10646] (registrado por IANA como
ISO-10646-UTF-1), no debería utilizarse. Para información sobre ISO 8859-8 y el
algoritmo bidireccional, consúltese la sección sobre bidireccionalidad y
codificación de caracteres.
5.2.2 Especificación de la codificación de caracteres
¿Cómo determina un servidor qué codificación de caracteres se aplica a un
documento que está sirviendo? Algunos servidores examinan los primeros bytes del
documento, o comprueban una base de datos de ficheros conocidos y sus
codificaciones. Muchos servidores modernos dan a los administradores de páginas
web más control sobre la configuración de la codificación que los servidores
antiguos. Los administradores de páginas deberían usar estos mecanismos para
enviar un parámetro "charset" siempre que sea posible, pero con cuidado de no
identificar un documento con un valor del parámetro "charset" equivocado.
¿Cómo sabe un agente de usuario qué codificación de caracteres ha sido
utilizada? El servidor debería proporcionar esta información. La manera más
directa que tiene un servidor para informar al agente de usuario sobre la
codificación de caracteres del documento es utilizando el parámetro "charset"
del campo "Content-Type" de encabezado del protocolo HTTP ([RFC2616], secciones
3.4 y 14.17). Por ejemplo, el siguiente encabezado HTTP anuncia que la
codificación de caracteres es EUC-JP:
Content-Type: text/html; charset=EUC-JP
Consulte la sección sobre conformidad para la definición de text/html.
El protocolo HTTP ([RFC2616], sección 3.7.1) menciona ISO-8859-1 como la
codificación de caracteres por defecto cuando el parámetro "charset" esté
ausente del campo de encabezado "Content-Type". En la práctica, esta
recomendación ha resultado ser inútil, ya que algunos servidores no permiten que
se envíe un parámetro "charset", y otros pueden no estar configurados para
enviar el parámetro. Por lo tanto, los agentes de usuario no deben suponer
ningún valor por defecto para el parámetro "charset".
Para tener en cuenta las limitaciones de los servidores o de sus
configuraciones, los documentos HTML pueden incluir información explícita sobre
la codificación de caracteres del documento; el elemento META puede utilizarse
para proporcionar esta información a los agentes de usuario.
Por ejemplo, para especificar que la codificación de caracteres del documento
actual es "EUC-JP", un documento debería incluir la siguiente declaración META:
La declaración META sólo debe utilizarse cuando la codificación de caracteres se
organice de modo que los bytes con valores ASCII correspondan a caracteres ASCII
(al menos hasta que se interprete el elemento META). Las declaraciones META
deberían aparecer lo antes posible dentro del elemento HEAD.
Para aquellos casos en que ni el protocolo HTTP ni el elemento META proporcionen
información sobre la codificación de caracteres de un documento, HTML también
proporciona el atributo charset para varios elementos. Combinando todos estos
mecanismos, un autor puede asegurarse bastante de que cuando el usuario reciba
un recurso, el agente de usuario reconocerá la codificación de caracteres.
En resumen, los agentes de usuario conformes deben tener en cuenta las
siguientes prioridades a la hora de determinar la codificación de caracteres de
un documento (de prioridad más alta a más baja):
1. Un parámetro "charset" HTTP en un campo "Content-Type".
2. Una declaración META con "http-equiv" establecido en "Content-Type" y un
valor dado para "charset".
3. El atributo charset establecido en un elemento que designe un recurso
externo.
Además de esta lista de prioridades, el agente de usuario puede usar una
heurística y las preferencias del usuario. Por ejemplo, un agente de usuario
puede utilizar una heurística para distinguir entre las varias codificaciones
utilizadas para textos en japonés. Además, los agentes de usuario tienen
normalmente una codificación de caracteres local por defecto y definible por el
usuario, que pueden aplicar en ausencia de otros indicadores.
Los agentes de usuario pueden proporcionar un mecanismo que permita a los
usuarios invalidar información incorrecta sobre el "charset". Sin embargo, si un
agente de usuario ofrece este mecanismo, sólo debería hacerlo para navegar y no
para editar, para evitar la creación de páginas web con un parámetro "charset"
incorrecto.
Nota. Si, para una aplicación específica, es absolutamente necesario referirse a
caracteres que estén fuera de [ISO10646], estos caracteres deberían asignarse a
una zona privada para evitar conflictos con versiones presentes o futuras del
estándar. De todos modos, esto no se recomienda en absoluto, por motivos de
portabilidad.
5.3 Referencias de caracteres
Una codificación de caracteres dada puede no ser capaz de expresar todos los
caracteres del conjunto de caracteres del documento. Para tales codificaciones,
o cuando las configuraciones de hardware o de software no permitan a los
usuarios introducir algunos caracteres del documento directamente, los autores
pueden usar referencias de caracteres SGML. Las referencias de caracteres son un
mecanismo independiente de la codificación de caracteres para introducir
cualquier carácter del conjunto de caracteres del documento.
Las referencias de caracteres en HTML pueden aparecer de dos maneras:
- Referencias numéricas de caracteres (bien decimales, bien hexadecimales).
- Referencias a entidades de caracteres.
Las referencias de caracteres dentro de comentarios no tienen significado
especial; sólo son datos para comentar.
Nota. HTML proporciona otros modos de presentar datos de caracteres, en
particular imágenes en línea.
Nota. En SGML, es posible eliminar el ";" final de una referencia de caracteres
en algunos casos (p.ej., en un salto de línea o inmediatamente antes de una
etiqueta). En otras circunstancias no puede ser eliminado (p.ej., en medio de
una palabra). Recomendamos encarecidamente utilizar el ";" en todos los casos
para evitar problemas con agentes de usuario que requieran que este carácter
esté presente.
5.3.1 Referencias numéricas de caracteres
Las referencias numéricas de caracteres especifican la posición del código de un
carácter en el conjunto de caracteres del documento. Las referencias numéricas
de caracteres pueden tener dos formas:
- La sintaxis "D;", donde D es un número decimal, se refiere al carácter de
ISO 10646 con el número decimal D.
- La sintaxis "H;" o "H;", donde H es un número hexadecimal, se refiere
al carácter de ISO 10646 con el número hexadecimal H. Para los números
hexadecimales de referencias de caracteres numéricas no se distingue entre
mayúsculas y minúsculas.
A continuación se muestran algunos ejemplos de referencias numéricas de
caracteres:
- å (en decimal) representa la letra "a" con un circulito encima (usada,
por ejemplo, en noruego).
- å (en hexadecimal) representa el mismo carácter.
- å (en hexadecimal) representa también el mismo carácter.
- И (en decimal) representa la letra mayúscula cirílica "I".
- 水 (en hexadecimal) representa el carácter chino para "agua".
Nota. Aunque la representación hexadecimal no se define en [ISO8879], se espera
que lo esté en la revisión, como se describe en [WEBSGML]. Esta convención es
particularmente útil ya que los estándares de caracteres suelen utilizar
representaciones hexadecimales.
5.3.2 Referencias a entidades de caracteres
Para que los autores tengan una manera más intuitiva de referirse a caracteres
del conjunto de caracteres del documento, HTML ofrece un conjunto de referencias
a entidades de caracteres. Las referencias a entidades de caracteres utilizan
nombres simbólicos para que los autores no tengan que recordar posiciones de
código. Por ejemplo, la referencia a la entidad de caracteres å se refiere
a la letra minúscula "a" con un anillo ("ring") encima; "å" es más fácil
de recordar que å.
HTML 4 no define una referencia a entidades de caracteres para cada carácter del
conjunto de caracteres del documento. Por ejemplo, no hay referencia a entidades
de caracteres para la letra mayúscula cirílica "I". Consulte la lista completa
de referencias de caracteres definidas en HTML 4.
Las referencias a entidades de caracteres sí distinguen entre mayúsculas y
minúsculas. Así, Å se refiere a un carácter diferente (A mayúscula con
anillo) que å (a minúscula con anillo).
Hay cuatro referencias a entidades de caracteres que merecen mención especial,
ya que se usan frecuentemente para transformar ciertos caracteres especiales en
secuencias de escape:
- "<" representa el signo <.
- ">" representa el signo >.
- "&" representa el signo &.
- "" representa el signo ".
Los autores que quieran poner el carácter "<" en el texto deberían usar "<"
(ASCII decimal 60) para evitar la posible confusión con el comienzo de una
etiqueta (delimitador de apertura de etiqueta inicial). Análogamente, los
autores deberían usar ">" (ASCII decimal 62) en el texto en lugar de ">" para
evitar problemas con agentes de usuario antiguos que lo interpretan
incorrectamente como el final de una etiqueta (delimitador de cierre de una
etiqueta) cuando aparece dentro de valores de atributos entrecomillados.
Los autores deberían usar "&" (ASCII decimal 38) en lugar de "&" para evitar
la confusión con el comienzo de una referencia de caracteres (delimitador de
apertura de una referencia a entidades). Los autores deberían usar también
"&" en valores de atributos, ya que las referencias de caracteres están
permitidas dentro de valores de atributos CDATA.
Algunos autores usan la referencia a entidades de caracteres """ para
codificar las comillas dobles ("), ya que este carácter puede utilizarse para
delimitar los valores de los atributos.
5.4 Caracteres no representables
Un agente de usuario puede no ser capaz de representar correctamente todos los
caracteres de un documento, por ejemplo, porque el agente de usuario carezca de
una fuente apropiada, porque un carácter tenga un valor que no pueda expresarse
con la codificación de caracteres interna del agente de usuario, etc.
Al haber tantas cosas diferentes que pueden hacerse en estos casos, este
documento no prescribe ningún comportamiento por defecto. Dependiendo de la
implementación, los caracteres no representables pueden también ser tratados por
el sistema de presentación subyacente y no por la propia aplicación. En ausencia
de un comportamiento más sofisticado, por ejemplo a medida de las necesidades de
un script o lenguaje particular, recomendamos el siguiente comportamiento a los
agentes de usuario:
1. Adoptar un mecanismo claramente visible, pero no molesto, para alertar al
usuario sobre los recursos ausentes.
2. Si los caracteres no disponibles se presentan usando su representación
numérica, usar la forma hexadecimal (no la decimal), ya que ésta es la forma
utilizada en los estándares de conjuntos de caracteres.
================================================================================
6 Tipos de datos básicos de HTML
--------------------------------------------------------------------------------
Contenidos
1. Mayúsculas y minúsculas
2. Tipos básicos de SGML
3. Cadenas de texto
4. URIs
5. Colores
1. Notas sobre el uso de colores
6. Longitudes
7. Tipos de contenido (tipos MIME)
8. Códigos de idioma
9. Codificaciones de caracteres
10. Caracteres individuales
11. Fechas y horas
12. Tipos de vínculos
13. Descriptores de medios
14. Datos de scripts
15. Datos de hojas de estilo
16. Nombres de marcos destino
--------------------------------------------------------------------------------
Esta sección de la especificación describe los tipos básicos de datos que pueden
aparecer como contenido de un elemento o valor de un atributo.
Para información preliminar sobre cómo leer el DTD HTML, consulte el tutorial de
SGML.
6.1 Mayúsculas y minúsculas
En la definición de cada atributo se incluye información sobre la importancia
que tiene para sus valores la distinción entre mayúsculas y minúsculas. Esta
información se presenta de acuerdo con la siguiente leyenda:
CS
El valor distingue entre mayúsculas y minúsculas (es decir, los agentes de
usuario interpretan "a" y "A" de manera diferente).
CI
El valor no distingue entre mayúsculas y minúsculas (es decir, los agentes de
usuario interpretan "a" igual que "A").
CN
No puede haber diferencias entre mayúsculas y minúsculas, p.ej., porque es un
número o un carácter del conjunto de caracteres del documento.
CA
La definición del elemento o atributo ya da la información sobre la
distinción entre mayúsculas y minúsculas.
CT
Consultar la definición del tipo para detalles sobre la distinción entre
mayúsculas y minúsculas.
Si el valor de un atributo es una lista, estas claves se aplican a todos los
valores de la lista, a menos que se indique lo contrario.
6.2 Tipos básicos de SGML
La definición del tipo de documento especifica la sintaxis de los contenidos de
los elementos y los valores de los atributos de HTML por medio de palabras
(tokens) SGML (p.ej., PCDATA, CDATA, NAME, ID, etc.). Véase [ISO8879] para sus
definiciones completas. Lo que sigue es un resumen de la información
fundamental:
- CDATA es una secuencia de caracteres tomados del conjunto de caracteres del
documento y puede incluir entidades de caracteres. Los agentes de usuario
deberían interpretar los valores de atributos como sigue:
- Reemplazar las entidades de caracteres con caracteres,
- Ignorar los avances de línea,
- Reemplazar cada retorno de carro o tabulación con un espacio simple.
Los agentes de usuario pueden ignorar el espacio en blanco inicial o final de
valores de atributos CDATA (p.ej., " mivalor " puede interpretarse como
"mivalor"). Los autores no deberían declarar valores de atributos con
espacios en blanco al principio o al final.
Para algunos atributos de HTML 4 con valores de atributo CDATA, la
especificación impone restricciones más fuertes al conjunto de valores
legales para el atributo, restricciones que no pueden expresarse por el DTD.
Aunque los elementos STYLE y SCRIPT usan CDATA para su modelo de datos, para
estos elementos los agentes de usuario deben tratar CDATA de manera
diferente. El código y las entidades deben tratarse como texto sin formato y
pasarse a la aplicación tal y como están. La primera aparición de la
secuencia de caracteres "" (delimitador de apertura de etiqueta final) se
trata como si finalizara el contenido del elemento. En documentos válidos,
esta sería la etiqueta final del elemento.
- Las palabras ID y NAME deben comenzar con una letra ([A-Za-z]) que puede
estar seguida por un número cualquiera de letras, dígitos, ([0-9]), guiones
("-"), subguiones ("_"), dos puntos (":"), y puntos (".").
- IDREF e IDREFS son referencias a palabras ID definidas por otros atributos.
IDREF es una palabra simple e IDREFS es una lista de palabras separadas por
espacios.
- Las palabras NUMBER deben contener al menos un dígito ([0-9]).
6.3 Cadenas de texto
Ciertos atributos (%Text; en el DTD) toman por valor un texto que se supone debe
ser "legible por humanos". Para información preliminar sobre atributos, consulte
la parte del tutorial sobre atributos.
6.4 URIs
Esta especificación utiliza el término URI tal y como se define en [URI] (ver
también [RFC1630]).
Obsérvese que los URIs incluyen a los URLs (según se definen en [RFC1738] y
[RFC1808]).
Los URIs relativos se convierten en URIs completos a partir de un URI base. La
[RFC1808], sección 3, define el algoritmo normativo para este proceso. Para más
información sobre URIs base, consulte la sección sobre URIs base en el capítulo
sobre vínculos.
Los URIs se representan en el DTD con la entidad paramétrica %URI;.
En general los URIs hacen distinción entre mayúsculas y minúsculas. Puede haber
URIs, o partes de URIs, donde la diferencia no importe (p.ej., nombres de
máquinas), pero la identificación de éstas puede no ser fácil. Los usuarios
deberían considerar que en los URIs se distingue siempre entre mayúsculas y
minúsculas (para quedarse del lado de la seguridad).
Consulte el apéndice para información sobre caracteres no ASCII en valores de
atributos URI.
6.5 Colores
El tipo de valor de atributo "color" (%Color;) se refiere a las definiciones de
colores según se especifican en [SRGB]. Un valor de color puede ser o bien un
número hexadecimal (anteponiendo un signo "#") o uno de los siguientes dieciséis
nombres de colores. En los nombres de colores no se distingue entre mayúsculas y
minúsculas.
Nombres de colores y valores sRGB
Black = "#000000" (Negro)
Silver = "#C0C0C0" (Plateado)
Gray = "#808080" (Gris)
White = "#FFFFFF" (Blanco)
Maroon = "#800000" (Marrón)
Red = "#FF0000" (Rojo)
Purple = "#800080" (Púrpura)
Fuchsia = "#FF00FF" (Fucsia)
Green = "#008000" (Verde)
Lime = "#00FF00" (Verde lima)
Olive = "#808000" (Verde oliva)
Yellow = "#FFFF00" (Amarillo)
Navy = "#000080" (Azul marino)
Blue = "#0000FF" (Azul)
Teal = "#008080" (Azul verdoso)
Aqua = "#00FFFF" (Celeste)
Así, los valores de color "#800080" y "Purple" se refieren ambos al color
púrpura.
6.5.1 Notas sobre el uso de colores
Aunque los colores pueden añadir cantidades significativas de información a los
documentos y hacerlos más legibles, considere las siguientes pautas cuando
incluya color en sus documentos:
- El uso de elementos y atributos HTML para especificar colores está
desaprobado. Se aconseja utilizar hojas de estilo en su lugar.
- No utilice combinaciones de colores que puedan causar problemas a personas
con dificultades para distinguir colores.
- Si usa una imagen de fondo o establece un color de fondo, asegúrese de que
establece también los colores de los distintos textos.
- Los colores especificados con los elementos BODY y FONT y con bgcolor en las
tablas tienen apariencias diferentes en plataformas diferentes (p.ej.,
estaciones de trabajo, Macs, Windows, y paneles LCD frente a CRTs), por lo
que no debería basar un efecto específico completamente en ellos. En el
futuro, el soporte del modelo de color [SRGB] junto con los perfiles de color
ICC debería mitigar este problema.
- Cuando sea posible, adopte las convenciones comunes para evitar confusiones.
6.6 Longitudes
HTML especifica tres tipos de valores de longitud para los atributos:
1. Píxeles (Pixels): El valor (%Pixels; en el DTD) es un entero que representa
un número de píxeles del lienzo (papel, pantalla). Así, el valor "50"
significa cincuenta píxeles. Para información normativa sobre la definición
de un píxel, consulte [CSS1].
2. Longitud (Length): El valor (%Length; en el DTD) puede ser o bien un %Pixel;
o bien un porcentaje del espacio horizontal o vertical disponible. Así, el
valor "50%" significa la mitad del espacio disponible.
3. Multilongitud (MultiLength): El valor (%MultiLength; en el DTD) puede ser un
%Length; o una longitud relativa . Una longitud relativa tiene la forma
"i*", donde "i" es un entero. Los agentes de usuario, cuando reparten
espacio entre los elementos que compiten por ese espacio, adjudican primero
las longitudes en píxeles y en porcentajes, y después dividen el espacio
sobrante entre las longitudes relativas. Cada longitud relativa recibe una
porción del espacio disponible que es proporcional al entero que precede al
"*". El valor "*" es equivalente a "1*". Así, si hay disponibles 60 píxeles
de espacio después de haber adjudicado el agente de usuario el espacio en
píxeles y en porcentajes, y las longitudes relativas que deben asignarse son
"1*", "2*" y "3*", se asignarán 10 píxeles al 1*, 20 píxeles al 2* y 30
píxeles al 3*.
Los valores de longitud son neutros frente a la distinción entre mayúsculas y
minúsculas.
6.7 Tipos de contenido (tipos MIME)
Nota. Un "media type" o "tipo de medios" (definido en [RFC2045] y [RFC2046])
especifica la naturaleza de un recurso vinculado. Esta especificación emplea el
término "content type" ("tipo de contenido") en lugar de "media type" (tipo de
medios) de acuerdo con el uso actual. Además de esto, en esta especificación,
"media type" se puede referir a los medios en que un agente de usuario
representa un documento.
Este tipo está representado en el DTD por %ContentType;.
Los tipos de contenido no hacen distinción entre masyúculas y minúsculas.
Ejemplos de tipos de contenido son "text/html", "image/png", "image/gif",
"video/mpeg", "text/css", y "audio/basic". Para la lista de tipos MIME
registrados, consulte [MIMETYPES].
6.8 Códigos de idioma
El valor de los atributos cuyo tipo es un código de idioma (%LanguageCode; en el
DTD) se refiere a un código de idioma de los especificados en [RFC1766], sección
2. Para información sobre especificación de códigos de idioma en HTML, consulte
la sección sobre códigos de idioma. No se permite espacio en blanco dentro del
código de idioma.
Los códigos de idioma no distinguen entre mayúsculas y minúsculas.
6.9 Codificaciones de caracteres
Los atributos "charset" (%Charset; en el DTD) se refieren a una codificación de
caracteres según se describe en la sección sobre codificaciones de caracteres.
Los valores deben ser cadenas (p.ej., "euc-jp") del registro IANA (ver
[CHARSETS] para una lista completa).
Los nombres de codificaciones de caracteres no distinguen entre mayúsculas y
minúsculas.
Los agentes de usuario deben seguir los pasos descritos en la sección sobre
especificación de codificaciones de caracteres para determinar la codificación
de caracteres de un recurso externo.
6.10 Caracteres individuales
Ciertos atributos necesitan un carácter individual del conjunto de caracteres
del documento. Estos atributos son del tipo %Character; en el DTD.
Los caracteres individuales pueden especificarse mediante referencias de
caracteres (p.ej., "&").
6.11 Fechas y horas
La [ISO8601] permite muchas opciones y variaciones en la representación de
fechas y horas. La especificación actual usa uno de los formatos descritos en el
perfil [DATETIME] para la definición de cadenas fecha/hora legales (%Datetime;
en el DTD).
El formato es:
AAAA-MM-DDThh:mm:ssDZH
donde:
AAAA = año con cuatro dígitos
MM = mes con dos dígitos (01=enero, etc.)
DD = día del mes con dos dígitos (de 01 a 31)
hh = hora con dos dígitos (de 00 a 23) (NO se permite am/pm)
mm = minuto con dos dígitos (00 a 59)
ss = segundo con dos dígitos (00 a 59)
DZH = desginador de zona horaria
El designador de zona horaria es uno de los siguientes:
Z
indica UTC (Coordinated Universal Time, Tiempo Universal Coordinado). La "Z"
debe ser mayúscula.
+hh:mm
indica que la hora es una hora local que está hh horas y mm minutos por
delante del UTC.
-hh:mm
indica que la hora es una hora local que está hh horas y mm minutos por
detrás del UTC.
Deben estar presentes exactamente los componentes mostrados aquí, y exactamente
con esta puntuación. Obsérvese que la letra "T" aparece literalmente en la
cadenas (debe ser mayúscula), para indicar el comienzo de la hora, según se
especifica en [ISO8601]
Si una aplicación generadora no conoce la hora con precisión de segundos, puede
usar el valor "00" para los segundos (y para los minutos y para las horas si es
necesario).
Nota. [DATETIME] no trata la cuestión de segundos bisiestos.
6.12 Tipos de vínculos
Los autores pueden usar los siguientes tipos de vínculos reconocidos, enumerados
aquí junto con sus interpretaciones convencionales. En el DTD, %LinkTypes; se
refiere a una lista de tipos de vínculos separados por espacios. No se permiten
caracteres de espacio en blanco dentro de los tipos de vínculo.
Estos tipos de vínculo no hacen distinción entre mayúsculas y minúsculas, es
decir, "Alternate" tiene el mismo significado que "alternate".
Los agentes de usuario, los motores de búsqueda, etc. pueden interpretar estos
tipos de vínculos de diferentes maneras. Por ejemplo, los agentes de usuario
podrían proporcionar acceso a los documentos vinculados por medio de una barra
de navegación.
Alternate
Designa una versión alternativa del documento en que aparece el vínculo.
Cuando se usa con el atributo hreflang, implica que hay una versión traducida
del documento. Cuando se usa conjuntamente con el atributo media, implica que
hay una versión diseñada para un medio (o medios) diferentes.
Stylesheet
Se refiere a una hoja de estilo externa. Véase la sección sobre hojas de
estilo externas para más detalles. Se usa junto al tipo de vínculo
"Alternate" para ofrecer hojas de estilo alternativas seleccionables por el
usuario.
Start
Se refiere al primer documento de un conjunto de documentos. Este tipo de
vínculo dice a los motores de búsqueda qué documento es considerado por el
autor como el punto de inicio de un conjunto.
Next
Se refiere al siguiente documento en una secuencia lineal de documentos. Los
agentes de usuario pueden optar por precargar el documento marcado como
"next", para reducir el tiempo de carga aparente.
Prev
Se refiere al documento anterior en una serie ordenada de documentos. Algunos
agentes de usuario también soportan el sinónimo "Previous".
Contents
Se refiere a un documento que sirve como tabla de contenidos. Algunos agentes
de usuario también soportan el sinónimo ToC (de "Table of Contents").
Index
Se refiere a un documento que proporciona un índice para el documento actual.
Glossary
Se refiere a un documento que proporciona un glosario de términos que
pertenecen al documento actual.
Copyright
Se refiere al aviso de copyright del documento actual.
Chapter
Se refiere a un documento que actúa como capítulo en una colección de
documentos.
Section
Se refiere a un documento que actúa como sección en una colección de
documentos.
Subsection
Se refiere a un documento que actúa como subsección en una colección de
documentos.
Appendix
Se refiere a un documento que actúa como apéndice en una colección de
documentos.
Help
Se refiere a un documento que ofrece ayuda (más información, vínculos a otros
recursos informativos, etc.)
Bookmark
Se refiere a una señal de lectura. Una señal de lectura (bookmark) es un
vínculo a un punto de entrada importante dentro de un documento extenso. Se
puede utilizar el atributo title, por ejemplo, para dar un rótulo a la señal
de lectura. Obsérvese que pueden definirse varias señales de lectura en cada
documento.
Los autores pueden querer definir tipos de vínculos adicionales no descritos en
esta especificación. Si hacen esto, deberían usar un perfil (profile) citando
las convenciones usadas para definir los tipos de vínculos. Véase el atributo
profile del elemento HEAD para más detalles.
Para más información sobre tipos de vínculos, consulte la sección sobre vínculos
en documentos HTML.
6.13 Descriptores de medios
La siguiente es una lista de los descriptores de medios reconocidos (%MediaDesc;
en el DTD).
screen
Para pantallas no paginadas de computadora.
tty
Para medios que utilicen una cuadrícula de caracteres de ancho fijo, como
teletipos, terminales y dispositivos portátiles con posibilidades limitadas
de representación.
tv
Para dispositivos tipo televisión (baja resolución, en color, desplazamiento
limitado).
projection
Para proyectores.
handheld
Para dispositivos de mano (pantalla pequeña, monocromos, gráficos por mapas
de bits, ancho de banda limitado).
print
Para material paginado, opaco, y para documentos que se ven en una pantalla
en modo de presentación preliminar a la impresión.
braille
Para dispositivos táctiles braille.
aural
Para sintetizadores de voz.
all
Apropiado para todos los dispositivos.
En versiones futuras de HTML pueden introducirse nuevos valores, y podrían
permitirse valores parametrizados. Para facilitar la introducción de estas
extensiones, los agentes de usuario deben ser capaces de analizar el atributo
media como sigue:
1. El valor es una lista de entradas separadas por comas. Por ejemplo,
media="screen, 3d-glasses, print and resolution > 90dpi"
se transforma en:
"screen"
"3d-glasses"
"print and resolution > 90dpi"
2. Cada entrada se trunca justo hasta antes del primer caracter que no sea una
letra US ASCII [azA-Z] (ISO 10646 hex 41-5a, 61-7a), un dígito [0-9] (hex
30-39), o un guión (hex 2d). En el ejemplo, esto da:
"screen"
"3d-glasses"
"print"
3. Se hace entonces un emparejamiento con el conjunto de tipos de medios
definidos arriba, teniendo en cuenta la diferencia entre mayúsculas y
minúsculas. Los agentes de usuario pueden ignorar las entradas que no
resulten emparejadas. En el ejemplo nos quedamos con screen y con print.
Nota. Las hojas de estilo pueden incluir variaciones dependientes del medio en
su interior (p.ej., la estructura CSS @media). En estos casos puede ser
apropiado usar "media=all".
6.14 Datos de scripts
Los datos de scripts (%Script; en el DTD) pueden aparecer como contenido del
elemento SCRIPT y como valor de los atributos de eventos intrínsecos. Los
agentes de usuario no deben evaluar los datos de script como código HTML, sino
que deben pasarlos tal y como están como datos para un motor de scripts.
La importancia de la distinción entre mayúsculas y minúsculas en los datos de
scripts depende del lenguaje de programación del script.
Obsérvese que los datos de scripts que estén contenidos en un elemento no pueden
contener referencias de caracteres, pero los datos de scripts que sean el valor
de un atributo sí pueden contenerlas. El apéndice proporciona más información
sobre la especificación de datos no HTML.
6.15 Datos de hojas de estilo
Los datos de hojas de estilo (%StyleSheet; en el DTD) pueden aparecer como
contenido de un elemento STYLE y como valor de un atributo style . Los agentes
de usuario no deben evaluar los datos de estilo como código HTML.
La importancia de la distinción entre mayúsculas y minúsculas en los datos de
estilo depende del lenguaje de la hoja de estilo.
Obsérvese que los datos de hojas de estilo que estén contenidos en un elemento
no pueden contener referencias de caracteres, pero los datos de hojas de estilo
que sean el valor de un atributo sí pueden contenerlas. El apéndice proporciona
más informacion sobre la especificación de datos no HTML.
6.16 Nombres de marcos destino
Excepto los nombres reservados enumerados a continuación, los nombres de marcos
destino (%FrameTarget; en el DTD) deben empezar con un carácter alfabético
(a-zA-Z). Los agentes de usuario deberían ignorar otros nombres de destino.
Los siguientes nombres de destino están reservados y tienen significados
especiales.
_blank
El agente de usuario debería cargar el documento designado en una ventana
nueva y sin nombre.
_self
El agente de usuario debería cargar el documento en el mismo marco que el
elemento que hace referencia a este destino.
_parent
El agente de usuario debería cargar el documento en el FRAMESET padre
inmediato del marco actual. Este valor es equivalente a _self si el marco
actual no tiene padre.
_top
El agente de usuario debería cargar el documento en la ventana original
completa (cancelando así todos los demás marcos). Este valor es equivalente a
_self si el marco actual no tiene padre.
================================================================================
7 La estructura global de un documento HTML
--------------------------------------------------------------------------------
Contenidos
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
--------------------------------------------------------------------------------
7.1 Introducción a la estructura de un documento HTML
Un documento HTML 4 se compone de tres partes:
1. una línea que contiene información sobre la versión de HTML,
2. una sección de cabecera declarativa (delimitada por el elemento HEAD),
3. un cuerpo, que contiene el contenido real del documento. El cuerpo puede ser
especificado mediante el elemento BODY o mediante el elemento FRAMESET.
Puede aparecer espacio en blanco (espacios, saltos de línea, tabulaciones y
comentarios) antes y después de cada sección. Las secciones 2 y 3 deberían estar
delimitadas por el elemento HTML.
Aquí tenemos un ejemplo de un documento HTML sencillo:
Mi primer documento HTML
¡Hola mundo!
7.2 Información sobre la versión de HTML
Un documento HTML válido declara qué versión de HTML se utiliza en el documento.
La declaración del tipo de documento especifica la definición del tipo de
documento (DTD) que se usa en el documento (ver [ISO8879]).
HTML 4.01 especifica tres DTDs, de modo que los autores deben incluir una de las
siguientes declaraciones del tipo de documento en sus documentos. Los DTDs
varían en cuanto a los elementos que soportan.
- El DTD HTML 4.01 Estricto (Strict DTD) incluye todos los elementos y
atributos que no han sido desaprobados o que no aparecen en documentos con
marcos. Para los documentos que usen este DTD, utilice esta declaración del
tipo de documento:
- El DTD HTML 4.01 Transicional (Transitional DTD) incluye todo lo que incluye
el DTD estricto más los elementos y atributos desaprobados (la mayoría de los
cuales están relacionados con la presentación visual). Para los documentos
que usen este DTD, utilice esta declaración del tipo de documento:
- El DTD HTML 4.01 para Documentos con Marcos (Frameset DTD) incluye todo lo
que incluye el DTD Transicional más los marcos. Para los documentos que usen
este DTD, utilice esta declaración del tipo de documento:
El URI que aparece en la declaración del tipo de documento permite a los agentes
de usuario descargar el DTD y los conjuntos de entidades que sean necesarios.
Los siguientes URIs (relativos) se refieren a los DTDs y conjuntos de entidades
de HTML 4:
- "strict.dtd" -- DTD estricto por defecto
- "loose.dtd" -- DTD no estricto
- "frameset.dtd" -- DTD para documentos con marcos
- "HTMLlat1.ent" -- entidades Latin-1
- "HTMLsymbol.ent" -- entidades Symbol
- "HTMLspecial.ent" -- entidades especiales
La vinculación entre identificadores públicos y ficheros puede especificarse
utilizando un fichero de catálogo según el formato recomendado por el Oasis Open
Consortium (ver [OASISOPEN]. Al comienzo de la sección sobre la referencia SGML
de HTML 4.01 se incluye un fichero de catálogo de muestra para HTML 4.01. Las
dos últimas letras de la declaración indican el idioma del DTD. Para HTML, éste
es siempre inglés ("EN").
Nota. En lo que concierne a la versión de HTML 4.01 del 24 de diciembre, el
Grupo de Trabajo HTML se compromete a la siguiente política:
- Los posibles cambios en los DTDs futuros de HTML 4 no invalidarán los
documentos que sean conformes con los DTDs de la presente especificación. El
Grupo de Trabajo HTML se reserva el derecho de corregir los errores
conocidos.
- Los programas que sean conformes con los DTDs de la presente especificación
pueden no tener en cuenta las características de los DTDs futuros de HTML 4
que no reconozcan.
Esto significa que en una declaración del tipo de documento, los autores pueden
utilizar con seguridad un identificador de sistema que se refiera a la última
versión de un DTD HTML 4. Los autores también pueden optar por usar un
identificador de sistema que se refiera a una version específica (antigua) de un
DTD HTML 4 cuando sea necesaria la validación con respecto a ese DTD en
particular. El W3C hará todo lo posible para que los documentos archivados estén
siempre disponibles en sus direcciones originales y en su forma original.
7.3 El elemento HTML
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Etiqueta inicial: opcional, Etiqueta final: opcional
Definiciones de atributos
version = cdata [CN]
Desaprobado. El valor de este atributo especifica qué DTD HTML gobierna el
documento actual. Este atributo ha sido desaprobado porque es redundante con
la información sobre la versión proporcionada por la declaración del tipo de
documento.
Atributos definidos en otros lugares
- lang (información sobre el idioma), dir (dirección del texto)
Después de la declaración del tipo de documento, el resto de un documento HTML
está contenido en el elemento HTML. Así, un documento HTML típico tiene esta
estructura:
...La cabecera, el cuerpo, etc. van aquí...
7.4 La cabecera del documento
7.4.1 El elemento HEAD
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Etiqueta inicial: opcional, Etiqueta final: opcional
Definiciones de atributos
profile = uri [CT]
Este atributo especifica la localización de uno o más perfiles de metadatos,
separados por espacio en blanco. Con vistas a extensiones futuras, los
agentes de usuario deberían considerar este valor como una lista, si bien
esta especificación sólo tiene en cuenta el primer URI. Se habla sobre los
perfiles más adelante, en la sección sobre metadatos.
Atributos definidos en otros lugares
- lang (información sobre el idioma), dir (dirección del texto)
El elemento HEAD contiene información sobre el documento actual, como el título,
palabras clave que pueden ser de utilidad para motores de búsqueda, y otros
datos que no se consideran parte del contenido del documento. En general, los
agentes de usuario no representan los elementos que aparecen como contenido del
HEAD. Sin embargo, pueden poner la información del HEAD a disposición de los
usuarios a través de otros mecanismos.
7.4.2 El elemento TITLE
----------------------------------------