[Javaescript] Uso de manejadores y validación
SkuNk
skunk1 en gmail.com
Mar Sep 18 03:28:47 PDT 2007
El día 18/09/07, Sergio Iglesias <ser.iglesias en gmail.com> escribió:
>
> Gracias. Miraré todo esto que me pasas detenidamente.
> Una cosa: si desactivas el plugin de javascript, sigues teniendo toda la
> funcionalidad de la web. Es decir, que el punto 6.4, a priori sí lo
> cumpliría puesto que permito la navegación.
>
> El día 18/09/07, SkuNk <skunk1 en gmail.com> escribió:
> >
> >
> > 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
>
>
>
En ese caso, y si el contenido que cargas en AJAX está disponible sin
JavaScript, con extraer los eventos a un archivo .js externo como te he
mostrado en el ejemplo, tendrás solucionado el problema.
Saludos!
PD: Cuando respondas a un mensaje de la lista, utiliza siempre el "Responder
a todos" para que se incluya el mail de la lista y todos podamos seguir el
hilo (algunas listas no añaden la cabecera Reply-To), de lo contrario (como
es el caso de tu última respuesta a mi respuesta) sólo lo recibirá la
persona a la que respondes.
--
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/26c417c5/attachment.htm
Más información sobre la lista de distribución Javaescript