Abrir "atalhos de teclado" em uma nova aba abre a mesma página em que você estava ao clicar em "atalhos de teclado"

Olá, acho que isso é menos um bug e mais um comportamento inesperado…

Tenho o hábito, no meu Mac, de usar ⌘+Clique para abrir links em novas abas. Quando faço isso em “Atalhos de Teclado” no menu hambúrguer, abre-se uma nova aba que não exibe os atalhos de teclado.

A navegação para esse “link” é tratada dentro do aplicativo. Coloquei link entre aspas porque não é realmente um link, já que não aponta para nenhum endereço específico.

<a class="widget-link keyboard-shortcuts-link" href="" title="Atalhos de Teclado">
  <span class="d-label">Atalhos de Teclado</span>
</a>

Note como o atributo href está vazio?

Ele apenas abre um modal ou caixa de diálogo. Portanto, não é possível abrir esse link em uma nova aba e fazer com que o modal apareça.

1 curtida

Olá, entendo. Eu apenas queria apontar que isso é um comportamento inesperado do ponto de vista do usuário, pois visualmente, “Atalhos de Teclado” parece exatamente como um link. Se houver alguma maneira de oferecer uma indicação de que o processo de “abrir em nova aba” não funcionará, seria ideal. Acho que isso não precisa ser priorizado, claro — não consigo imaginar que muitas pessoas estejam enfrentando isso.

A título de informação, remover o atributo href por completo (em vez de defini-lo como uma string vazia, o que é uma referência ao documento atual) deve impedir que o link seja aberto em uma nova aba, pelo menos na maioria dos navegadores.

4 curtidas

Justo, uma tag âncora sem href é válida no HTML5.

O problema ao removê-la é que ela seria removida do índice de tabulação, o que significa que você não conseguiria acessar esse link usando o teclado ou outros métodos de entrada alternativos.

Podemos corrigir isso adicionando tabindex: 0.

Então, podemos fazer algo como:

links.push({
  action: "showKeyboard",
  className: "keyboard-shortcuts-link",
  label: "keyboard_shortcuts_help.title",
  attributes: {
    tabindex: 0
  }
});

a menos que @awesomerobot esteja ciente de algum outro problema ao remover o href?

5 curtidas

Sinto que isso é uma leve melhoria em relação a abrir uma nova aba, mas ainda parece estranho que nada aconteça quando tento abrir esse link em uma nova aba… especialmente porque é o único link no menu que se comporta dessa forma.

Idealmente, deveríamos abrir o modal do teclado de qualquer maneira. Em /widgets/link.js.es6, temos

click(e) {
if (wantsNewWindow(e)) {
      return;
    }
...

Então, parece que estamos impedindo que qualquer coisa aconteça ao clicar lá se for para abrir uma nova janela/aba?.. Me pergunto se podemos fazer uma pequena reorganização ali para que possamos abrir o modal mesmo com teclas modificadoras pressionadas.

5 curtidas