Creación de una página web accesible sencilla

advertisement
Creación de una página web accesible sencilla
Lic. Iris Fernández
Unidad 4: Tablas y formularios
Objetivos:
-Crear tablas y formularios que cumplan con las pautas de accesibilidad web.
Contenidos:
-Creación de tablas
• Resumen
• Encabezados
-Creación de un formulario
• Tipos de formularios
• Los controles
• Ayudas técnicas para mejorar el acceso a los formularios
Actividad 1
Objetivos
♦ Crear una tabla accesible
Contenidos
♦ Cuándo usar una tabla
♦ Cómo crear una tabla
♦ Algunas ayudas para que los usuarios puedan acceder correctamente al contenido de una
tabla: resumen, título, encabezados.
¿Cuándo usar una tabla?
Es bastante frecuente que los usuarios de programas para crear páginas web usen tablas para maquetar
(organizar los contenidos de la página), ya que de esta manera se puede definir muy bien dónde estará
cada bloque de la pantalla.
Esta técnica no es accesible, ya que si bien lo normal es que uno vea el contenido sin enterarse de
que existe una tabla, un invidente que accede a un sitio maquetado con tablas obtendrá
generalmente una lectura incomprensible de su contenido.
Por ejemplo, la siguiente tabla fue usada para lograr un efecto de dos columnas:
Esta es la página oficial del ¡Noticia importante! En el
colegio se organizará muy
grupo de trabajo de la
revista de la escuela N°16,
pronto una reunión a la que
D.E.3
todos están invitados.
Si un invidente accede a esa página, escuchará el siguiente texto:
“Esta es la página oficial del ¡Noticia importante! En el grupo de trabajo de la colegio se organizará
muy revista de la escuela N°16, pronto una reunión a la que D.E.3 todos están invitados.”
El único motivo para usar una tabla debe ser la necesidad de presentar un conjunto de datos
distribuidos en filas y columnas interrelacionadas.
Creación de una tabla
Habitualmente las páginas suelen contener tablas de datos, donde todos los datos están a la vista. Sin
embargo, no basta con lo que se ve para que un invidente pueda descifrar el contenido que oye en una
tabla.
Si un invidente escucha: “Ingredientes, Papas, Cebollas, Morrones, Zanahorias, Pollo, Orégano, Sal
gruesa, 4,4,1,4,1,a gusto, un puñado” probablemente se pierda gran parte de la información.
Para crear una tabla básicamente basta con conocer tres tags:
<Table> Indica el comienzo y el final de la tabla.
<Tr>
Indica el comienzo y el final de una fila de la tabla (table row).
<Td>
Indica el comienzo y el final de una celda de la tabla (table data cell).
<table>
<tr>
<td>
Estudiantes del curso de accesibilidad web
</td>
</tr>
<tr>
<td>
Nombre
</td>
<td>
Apellido
</td>
</tr>
<tr>
<td>
Rodolfo
</td>
<td>
Páez
</td>
</tr>
</table>
Comienza la tabla
Comienza una fila
Comienza una celda y su contenido es “Estudiantes
del curso…”
Final de celda
Final de fila
Comienza una fila
Comienza una celda cuyo contenido es “Nombre”
Fin de celda
Comienzo de una nueva celda cuyo contenido es
“Apellido”.
Fin de celda
Fin de fila
Comienza una fila
Comienza una celda cuyo contenido es “Nombre”
Fin de celda
Comienzo de una nueva celda cuyo contenido es
“Apellido”.
Fin de celda
Fin de fila
Fin de tabla
En el caso de necesitar que una misma celda ocupe dos columnas, es necesario especificarlo usando
colspan="2":
<table>
<tr><td colspan="2">Estudiantes del curso de accesibilidad web</td></tr>
<tr><td>Nombre</td><td>Apellido</td></tr>
<tr><td>Rodolfo</td><td>Páez</td></tr>
<tr><td>Mercedes</td><td>Sosa</td></tr>
<tr><td>Cristina</td><td>Kirchner</td></tr>
</table>
Copiando y pegando el código anterior en nuestro editor de textos, obtendremos una tabla con este
aspecto:
Y si vinculamos ese archivo a una hoja de estilo que defina un poco el aspecto de la tabla podremos
obtener algo así:
Para obtener hojas de estilo prediseñadas: galería de estilos de tabla
Ayudas para el acceso a la información
Para que todos los usuarios puedan acceder al contenido de la tabla, deberemos agregar a lo anterior
ayudas auditivas: elementos que definan la estructura de la tabla para una persona que utiliza un lector
de pantalla.
Algunas de esas ayudas son:
• Títulos (caption, header): permitirá que el lector de pantalla lea cada dato con su
correspondiente título.
• Resumen: permitirá al usuario invidente conocer el contenido de la tabla antes de escucharla
completamente, dándole la posibilidad de saltear su lectura.
• Identificadores (id): Textos ocultos que indiquen al lector de pantalla un identificador para
cada elemento.
Mediante estos elementos, marcados semánticamente, se podrá dar un formato más específico a la
tabla en la hoja de estilo, además de permitir que los usuarios de lectores de pantalla decidan qué
quieren escuchar según sus preferencias.
<TABLE summary="Esta tabla contiene el nombre y el apellido de los estudiantes de este curso.">
<CAPTION>Estudiantes del curso de accesibilidad web</CAPTION>
<TR>
<TH id="titulo1">Nombre</TH>
<TH id="titulo2">Apellido</TH>
<TR>
<TD headers="titulo1">Charly</TD>
<TD headers="titulo2">García</TD>
<TR>
<TD headers="titulo1">Mercedes</TD>
<TD headers="titulo2">Sosa</TD>
<TR>
<TD headers="titulo1">Cristina</TD>
<TD headers="titulo2">Kirchner</TD>
</TABLE>
Para tablas con estructuras más complejas, es fundamental identificar los grupos a
los que pertenece cada dato. Ver técnicas para identificar grupos de datos y otros
elementos para las tablas:
http://www.discapnet.es/web_accesible/tecnicas/html/WCAG10-HTMLTECHS_es.html#identifying-table-rows-columns
Ejercicio 1:
Enviá al foro el archivo HTML de una página que contenga una tabla con resumen, título y
encabezados correctamente marcados.
Actividad 2
Objetivos
♦ Crear un formulario con ayudas para la accesibilidad
Contenidos
♦ Creación de un formulario accesible.
Comunicarse con el usuario
En toda página web es fundamental ofrecer al usuario alguna manera de contactarse con el
administrador de la página. La forma más sencilla es la inclusión de un link a una dirección de correo.
Para ello, basta con escribir en el destino del enlace “mailto:” y la dirección de mail correspondiente:
<A HREF="mailto:tunombre@tusitio">Contacto</A>
Esto es lo que se vería:
Contacto
Sin embargo, si el usuario no tiene configurado un cliente de correo, no servirá de mucho el link. Para
hacer todavía más fácil la comunicación es mejor que la dirección de mail pueda verse (y
eventualmente copiarse), por ejemplo de esta manera:
Contacto: <A HREF="mailto:tunombre@tusitio">tunombre@tusitio</A>
Que se vería así:
Contacto: tunombre@tusitio
Sin embargo, dependiendo del tipo de página y del público al que esté dirigida, muchas veces es
necesario ofrecer algunas opciones, logrando que los mensajes estén mejor estructurados (por ejemplo,
para que no falte información fundamental para elaborar la respuesta). En ese caso se utiliza un
formulario.
Creación de un formulario accesible para enviar por e-mail
Al igual que con las tablas, existe una forma muy sencilla de crear un formulario, pero para que éste
sea usable y accesible debe cumplir algunas pautas.
Veamos primero cómo crear un formulario sin ayudas para la accesibilidad.
Para empezar, hay que entender que un formulario es una página que realiza una acción: enviar un
mail, abrir otro archivo brindando la información del formulario, etc.
Para abrir y cerrar un formulario se utiliza la etiqueta form, que necesita al menos dos datos más:
• La acción que va a realizar, que contiene un enlace: action=”enviar_mensaje.php”
• El método con el que enviará los datos recibidos; por ejemplo: method=post (existen otros
métodos que no mencionaremos en este curso).
<form action="enviar_mensaje.php" method=post>
.
.
.
</form>
Un ejemplo de formulario bastante inútil sería aquel que no pidiera ningún dato. Un formulario que
sólo contenga un botón (“input type=submit”) que realice la acción del formulario, que en el ejemplo
es abrir el archivo index.html:
<form action="index.html" method=post>
<input type=submit value="Volver al índice">
</form>
Este código, en un navegador, se vería así:
Para que el formulario tenga algún sentido, deberá pedir algún tipo de información. Por ejemplo, el
nombre del usuario. Vamos a crear un cuadro de texto donde el usuario pueda escribir su nombre,
utilizando un control de entrada de texto (input type=text):
<form action="index.html" method=post>
Nombre: <input type=text id="nombre">
<input type=submit value="Volver al índice">
</form>
En este ejemplo el formulario pide el nombre al usuario y al hacer clic en el botón, abre el archivo
index.html.
Sin embargo, el archivo index.html no usa el dato que el formulario le envía, ya que para que un
archivo pueda procesar los datos de un formulario hace falta un código programado con un
lenguaje de programación, por ejemplo, PHP.
Otra alternativa mucho menos elegante, pero que no requiere ningún conocimiento de programación,
es que el formulario envíe un mail con los datos recogidos. Esta acción depende de que el usuario
tenga un cliente de correo (como Evolution, Mozilla Thunderbird), pero de todas formas va a ser el
método que utilizaremos en el primer formulario.
Un enlace a una dirección de mail
Ya que la acción de un formulario consiste en un link, vamos a aprovechar que un link puede tener una
dirección de correo para enviar por e-mail los datos que el usuario complete. Por lo tanto el formulario
que vamos a crear va a tener este encabezado, poniendo la dirección de mail del creador de la
página. El último dato indica el tipo de codificación usada para el envío de los datos:
<form action="mailto:tudirecciondemail" method="post" enctype="text/plain">
Nuestro formulario de contacto seguirá con algunos controles. Podemos pedir el nombre del usuario,
dar un par de opciones y por último poner un botón de “Enviar” para que se ejecute la acción del form.
Para los comentarios vamos a utilizar un área de texto, mayor que un cuadro de texto, para la que
debemos definir la cantidad de filas (rows) y columnas (cols). A diferencia del cuadro de texto, el área
de texto tiene tag de apertura y de cierre:
<textarea cols=”10” rows=”5” id=”otras”>aquí el contenido por defecto</textarea>
Para crear una casilla de verificación simplemente debemos utilizar un control de entrada (input), de
tipo checkbox. Si estará activada desde el principio le agregamos el valor checked:
<input type="checkbox" id="recibir_info" checked=”checked”> Deseo recibir novedades.
El código del formulario quedará así:
<form action="mailto:tudirecciondemail" method="post" enctype="text/plain" >
<p>Nombre <input type="text" id="nombre" name="nombre" size="30"/></p>
<p>Email <input type="text" id="email" name="email" size="30"/></p>
<p>Comentarios <textarea cols="30" rows="7" name="comentarios" id="comentarios"></textarea></p>
<p><input type="checkbox" id="recibir_info" name="recibir_info" checked="checked"/> Deseo recibir
novedades.</p>
<input type="submit" value="Enviar formulario"/>
Podemos agregarle algunas opciones de opinión sobre la página, en forma de lista (select). Cada
opción tendrá un valor (value), que será el que se envíe al procesar el formulario:
<p>Por favor, indique qué opina de la página:
<select name="opinion">
<option value="Me gustó">Me gustó la página</option>
<option value="No me pareció buena">La página no me pareció buena</option>
<option value="Nunca más vuelvo" selected=”selected”>Nunca más vuelvo a esta
página</option>
</select></p>
También podemos hacer alguna pregunta más con una serie de opciones, usando radiobuttons (o
botones de exclusión mutua). Si un grupo de botones comparte el mismo nombre, cuando uno está
activado los otros se desactivan:
<p>¿Qué contenido agregaría a esta página?
<input type="radio" name="contenido" value="Noticias"/>Noticias
<input type="radio" name="contenido" value="Cuentos"/>Cuentos
<input type="radio" name="contenido" value="Juegos"/>Juegos</p>
Ejercicio 2: Enviar al foro un formulario que tenga cuadro de texto, área de texto, lista de opciones y
botones de opciones de exclusión mutua.
¿Cómo crear un formulario accesible?
Siguiendo los consejos del blog Usable y Accesible, podemos nombrar algunas de sus 60 directrices
para hacer formularios usables:
•
•
•
•
Hacer trabajar poco al usuario (pedir poca información, no pedir repeticiones)
Proporcionar títulos, textos de ayuda concretos, redactar en positivo las opciones (“deseo
recibir información…” en lugar de “No deseo recibir información…”)
Organizar la información en una sola columna, agrupar las opciones vinculadas.
No incluir botón “limpiar el formulario”, asegurarse que con la tecla “enter” se cumple la
acción principal del formulario (“Enviar”, por ejemplo).
Para que un formulario no tenga barreras de accesibilidad, es necesario cumplir, además con otras
pautas:
-Siempre utilizar etiquetas explícitas
Por cada control del formulario, debe utilizarse un elemento label for, explicitando cuál es el id
(identificador) del control correspondiente a la etiqueta:
<label for="nombre">Nombre</label> <input type="text" id="nombre" size="30">
-Controlar el orden de tabulación
Para cada uno de los elementos debemos usar el atributo tabindex, indicando en qué orden se
desplazará el usuario entre los diferentes elementos por medio de la tecla Tab.
<label for="nombre">Nombre</label> <input type="text" id="nombre" size="30" tabindex=”1”>
Si los elementos de un formulario están encolumnados no parece necesario agregar este dato, pero no
debemos olvidar usar nuestro formulario con las teclas para comprobar que el orden de tabulación sea
lógico.
-Incluir textos por defecto en las áreas de texto input y textarea.
Esto facilitará la tarea de los invidentes que se moverán por los diferentes campos sin escuchar las
etiquetas vinculadas, ahorrándoles mucho tiempo:
<textarea id="comentario" rows="20" cols="80">Ingrese aquí su comentario</textarea>
<input type="text" id="nombre" size="30" value="Escriba su nombre">
-Agrupar unidades semánticas con fieldset y describirlas con el tag legend. Utilizar
Optgroup en listas largas.
Agrupar los controles de los formularios hará mucho más usable la página. Esto se logra utilizando
Fieldset:
<fieldset>
<legend>Datos personales </legend>
<label for="nombre">Nombre: </label><input type="text" name="nombre" value="Escriba su
nombre" /><br />
<label for="direccion">Dirección: <input type="text" name="direccion" value="Escriba su dirección"
/><br />
<label for="telefono">Teléfono: <input type="text" name="telefono" value="Escriba su número de
teléfono" /><br />
<label for="celular">Celular: <input type="text" name="celular" value="Escriba su número de
teléfono móvil" /><br />
</fieldset>
En una lista de tipo select con muchos elementos, será una ayuda aguparlos de acuerdo a su sentido:
<select>
<optgroup label="Información">
<option>Geografía</option>
<option>Historia</option>
</optgroup>
<optgroup label="Grupos de interés">
<option>Provincias</option>
<option>Regiones</option>
</optgroup></select>
-Agregar un atajo de teclado para cada control, usando accesskey, como un atributo del
tag label.
<label for="nombre " accesskey="N”>Nombre</label>
Para crear un formulario que funcione en cualquier computadora, aunque no haya un cliente de correo
configurado, es necesario que en su acción se ejecute un programa, por ejemplo un archivo de PHP:
<form action="mail.php" method="post" enctype="text/plain">
Así quedaría el código para un formulario con ayudas para la accesibilidad:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Formulario</title>
<link rel="stylesheet" type="text/css" href="miestilo4.css"/>
</head>
<body>
<div id="contenido">
<h1>Contacto</h1>
<form action="mailto:tudirecciondemail" method="post" enctype="text/plain" >
<p><label for="nombre" accesskey="N">Nombre </label><input name="nombre" type="text"
id="nombre" size="30" tabindex="1" value="Escriba su nombre"/></p>
<p><label for="email" accesskey="E">Email </label><input type="text" name="email" id="email"
size="30" tabindex="2" value="Escriba su dirección de e-mail"/></p>
<p><label for="comentarios" accesskey="C">Comentarios </label><textarea cols="30" rows="7"
name="comentarios" id="comentarios" tabindex="3">Escriba aquí su comentario</textarea></p>
<p><input type="checkbox" name="recibir_info" id="recibir_info" checked="checked"
tabindex="4"/><label for="recibir_info" accesskey="I"> Deseo recibir novedades.</label></p>
<p><label for="opinion" accesskey="O">Por favor, indique qué opina de la página:</label>
<select name="opinión" tabindex="5">
<option label="Me gustó" value="Me gustó">Me gustó la página</option>
<option label="No me gustó" value="No me pareció buena">La página no me pareció
buena</option>
<option label="Nunca más" value="Nunca más vuelvo" selected="selected">Nunca más vuelvo a
esta página</option>
</select></p>
<p>¿Qué contenido agregaría a esta página?
<input id="Noti" type="radio" name="contenido" value="Noticias" tabindex="6"/><label
for="Noti">Noticias</label>
<input id="cuentos" type="radio" name="contenido" value="Cuentos" tabindex="7"/><label
for="cuentos">Cuentos</label>
<input id="juegos" type="radio" name="contenido" value="Juegos" tabindex="8"/><label
for="juegos">Juegos</label></p>
<input type="submit" value="Enviar formulario" tabindex="9"/>
</form>
</div>
</body>
</html>
Técnicas HTML para las Pautas de Accesibilidad al Contenido de la Web 1.0:
http://www.discapnet.es/web_accesible/tecnicas/html/WCAG10-HTML-TECHS_es.html#forms
Ejercicio global:
Enviá al foro el archivo HTML de tu página web, que tenga al menos una tabla de datos y un pequeño
formulario que envíe los datos por e-mail.
Descargar