Accesibilidad y usabilidad en formularios

EN: Warning: This post is over two years old, so it's possible that the views, opinions, links or instructions reflected on it do not correspond with the way I think now or the way things currently work. I have evolved (and so have the World and the Internet), so it might be advisable to just take this entry for a glimpse into the (my) past. 🙂

ES: Atención: Este artículo tiene más de dos años de antigüedad, de modo que los puntos de vista, opiniones e instrucciones que se vierten en él pueden no corresponder con cómo pienso ahora o cómo funcionan las cosas en la actualidad. He evolucionado (y también lo han hecho el mundo e Internet), así que probablemente lo más recomendable sería entender esta entrada como un simple reflejo del (de mi) pasado. 🙂

AccesibilidadEsto es lo que nos indica la pauta 10.4 (prioridad 3, es decir, mínima, pero no por ello completamente obviable) de las denominadas Pautas de Accesibilidad al Contenido Web 1.0 (WCAG 1.0), desarrolladas por la Iniciativa de Accesibilidad Web (WAI), perteneciente al World Wide Web Consortium (W3C):

WCAG 10.4: Hasta que las aplicaciones de usuario manejen correctamente los controles vacíos, incluya caracteres por omisión en los campos de edición y áreas de texto. (Prioridad 3).

Según esto, todos los campos de edición y áreas de texto deben contener algún caracter porque existen ayudas técnicas que no pueden poner el foco en los controles vacíos.

Si nos interesa cumplir con todas las pautas pero no queremos que se vea por defecto ningún caracter y estamos desesperados porque el truco de colocar   no nos funciona, he aquí una solución.

Una manera de incluir textos por defecto (y así cumplir con los estándares de accesibilidad) y al mismo tiempo evitar que sea un engorro para el visitante borrar el texto por defecto para introducir sus propios datos es utilizar JavaScript siguiendo la propuesta de HTML Source.

Lo que viene a decir es que, para conseguirlo, no hay más que descargar dos archivos .js: util-functions.js y clear-default-text.js

Luego, «llamamos» a esos archivos desde la cabecera de nuestro sitio (entre las etiquetas <head>):

<script type="text/javascript" src="util-functions.js"></script>
<script type="text/javascript" src="clear-default-text.js"></script>

Y luego, asociar la clase «cleardefault» a cada campo del formulario:

<input type="text" name="date" value="yy-mm-dd" class="cleardefault" />

Aunque se deshabilite JavaScript el sitio seguirá siendo usable, aunque no se borrarán los valores por defecto al colocar el cursor sobre ellos.

Espero que pueda ayudaros. 🙂