1 puntos por GN⁺ 4 시간 전 | 1 comentarios | Compartir por WhatsApp
  • 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 touchstart de 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 touchstart al 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

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

 
GN⁺ 4 시간 전
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.

    • Vaya, apenas me acabo de dar cuenta de que las letras en las plumas o lápices están colocadas para leerse mientras los sostienes. También es la primera vez que noto que, si los agarras como zurdo, siempre se ven al revés.
    • Intenté pensar en una pluma que encajara con esa descripción, pero no pude. Hasta busqué fotos de plumas y sigo sin verlo claro; lo único que se me ocurrió fue una pluma de lujo que parecía acercarse y quizá cumpla la condición.
  • 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.

    • Aunque mi dominancia de la mano izquierda es muy fuerte, para algunas cosas que puedo hacer con ambas manos normalmente rechazo la expresión “ambi-dexterous” y me llamo a mí mismo omni-sinisterous.
    • En varios idiomas de la familia indoeuropea, las palabras para “derecha” tienen un origen común, pero las de “izquierda” no [1].
      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.

    • Soy zurdo, pero casi siempre sostengo el teléfono con la mano derecha. La razón es simple.
      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.
    • Con una muestra de una sola persona: para escribir en una pantalla táctil, definitivamente soy más rápido con la mano dominante. Puedo hacerlo con ambas y no es tan difícil como escribir a mano, pero si pasa de mirar la pantalla un momento o hacer unos cuantos swipes, la mano dominante resulta más cómoda.
    • Los zurdos tendemos a desarrollar cierto grado de ambidestreza, porque el mundo nos exige con fuerza que nos volvamos diestros.
      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.
    • Cuando hago algo más que solo mirar la pantalla, en la práctica casi siempre uso únicamente la mano correcta.
    • Soy diestro y uso ambas manos. Aunque prefiero un poco la derecha, hice una prueba rápida y parece que en el teléfono escribo mejor con la izquierda que con la derecha.
      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.

    • Yo hago exactamente lo mismo, y por la misma razón. El teléfono va en el bolsillo izquierdo, así que al sacarlo queda naturalmente en la mano izquierda.
      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 touchstart ahí 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 Space funciona 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, y element.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?

    • Fue un bug de eventos táctiles móviles que solo encontraron los usuarios zurdos. Los diestros arrastran la pantalla con el pulgar derecho, así que el dedo no llegaba cerca del enlace que fallaba.
    • El artículo no lo dice explícitamente, pero al ver el PR vinculado queda claro que se trata del uso de pantalla táctil. Probablemente era una situación en smartphones.