[Javaescript] Uso de manejadores y validación

SkuNk skunk1 en gmail.com
Mar Sep 18 01:07:07 PDT 2007


El día 18/09/07, Sergio Iglesias <ser.iglesias en gmail.com> escribió:
>
> Hola a todos:
> Estoy rediseñando mi página web y he utilizado un poco de AJAX en la
> página
> de inicio. Tengo problemas de validación con la misma. He pasado la página
> por eXaminator y me da estos errores:
>
> [image: Ocultar] Se usan manejadores de eventos que dependen de un
> dispositivo sin manejadores redundantes (onclick sin onkeypress, por
> ejemplo).
>
> Los eventos deben poder activarse con cualquier dispositivo porque hay
> usuarios que no pueden, por ejemplo, usar un ratón. Por tanto se deben
> especificar manejadores de evento independientes del tipo de dispositivo o
> definir eventos redundantes.
>
> WCAG 6.4: Para los scripts y applets, asegúrese de que la ejecución de los
> manejadores de eventos sean independientes del tipo de dispositivo.
> *(Prioridad
> 2)*
>
> Buscando información sobre este tipo de "error" y analizando la página con
> watchfire, me dicen que utilice los eventos onclick con onkeypress. Pero
> al
> hacer esto, el efecto que consigo no es muy apropiado que diga yo.
> Pulsando
> cualquier tecla se está recargando la parte de AJAX. El otro error que me
> da, es uno que me dice que tengo 7 errores de validación. He mirado estos
> errores, y son a consecuencia de la función de AJAX. Esta es la función:
>
> <script type="text/javascript">
> function cargar(iddiv,pagina) {
> divId = iddiv;
> url = pagina;
> loader = '<p class="cargando">Cargando datos...<br />Espera un momento,
> por
> favor.<\/p>'; // 'html for loading' or false
> effect = 'false'; // 'appear' , 'blind' , 'highlight' or false
> ecache = false; // cache for html file true or false
> $ajaxload(divId, url, loader, effect, ecache);
> }
> </script>
>
> y este es el error:
>
> http://validator.w3.org/check?verbose=1&uri=http%3A%2F%2Fwww.sergioiglesias.net%2Fnueva%2Findex.php
>
> Espero alguna solución y cualquier comentario será bienvenido.
>
> Gracias!!
> ------------ próxima parte ------------
> Se ha borrado un adjunto en formato HTML...
> URL:
> http://lists.scriptia.net/private.cgi/javaescript-scriptia.net/attachments/20070918/fbc501e0/attachment.htm
> _______________________________________________
> Javaescript mailing list
> Javaescript en lists.scriptia.net
> http://lists.scriptia.net/listinfo.cgi/javaescript-scriptia.net
>


Hola Sergio,

Para empezar, la forma en que lo estás haciendo es obtrusiva, porque quién
no disponga de esta tecnología no podrá acceder a los contenidos cargados
con AJAX y obviamente el cambiar onclick por onkeypress no soluciona nada,
ya que como te está diciendo el punto 6.4 de la validación de accesibilidad,
los eventos deben ser independientes, lo que quiere decir que NO debes usar
eventos y/o debe de haber una alternativa, o bien con un correspondiente
elemento <noscript> por cada <script> o permitir esa navegación sin
javascript con formularios sencillos, enlaces de navegación, etc.

Segunda, si pretendes realizar una página accesible, olvidate de AJAX para
cargar contenidos, utilizalo únicamente para complementar la funcionalidad
en caso de que dispongan de la tecnología, pero que esta siga siendo
funcional sin ella. Luego, separa bien la capa de comportamiento con la de
presentación (CSS) y la de contenido (HTML), evitando escribir los eventos
en la maquetación y definiendo estos en un archivo js externo. Por ejemplo.

if(document.getElementById('mielemento'))
    document.getElementById('mielemento').onclick = function()
    {
       alert("Cargando datos....");
       cargar()....
    }

Esto te validará el WCAG correctamente (al menos automáticamente), pero
seguirá siendo obtrusivo si no permites una alternativa.

Bueno, te dejo un par de enlaces sobre el tema.
http://es.wikipedia.org/wiki/JavaScript_no_obstructivo
http://www.estadobeta.com/2005/11/25/3-capas-de-presentacin/
http://outbook.blogspot.com/2007/06/las-tres-capas-del-diseo-web.html

Espero te sea útil.

-- 
Philipp Keweloh
skunk1 en gmail.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.scriptia.net/private.cgi/javaescript-scriptia.net/attachments/20070918/260b2e85/attachment.html 


Más información sobre la lista de distribución Javaescript