O botão Curtir está perdendo seu rótulo em algumas circunstâncias

Olá à equipe!
Isso é mais um relatório rápido. Acabei de notar em outro tópico que o botão de Curtir às vezes não possui um rótulo de acessibilidade. Ainda não encontrei o padrão. Mas possivelmente tem a ver com se uma postagem já recebeu um ou mais curtidas ou ainda nenhuma, e o controle é dividido para mostrar isso. Então vejo dois botões: um tem a contagem e o segundo está sem rótulo.

Marco

3 curtidas

Ah, acredito que isso seja porque estamos testando nosso plugin Discourse Reactions aqui no Meta (Notice: testing Discourse Reactions here on meta for 1 week!). Precisamos corrigir isso! Obrigado pelo relatório.

6 curtidas

@Ahmed_Gagan FYI, certifique-se de dar uma olhada nisso.

5 curtidas

Testei em diversos cenários, mas não consegui reproduzir o problema. A etiqueta sempre foi exibida, mas na primeira vez há um certo atraso, o que é um comportamento geral do atributo title. Estou assumindo que o problema esteja relacionado à dica de ferramenta (tooltip) fornecida para o botão de curtir. Estamos na mesma página quanto a isso?

1 curtida

Estou me referindo ao que o leitor de tela fala sobre o botão que você pressiona para curtir uma postagem. Ou talvez seja possível adicionar outras reações de alguma forma, mas meu leitor de tela não me informa nada sobre isso. A única coisa que recebe um rótulo é o elemento que mostra a contagem atual de curtidas, se for 1 ou superior. Se for 0, esse controle nem aparece. No entanto, o botão que preciso pressionar para adicionar uma reação de “Curtir” não possui rótulo para meus leitores de tela no Windows, Mac e iOS.

Sou cego, portanto não uso o mouse. Além disso, o atributo title, de modo geral, é problemático para interações por toque, pois normalmente não há uma maneira fácil de acionar um hover do mouse.

Espero que isso ajude…

Para ficar claro, estou me referindo ao botão #discourse-reactions-actions-916340 > div > div.discourse-reactions-reaction-button.my-likes > button. Esse botão não possui título nem aria-label; há apenas um SVG interno com aria-hidden. E mesmo que não fosse, esse SVG e seus elementos filhos também não contêm nenhuma informação que um leitor de tela possa utilizar. Portanto, a solução aqui é:

  1. Adicionar um aria-label a esse botão, algo como “Curtir esta postagem” ou “Reagir com Curtir” ou similar. Como eventualmente poderão haver mais reações em algum lugar, essa redação precisa ser explícita quanto a qual reação está sendo adicionada.
  2. O elemento que contém a contagem, #discourse-reactions-counter-916340, provavelmente deveria fornecer informações melhores sobre quem reagiu com quais reações. Não sei como pessoas videntes acessam isso, talvez ao clicar nesse número e aparecer um popup em algum lugar. Mas isso também precisa ser acessível a leitores de tela e usuários de teclado.
  3. Se outras reações forem adicionadas em algum momento, elas também precisarão ser acessíveis não apenas para o mouse, mas também para toque, teclado e leitores de tela.

No momento, pelo menos para mim, o widget parece permitir apenas reações de “curtir”.

Peço desculpas pelos múltiplos posts, mas isso mostra o quão meticuloso às vezes é necessário ser para encontrar a causa de algo. O atributo title em postagens que não são minhas está atualmente no div pai do botão real de “curtir”. No entanto, para que um leitor de tela o detecte, o título precisa estar no próprio botão. Leitores de tela não capturam títulos de qualquer elemento. Essa generalização foi abusada demais nos últimos 25 anos. Portanto, se você mover o atributo title para o elemento filho <button>, o leitor de tela o capturará corretamente.

1 curtida

Obrigado, @MarcoZehe, por fornecer o ponto exato onde você precisava do título.
Adicionei um PR aqui que resolverá seu problema.

@MarcoZehe, o PR foi mesclado agora. Você pode baixar o plugin mais recente e testá-lo.

Obrigado! Vou aguardar até que esta instância atualize o código mais recente do plugin. Não estou executando minha própria instância do Discourse, então não tenho onde adicionar o plugin. Obrigado pela correção rápida!

4 curtidas

Muito obrigado, Marco.

Acabei de reimplantar as reações aqui (deverá estar ao vivo em cerca de 15 minutos).

Avise-nos se o problema parece ter sido resolvido.

3 curtidas

Oi @Sam, o problema definitivamente parece resolvido para mim. Obrigado!

4 curtidas

Muito obrigado, Marco, por testar!

2 curtidas