Un bug de WordPress que solo afectaba a usuarios zurdos
(shkspr.mobi)- En móviles, había un problema por el que el cuadro de respuesta a comentarios se abría de repente al hacer scroll, y el administrador del sitio, que hacía scroll con el pulgar derecho, no podía reproducirlo
- La causa estaba en el enlace de reply del lado izquierdo de la página y en el manejo de
touchstartde WordPress; hacer scroll con el pulgar izquierdo podía terminar en un toque involuntario sobre el enlace - Este bug ya había sido reportado en WordPress Trac hace 7 años, y el código relacionado se agregó al repositorio de desarrollo de WordPress en 2017
- Antes era necesario evitar el retraso de 300 ms para distinguir entre un toque y el zoom con doble toque, pero según una publicación de Chrome de 2013 y la documentación de FastClick de 2015, ya era un problema obsoleto
- La corrección consiste en eliminar unas pocas líneas del código de WordPress y se enfoca en reducir las acciones no deseadas de respuesta a comentarios durante el scroll en móviles
Optimización del blog y JavaScript de comentarios
- Sobre una instalación básica de WordPress, se aplicaron varias modificaciones personalizadas para optimizar el blog al máximo
- Se redujo al mínimo el uso de JavaScript, y se configuró para que las funciones operen incluso sin JavaScript
- Sin embargo, JavaScript ayuda en algunas funciones, y el ejemplo más evidente es la función de comentarios
Un problema que solo apareció al hacer scroll con la mano izquierda
- Un lector reportó un bug del sitio: mientras hacía scroll por la página, el cuadro de comentarios aparecía de repente e interrumpía la navegación
- El administrador del sitio hacía scroll con frecuencia, pero como usaba el pulgar derecho no había detectado el mismo problema
- El usuario que reportó el bug hacía scroll con la mano izquierda, y el enlace de reply problemático estaba en el lado izquierdo de la página
- Un evento táctil que no se manifestaba fácilmente al hacer scroll con el pulgar derecho podía activarse involuntariamente al hacer scroll con el pulgar izquierdo
El manejo de touchstart en WordPress
- Este problema ya había sido reportado en WordPress Trac hace 7 años
- En 2017, un desarrollador de WordPress agregó un listener
touchstartal clic de enlaces - Los navegadores de antes no podían distinguir con certeza si un evento táctil era el inicio de un clic o el inicio de un zoom con doble toque
- Disparar primero el evento cuando ocurría un toque sobre un enlace podía considerarse, en ese momento, una forma de evitar el retraso de 300 ms
Un problema de retraso de 300 ms que ya había desaparecido
- El retraso de 300 ms al tocar dejó hace mucho de ser el mismo tipo de problema
- Una publicación del blog de desarrolladores de Chrome de 2013 trata sobre cómo ese problema de retraso había desaparecido
- Según la documentación de FastClick de 2015, este problema ya no era un asunto principal que hubiera que resolver
- Por eso, no queda claro por qué en 2017 se agregó un código que terminaba molestando a usuarios que hacían scroll con la mano izquierda
Forma de corrección y efecto esperado
- Siete años después del reporte del bug, se hizo commit del PR de corrección de WordPress
- La corrección no es un cambio complejo, sino que consiste en eliminar unas pocas líneas del código de WordPress
- Con este cambio, podría reducirse el problema de que el enlace de reply se active involuntariamente durante el scroll en móviles y abra el cuadro de respuesta a comentarios
- No existe una función de restricción de acceso por mano dominante como
<meta handed="right">; este cambio se enfoca en impedir eventos táctiles no deseados
1 comentarios
Comentarios en Lobste.rs
Demasiadas cosas en el mundo están pensadas para diestros. Muchas veces, incluso el texto publicitario en las plumas queda orientado para leerse cuando se sostienen con la mano derecha.
Aun así, vivir siendo zurdo significa tener una especie de bloqueador de anuncios innato, al menos un poco.
Me dio risa lo de “sinister disposition”. Recuerdo el día en que aprendí que sinister y dexterous (dexter) literalmente significan “izquierdo” y “derecho”, respectivamente.
Sigue pareciéndome interesante ese fenómeno cultural que aún cargamos: desviarse de la norma → maldad.
Probablemente porque la palabra original para “izquierda” se volvió tabú y fue reemplazada por una nueva, y luego esa nueva palabra también se volvió tabú, repitiéndose el ciclo.
[1]: https://reddit.com/r/asklinguistics/…
¿La gente normalmente sostiene el teléfono solo con su mano dominante? Soy zurdo, pero uso ambas manos para el teléfono de forma casi aleatoria y más o menos por igual; pensé que todos hacían lo mismo.
Al principio sostenía el teléfono con la derecha y lo operaba con la izquierda, pero con el tiempo empecé a hacer cada vez más cosas con el pulgar derecho, hasta que se volvió mi principal punto de interacción.
También uso el mouse con la derecha, porque de niño el cable del mouse en el laboratorio de computación era corto y no podía moverlo al lado izquierdo.
Yo también soy zurdo, pero hago muchas cosas con la derecha, como escribir a mano. En el piano, la derecha también es mi mano dominante, y seguramente influye la forma en que está escrita la mayoría de las piezas. También uso ambas manos con el teléfono.
Eso sí, si paso de dos o tres frases, escribo con ambos pulgares.
Curiosamente, para casi todo lo demás uso la derecha, pero con el teléfono tiendo a sostenerlo y usarlo con la izquierda.
No sé bien por qué, pero creo que es porque llevo el teléfono en el bolsillo izquierdo y la cartera y las llaves en el derecho. Usar las llaves y sacar la cartera es más cómodo con la mano dominante. Me pregunto si soy raro.
Al final hago scroll y tareas básicas con la izquierda, pero cuando escribo mensajes largos suelo sostenerlo con la izquierda y escribir con swipe con la derecha.
Usar
touchstartahí estuvo mal desde el principio.El mouse, el touch y el puntero se activan al soltar, no al presionar, aunque el punto donde empezó la pulsación debe ser el mismo elemento. Los eventos de teclado se activan en keydown, no en keyup. Sin embargo, el caso en que
Spacefunciona en un botón es, curiosamente, en keyup, y a diferencia del mouse, ni siquiera le importa en qué elemento ocurrió el keydown.Se pueden probar varias posibilidades con algo como
data:text/html,<button onclick=this.textContent=Math.random()>One</button><button onclick=this.textContent=Math.random()>Two</button>.Preparar la activación en
touchstart, por ejemplo empezar a traer datos del servidor por adelantado si hace falta, habría estado bien. Pero la ejecución de la acción real todavía no debería ocurrir, yelement.addEventListener( 'touchstart', clickEvent );manejaba justo eso de forma incorrecta.No entendí qué tiene que ver esto con ser zurdo.
¿Es algún comportamiento particular del touchpad que no conozco porque uso mouse?