Bug do WordPress que afetava apenas usuários canhotos
(shkspr.mobi)- Havia um problema em dispositivos móveis em que a caixa de resposta a comentários se abria de repente durante a rolagem, e o administrador do site, que rolava com o polegar direito, não conseguia reproduzi-lo
- A causa era o link de reply no lado esquerdo da página e o tratamento de
touchstartdo WordPress; rolar com o polegar esquerdo podia levar a um toque não intencional no link - Esse bug já havia sido relatado no WordPress Trac há 7 anos, e o código relacionado foi adicionado ao repositório de desenvolvimento do WordPress em 2017
- No passado, era necessário evitar o atraso de 300 ms para diferenciar toques do zoom por toque duplo, mas, segundo um artigo do Chrome de 2013 e o material do FastClick de 2015, isso já era um problema antigo
- A correção consiste em remover algumas linhas do código do WordPress e se concentra em reduzir ações indesejadas de resposta a comentários durante a rolagem em dispositivos móveis
Otimização do blog e JavaScript dos comentários
- Várias modificações customizadas foram aplicadas sobre a instalação padrão do WordPress para otimizar o blog ao máximo
- O uso de JavaScript foi reduzido ao mínimo, e a configuração permite que os recursos funcionem mesmo sem JavaScript
- Ainda assim, o JavaScript ajuda em alguns recursos, e o exemplo mais visível é a funcionalidade de comentários
Problema que só apareceu ao rolar com a mão esquerda
- Um leitor informou um bug no site: durante a rolagem da página, a caixa de comentários aparecia de repente e atrapalhava a navegação
- O administrador do site rolava a página com frequência, mas usava o polegar direito, por isso não percebeu o mesmo problema
- O usuário que relatou o bug rolava com a mão esquerda, e o link de reply problemático ficava no lado esquerdo da página
- Um evento de toque que quase não aparecia ao rolar com o polegar direito podia ocorrer indesejadamente ao rolar com o polegar esquerdo
Tratamento de touchstart no WordPress
- Esse problema já havia sido relatado no WordPress Trac há 7 anos
- Em 2017, um desenvolvedor do WordPress adicionou um listener de
touchstarta cliques em links - Navegadores antigos não conseguiam distinguir com certeza se um evento de toque era o início de um clique ou o início de um zoom por toque duplo
- Disparar o evento primeiro quando ocorria um toque em um link podia ser visto, na época, como um tratamento para evitar o atraso de 300 ms
O problema do atraso de 300 ms que já desapareceu
- O atraso de 300 ms no toque há muito tempo deixou de ser o mesmo tipo de problema
- Um post de 2013 no blog de desenvolvedores do Chrome aborda o fato de que esse problema de atraso havia desaparecido
- Também segundo o material do FastClick de 2015, isso já não era mais uma questão importante a ser resolvida
- Portanto, não está claro por que, em 2017, foi adicionado um código que incomodava usuários canhotos ao rolar
Forma da correção e efeito esperado
- Sete anos após o relato do bug, o PR de correção do WordPress foi commitado
- A correção não é uma mudança complexa, mas sim a remoção de algumas linhas do código do WordPress
- Com essa mudança, pode diminuir o problema em que o link de reply é acionado sem intenção durante a rolagem em dispositivos móveis, abrindo a caixa de resposta a comentários
- Não existe um recurso de restrição de acesso por lateralidade como
<meta handed="right">; esta mudança se concentra em impedir eventos de toque indesejados
1 comentários
Opiniões no Lobste.rs
Coisas demais no mundo são pensadas para destros. Até slogans em canetas muitas vezes ficam orientados para serem lidos quando seguradas com a mão direita
Ainda assim, viver sendo canhoto significa ter pelo menos um pequeno bloqueador de anúncios natural
“sinister disposition” é engraçado. Lembro do dia em que descobri que sinister e dexterous (dexter) significam literalmente “esquerda” e “direita”, respectivamente
Esse fenômeno cultural de desviar da norma → mal ainda continua interessante
Provavelmente porque a palavra original para esquerda virou tabu e foi substituída por uma nova, e depois essa nova também acabou virando tabu, repetidamente
[1]: https://reddit.com/r/asklinguistics/…
As pessoas normalmente seguram o celular só com a mão dominante? Sou canhoto, mas uso as duas mãos para o celular de forma quase aleatória e em proporções parecidas, então achei que todo mundo fosse assim
No começo eu segurava o celular com a direita e operava com a esquerda, mas com o tempo fui fazendo cada vez mais coisas com o polegar direito, e ele acabou virando o principal ponto de interação
Também uso o mouse com a direita, porque quando era criança o cabo do mouse no laboratório de informática era curto demais para mudar para a esquerda
Eu também sou canhoto, mas faço muita coisa com a direita, como escrever à mão. No piano também minha mão dominante é a direita, e a forma como a maioria das peças é escrita certamente influenciou isso. No celular também uso as duas mãos
Mas, passando de duas ou três frases, aí passo a digitar com os dois polegares
Curiosamente, embora eu faça quase todo o resto com a direita, com o celular tendo a segurar e usar com a esquerda
Não sei bem por quê, mas acho que é porque coloco o celular no bolso esquerdo e a carteira e as chaves no direito. Usar as chaves e pegar a carteira é mais confortável com a mão dominante. Fico me perguntando se sou estranho
No fim, faço scroll e tarefas básicas com a esquerda, mas quando vou escrever mensagens longas costumo segurar com a esquerda e usar swipe com a direita
Usar
touchstartali já era um erro desde o começoMouse, toque e ponteiro são ativados ao soltar, não ao pressionar, mas o ponto onde você começou a pressionar precisa ser o mesmo elemento. Eventos de teclado são ativados em keydown, não em keyup. Só que, de forma estranha, quando
Spacefunciona em um botão ele ativa em keyup, e ao contrário do mouse nem se importa em qual elemento o keydown aconteceuDá para testar várias possibilidades com algo como
data:text/html,<button onclick=this.textContent=Math.random()>One</button><button onclick=this.textContent=Math.random()>Two</button>Preparar a ativação em
touchstart, por exemplo começar a buscar dados do servidor antes se necessário, teria sido aceitável. Mas a execução real da ação ainda não deveria acontecer, eelement.addEventListener( 'touchstart', clickEvent );foi exatamente onde isso foi tratado de forma erradaNão entendi o que isso tinha a ver com canhotos
É algum comportamento específico de touchpad que eu não conheço por ser usuário de mouse?