Fipo05 XHTML
Fipo05 XHTML
Persona-Ordenador
5. XHTML
XHTML es una recomendación oficial del W3C que define una versión de
HTML compatible con XML.
● Redefine HTML como una aplicación XML.
HTML sería una versión SGML.
Ventajas que aporta.
● Al tratarse de documentos XML se pueden incorporar elementos de distintos
espacios de nombre.
Permite mezclar el documento con otros vocabularios XML, por ejemplo, incluir gráficos
vectoriales con SVG o expresiones matemáticas con MathML.
● Al tratarse de documentos bien formados los analizadores sintácticos se pueden
simplificar.
La libertad de HTML hace que su renderización en un navegador pueda ser más lenta.
● Al tratarse de documentos XML se pueden utilizar las mismas herramientas para el
tratamiento de los datos.
● Cómo XML, se trata de un lenguaje ampliable.
Es relativamente fácil añadir elementos al lenguaje a través de módulos.
Permite la interoperabilidad entre distintas plataformas y aplicaciones de usuario.
XHTML utiliza un conjunto de etiquetas similares a HTML.
● Pone algunas limitaciones al uso de etiquetas y atributos HTML que el W3C
considera obsoletos.
● XHTML 1.1.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Etiquetas.
● HTML (y XHTML) definen 91 etiquetas para sus documentos:
a, abbr, acronym, address, applet, area, b, base, basefont,
bdo, big, blockquote, body, br, button, caption, center, cite,
code, col, colgroup, dd, del, dfn, dir, div, dl, dt, em,
fieldset, font, form, frame, frameset, h1, h2, h3, h4, h5, h6,
head, hr, html, i, iframe, img, input, ins, isindex, kbd,
label, legend, li, link, map, menu, meta, noframes, noscript,
object, ol, optgroup, option, p, param, pre, q, s, samp,
script, select, small, span, strike, strong, style, sub, sup,
table, tbody, td, textarea, tfoot, th, thead, title, tr, tt, u,
ul y var
applet, basefont, center, dir, font, isindex, menu, s, strike y
u se consideran obsoletos en XHTML Strict.
Todas las etiquetas referentes a marcos (frame, frameset, iframe,
noframes) no están permitidas en XHTML Strict.
class="texto" Establece la clase CSS que se aplica como estilo al elemento a través de una hoja
de estilos
style="texto" Establece un estilo al elemento de forma directa
Atributos de internacionalización.
Atributo Descripción
lang="código de Especifica el idioma en que aparece el elemento. Puede resultar útil cuando
idioma" se utiliza un navegador basado en voz. Se trata de códigos normalizados
según la norma ISO 639 (se puede encontrar una relación de esos códigos en
es.wikipedia.org/wiki/ISO_639-1)
xml:lang="código Especifica el idioma en el que aparece el documento. Tiene prioridad sobre el
de idioma" atributo lang y debe aparecer siempre que aparece el atributo lang.
dir="dirección del Establece la dirección del texto. Es útil si se utilizan idiomas que se escriben
texto" de derecha a izquierda. La dirección puede tomar los valores rtl (de derecha
a izquierda) o ltr (de izquierda a derecha, opción por omisión).
Atributo Descripción
onclick, ondblclick, Permiten controlar los eventos que se producen sobre los elementos de la
onmousedown, página cuando se utiliza JavaScript
onmouseup,
onmouseover,
onmousemove,
onmouseout,
onkeypress,
onkeydown, onkeyup
accesskey="letra" Permite establecer una tecla de acceso rápido para acceder al elemento. Se
utiliza sobre todo en enlaces, botones o campos de formularios. Se utiliza
para mejorar la accesibilidad. La forma de acceder a ellos varía según el
navegador (alt+letra en Internet Explorer, alt+shift+letra en Firefox o
shift+esc+letra en Opera)
tabindex="número" Permite establecer el orden de tabulación entre los elementos que permiten
recibir el foco. Se utiliza para mejorar la accesibilidad.
onfocus, onblur Permite controlar los eventos que se producen cuando el elemento entra o
pierde el foco.
<body>
Código html
</body>
</html>
XHTML es una aplicación XML, por lo que debería llevar una declaración
XML (no es obligatorio).
● Se consideraría obligatoria si se utilizara una codificación de caracteres distinta de
utf-8.
● Si se utiliza, deberían ser los primeros caracteres del archivo de texto.
Declaración del tipo de documento.
● Algunas de las DTD XHTML Strict, XHTML Trasitional o XHTML Frameset.
Declaración del elemento raíz y del espacio de nombres xhtml.
● El elemento raíz es el elemento html e incluye tanto la cabecera (elemento head)
como el cuerpo del documento (elemento body).
● Debe incluir el atributo xml:lang y el atributo de html lang.
Si se utiliza XHTML 1.1 sólo debe incluir el atributo xml:lang.
Declaración de la cabecera del documento: elemento head.
● Incluye de forma obligatoria el elemento title.
● Es muy común incluir metainformación http-equiv que indica el tipo de información
que debe suministrar el servidor.
Elemento body con los elementos del código html.
El elemento raíz.
● Debe incluir una declaración de espacios de nombre (namespace) para
el elemento html.
● Incluye también los atributos xml:lang y/o lang.
El valor es un código de idioma recogido en la norma ISO 639.
xml:lang sería el atributo básico de xml para indicar el idioma principal del
documento.
lang se utiliza por compatibilidad con versiones antiguas.
No se trata de atributos obligatorios, aunque si convenientes para la
interoperabilidad entre aplicaciones.
○ En las pautas de accesibilidad indica su obligatoriedad.
El elemento head.
● Incluye todos los elementos de la cabecera.
El elemento title.
● Se trata de un elemento obligatorio de la cabecera.
● Su valor aparece en la barra de títulos del navegador y en las listas de
resultados de los buscadores.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
27
(CC) Luis Rodríguez Baena, 2013
Cabecera de un documento XHTML
Metainformación
Scripts.
● La cabecera puede incluir información sobre los fragmentos de código
(normalmente en Javascript) del documento.
El elemento script puede utilizarse también en el cuerpo del documento.
● Admite dos modos de funcionamiento.
Incluir directamente el código del script.
<script type="text/javascript">
<![CDATA[
…Código javascript
]]>
</script>
Enlazar con un archivo que contenga el código de los script.
<script type="text/javascript" src="url dónde se almacena el
código javascript" />
Estilos.
● El elemento style permite indicar los estilos CSS en línea que utilizará
la página.
}
]]>
</script>
<!-- Fin del Script-->
</head>
Énfasis en línea.
● Los dos métodos más comunes para destacar porciones de un texto en
los documentos impresos es utilizar las negritas y las cursivas.
HTML define cuatro elementos (b, strong, i y em) para ello.
Es preferible utilizar los elementos em para enfatizar el texto y strong para
destacarlo.
○ Mientras que b e i indican el modo de la presentación (lo que indican es el estilo de la
fuente, como el subrayado o el tachado), em y strong marcan el texto desde el punto
de vista estructural y marcan texto para enfatizar o para remarcar.
○ En la mayoría de los agentes de usuario (navegadores) eso se traduce en cursiva y
negrita respectivamente.
− En otros agentes (por ejemplo, navegadores de voz) permitirían un aspecto distinto.
Énfasis en bloque.
● El elemento blockquote permite destacar un bloque de texto.
El equivalente impreso sería un texto tratado como cita o encerrado entre
comillas.
Los navegadores más habituales sangrarán el texto.
Además de los atributos normales puede incluir el atributo cite que incluiría un
URL del lugar dónde se ha sacado la cita.
<h2>Glosario</h2>
<dl>
<dt>XHTML</dt>
<dd><em>Extensible Hipertext Markup Language</em> .
Lenguaje de marcas ampliable del W3C basado en HTML</dd>
<dt>W3C</dt>
<dd><em>World Wide Web Consortium</em> . Organismo internacional que
se encarga de especificar los estándares en la Web.</dd>
<dt>XML</dt>
<dd><em>Extensible Markup Language</em>. Lenguaje de marcas
ampliable del W3C.</dd>
</dl>
Los elementos listitems (li) pueden contener otras listas lo que daría lugar a
listas anidadas.
<ul>
<li>Tema 1. Introducción a XML</li>
<li>Tema 2. Principales componentes de XML
<ol>
<li>Documentos XML
<ul>
<li>Documentos XML bien formados y documentos validados</li>
<li>Estructura de un documento XML
<ul>
<li>Declaración XML </li>
<li>Declaración del tipo de documento </li>
<li>El elemento raíz</li>
</ul>
</li>
</ul>
</li>
<li>Elementos, etiquetas y datos de caracteres
<ul>
<li>Árboles XML</li>
</ul>
</li>
</ol>
</li>
</ul>
Abreviaturas y acrónimos.
● El elemento abbr se utiliza para marcar una abreviatura.
● El atributo title incluiría el texto completo de la abreviatura.
● El elemento acronym se utiliza para marcar un acrónimo.
El atributo title se utilizaría para indicar la explicación del acrónimo.
● Normalmente los navegadores muestran el elemento subrayado.
Al pasar el cursor sobre el elemento aparecería el texto de la abreviatura.
Definiciones.
● El elemento dfn marca un elemento para su definición en el mismo párrafo.
Se utiliza cuando se quiere explicar algún término complicado (por ejemplo algún término médico
o técnico).
Algunos navegadores muestran el elemento como cursiva.
Citas.
● El elemento cite marca un fragmento de texto como una referencia a otras
fuentes.
● El elemento q (quote , comillas) se utiliza para incluir citas textuales en línea.
Los navegadores suelen encerrar la cita entre comillas.
El atributo cite se puede utilizar para incluir la referencia de la cita. A diferencia de
blockquote, se trata de un elemento en línea.
Los agentes de usuario suelen mostrarlo en cursiva.
Direcciones.
● El elemento address indica que el texto contenido es una dirección.
● A diferencia de los elementos anteriores, se trata de un elemento de bloque.
● Los navegadores suelen poner el contenido en cursiva.
Subíndices y superíndices.
● Se marcan, respectivamente, con los elementos sub y sup.
Código.
● Un fragmento de código de programación se puede marcar con
el elemento code.
Entrada de usuario.
● Si en algún caso se quiere marcar un texto como una entrada
que el usuario debe introducir se puede utilizar el elemento kbd.
Variables.
● Las variables de un programa se marcan con el elemento var.
Salida de programas, scripts, etc.
● El elemento samp se utiliza para marcar la salida por pantalla de
un programa, script, etc.
xhtml (y html) no puede utilizar todos los caracteres. Además otros caracteres no
se mostrarán correctamente en todas las ocasiones.
● Caracteres especiales como los símbolos de mayor y menor, el ampersand, el espacio en
blanco, comillas, caracteres regionales, etc. no se mostrarán bien en todas las ocasiones.
Es necesario sustituirlas por entidades de carácter.
En en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references aparece una lista
completa de las entidades.
hreflang.
● Indica el idioma del recurso de destino.
type.
● Indica el tipo de contenido del recurso.
Algunos ejemplos:
○ text/html
○ image/png
○ application/pdf
○ …
Se puede encontrar una lista de tipos de contenido en
www.iana.org/assignments/media-types/.
charset.
● Indica la codificación de caracteres del recurso enlazado.
Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
52
(CC) Luis Rodríguez Baena, 2013
Enlaces
Otros atributos (II)
rel y rev.
● Describen la relación del elemento enlazado con el actual (rel) y la del
actual con el enlazado (rev).
● Puede contener los valores:
alternate, indica que se trata de una versión alternativa al documento actual
(por ejemplo, una versión para imprimir).
stylesheet , indica que se trata de una hoja de estilos.
start, indica que se trata del primer documento de una colección de
documentos relacionados.
next, indica que se trata del siguiente documento de una colección de
documentos relacionados.
prev, indica que se trata del documento anterior de una colección de
documentos relacionados.
contents, indica que el recurso enlazado contiene la tabla de contenidos de
una colección de documentos relacionados.
● En www.w3.org/TR/1999/REC-html401-19991224/types.html#type-links
se puede encontrar una lista de las relaciones posibles.
Atributo longdesc.
● El atributo alt, sólo permite incluir texto de hasta 1024 caracteres.
En imágenes complejas (por ejemplo, un gráfico de distribución de frecuencias
en un aplicación estadística), longdesc permite apuntar a un URL con una
descripción completa de la imagen.
Atributo title.
● Permite dar un nombre explicativo a la imagen.
Normalmente, los navegadores sacarán el texto en forma de tooltip.
Algunos navegadores (IE) sacan el contenido de alt como tooltip. Para que
esto ocurra en otros como Firefox, es necesario incluir este atributo.
Atributos height y width.
● Permiten establece el alto y ancho (normalmente en pixels) de la
imagen.
Para evitar imágenes pixeladas, lo ideal sería establecerlos al ancho y alto real o
no incluir ninguno.
○ Si se desea utilizar una imagen más grande o más pequeña, se debería conseguir en el
archivo original mediante algún programa de retoque fotográfico.
Título de la
tabla
Columna Cabecera de
Cabecera de columna
la tabla
Cabecera de Fila
fila Celda
Pie de la tabla
Elemento caption.
● Permite añadir un título explicativo a la tabla.
● Sólo puede haber un elemento por tabla.
● Debe ser el primer elemento de la tabla.
● Las normas de accesibilidad indican que toda tabla de datos debería
tener un elemento caption.
Un agente no visual relacionará la tabla con este elemento.
Elemento th.
● En una tabla de datos se deben marcar todas las celdas que sean
encabezados.
● Indica que se trata de una celda de encabezado.
● Tiene los mismos atributo que el elemento td.
● En un navegador visual, puede que se señale el elemento de alguna
forma especial (por ejemplo en negrita).
● En un navegador de voz, u otro agente no visual se utiliza para
identificar las celdas.
Atributo method.
● Indica la forma en la que se envían los datos del formulario mediante
http a la aplicación que los procesa.
● Puede tomar los valores post o get (opción por omisión).
get, el conjunto de datos del formulario se agrega al URI especificado por el
atributo action (con un signo de interrogación ("?") como separador) y este
nuevo URI se envía al agente procesador.
○ Sólo admite unos 500 bytes de información.
○ Sólo admite caracteres ASCII en los datos enviados.
○ Los datos aparecen en la llamada al agente procesador.
○ Se utiliza para datos no sensibles, es decir cuando la aplicación no modifica los datos
(por ejemplo, búsquedas en bases de datos).
post, el conjunto de datos del formulario se incluye en el cuerpo del formulario
y se envía al agente procesador.
○ Oculta los datos en la llamada a la aplicación.
○ Permite enviar cualquier carácter del conjunto de caracteres.
− Para ellos es necesario establecer el atributo enctype del elemento form a
"multipart/form-data".
○ Se utiliza para datos sensibles, es decir cuando el agente procesador causa efectos
secundarios (por ejemplo cuando se modifica una base de datos).
Cuadros de contraseña.
● type="password".
Funciona igual que los cuadros de texto.
Los caracteres tecleados no aparecen en el control.
Casillas de verificación.
● type="checkbox".
Muestra una casilla de verificación sin texto.
○ Es necesario añadir el texto sobre el significado del control.
Permite utilizar los atributos…
○ checked="checked", el control aparece como marcado.
○ value, establece el valor que se enviará como información para procesar.
<input name="acepto" type="checkbox" value="si" />
− Enviará al formulario la pareja acepto=si.
Botones de radio.
● type="radio".
Funciona igual que las casillas de verificación.
Los elemento marcados son excluyentes entre los botones de radio que tengan
el mismo valor en el atributo name.
○ Permite seleccionar o la tarjeta Visa o la MasterCard (sólo una de ellas).
<input name="tarjeta" type="radio" value="V" id="visa"
checked="checked" />
<input name="tarjeta" type="radio" value="M" id="mastercard"
/>
− Enviará al formulario la pareja tarjeta=V o tarjeta=M.
Campos ocultos.
● type="hidden".
Permite enviar información adicional a la aplicación.
Envía valores fijos que el usuario no puede ver ni modificar.
Los atributos name y value especifican la pareja de valores que se envían a la
aplicación.
Áreas de texto
● Elemento textarea.
Permite describir cuadros de texto multilínea.
○ Los atributos cols y rows permiten establecer el ancho y largo del control.
Cuadros de lista y listas desplegables.
● Elemento select.
Define tanto las listas deplegables como los cuadros de lista.
○ El atributo size indica el número de elementos que se visualizarán.
− Por omisión sólo se muestra una (se tratará de una lista desplegable).
− Para los cuadros de lista se utilizará un valor mayor que 1.
○ El atributo multiple="multiple" indica que se permite la selección múltiple.
● Cada opción de la lista sería un elemento option.
El atributo selected="selected" indica si el elemento estará seleccionado.
El atributo value se utiliza para indicar el valor que se enviará a la aplicación que procesa el
formulario.
○ Los datos se enviarán en la forma:
− nombreSelect=valueElementoSeleccionado.
● El elemento optgroup permite hacer agrupaciones lógicas con los elementos de una
lista.
El atributo label permite dar un nombre al grupo de opciones.
Por cuestiones de
maquetación es preferible
identificar estos cuadros de
texto con title
Elemento fieldset.
● Permite hacer una agrupación lógica de controles relacionados.
● Debería incluir un elemento legend para identificar el nombre del grupo de controles.
En los agentes visuales, los controles relacionados estarán agrupados visualmente mediante una línea.
En la línea parecerá el contenido del elemento legend.
Elemento label.
● Permite añadir una etiqueta a un control.
● Se deben usar para los elementos textarea, select e input
de tipo text, checkbox, radio, file y password.
● No se usa para los siguientes elementos:
button. Se usa su contenido como etiqueta.
input de tipo image. Se usa el atributo alt como etiqueta.
input de tipo submit y reset. Se usa el atributo value como
etiqueta.
input de tipo hidden. No se usa etiqueta.
● Debe identificar adecuadamente el control de formulario y debe
situarse:
Antes del control para elementos input de tipo text, file,
password y para los elementos textarea y select
Después del control para elementos input de tipo checkbox y radio
Teclas de acceso.
● Es posible asignar una tecla de acceso a un control (el control tomará el foco
cuando se pulse una combinación de teclas) mediante el atributo accesskey.
● El atributo está presente en los elementos a, area, button, input, label,
legend y textarea.
● El valor del atributo será un carácter.
● La llamada a las teclas de acceso depende del sistema operativo y del navegador.
En Windows…
○ En Firefox, IE, Chrome y Safari: alt+tecla de acceso (hay que tener en cuenta que en Firefox, si la
tecla es mayúscula hay que pulsar también shift).
○ En Opera ctrl+esc+tecla de acceso.
Controles deshabilitados.
● Los controles button, input, optgroup, option, select y textarea tienen el
atributo booleano disabled para deshabilitar el control.
● El control no será accesible por el usuario y no entrará en el orden de tabulación.
El contenido del atributo en XHTML será disabled="disabled".
○ En HTML sólo habría que poner disabled.