Este guia se concentra em como usar a navegação padrão do teclado, conforme implementada atualmente no Blockly.
Usar a navegação pelo teclado
Para que a navegação pelo teclado seja bem-sucedida, um usuário precisa ser capaz de concluir as tarefas abaixo:
- Navegar pelo espaço de trabalho
- Conectar blocos em um espaço de trabalho
- Adicionar um bloco ao espaço de trabalho
- Remover blocos
- Navegar pela caixa de ferramentas
- Navegar no menu suspenso
- Inserir blocos do menu suspenso
Veja abaixo como a navegação por teclado padrão do Blockly realiza essas tarefas.
Como ativar a navegação pelo teclado
Um usuário pode ativar e desativar a navegação pelo teclado pressionando Shift + Ctrl + k.
Quando a navegação pelo teclado é ativada pela primeira vez, uma linha vermelha piscando aparece no
espaço de trabalho. Este é o cursor. Ele mostra a localização atual do usuário e as atualizações
à medida que ele navega pelo espaço de trabalho.
Pressionar Enter cria uma linha azul no local atual que representa o marcador de um usuário. Um marcador exibe uma região de destino para inserção do bloco. Ele não é atualizado quando você move o cursor pelo espaço de trabalho.
Como usar o cursor padrão
O espaço de trabalho é composto de entradas, campos, conexões, blocos e coordenadas. O cursor padrão se move pelo espaço de trabalho dividindo todos os componentes em níveis diferentes.
Para navegar entre os níveis, use as teclas A e D. Para navegar por um nível, use as teclas W e S.
Nível do espaço de trabalho
Entre no modo de navegação com o teclado pressionando Shift + Ctrl + k. Isso coloca o cursor no espaço de trabalho ou no primeiro bloco do espaço de trabalho. Se o
cursor estiver em um bloco, mova-o para o nível do espaço de trabalho pressionando A duas vezes.
Para mover o cursor no espaço de trabalho, use Shift + WASD. Para passar para
a pilha, use a tecla D.
Nível da pilha
No nível da pilha, você pode navegar entre pilhas de blocos no
espaço de trabalho usando as teclas W e S. Nesse nível, o cursor é
representado por um retângulo vermelho sólido em torno de todos os blocos de uma pilha. Para ir para
o primeiro bloco na pilha selecionada, use a tecla D.
Nível de bloco e conexões
Esse nível contém um bloco e todas as conexões externas do bloco. O cursor padrão é definido para pular o bloco se houver uma conexão anterior ou de saída. Se não houver nenhuma, o cursor se moverá para o bloco, conforme mostrado abaixo.
As três possíveis conexões externas são mostradas abaixo.
No nível do bloco e da conexão, é possível navegar pelas conexões externas usando as teclas W e S. Nesse nível, o cursor
é representado por um contorno vermelho intermitente da conexão atual. Para ir para o
primeiro campo ou entrada em um bloco, pressione D.
Campos e nível de entrada
Esse nível contém todos os campos e entradas que estão no bloco. Veja abaixo alguns exemplos de campos e entradas.
Neste nível, é possível navegar pelos campos e entradas editáveis do bloco atual com W e S. Para um campo, o cursor é um retângulo vermelho sólido. Para a entrada, o cursor é uma peça de quebra-cabeça vermelha piscando. Quando o
cursor estiver em uma entrada, pressione D para ir até o bloco conectado.
Quando o cursor estiver em um campo, pressione Enter para editá-lo.
Blocos de conexão no espaço de trabalho
- Navegue até a conexão de destino usando as chaves WASD
- Marque a conexão usando a tecla Enter.
- Navegue até um ponto de conexão válido usando as teclas WASD
- Conecte os dois blocos usando a tecla I (para inserção).
Como mover um bloco no espaço de trabalho
Normalmente, no Blockly, você move um bloco para o espaço de trabalho pegando-o, arrastando-o para a posição desejada e soltando-o. Com os atalhos do teclado, você marca sua localização de destino, navegue até o bloco que você quer mover e diga a ele para se mover.
- Acesse uma posição no espaço de trabalho usando as teclas Shift + WASD
- Marque o local no espaço de trabalho usando a tecla Enter.
- Use as teclas WASD para acessar o bloco que você quer mover
- Mova o bloco até o local marcado usando a tecla I.
Remoção de blocos
Normalmente, no Blockly, você desconecta dois blocos pegando o bloco inferior e arrastando-o para fora do bloco pai. Com os atalhos do teclado, você desconecta os blocos pressionando X com o cursor na conexão que quer interromper.
- Navegue até a conexão que você quer interromper usando as chaves WASD
- Interromper a conexão com X
Como inserir um bloco da caixa de ferramentas
- Pressione a tecla T para abrir a caixa de ferramentas
- Use as teclas W e S para navegar pelas categorias
- Pressione a tecla D para ir até os blocos no menu suspenso
- Navegue pelos blocos usando as teclas W e S.
- Pressione a tecla Enter para inserir um bloco no menu suspenso.
Experimentação
Acreditamos que há quatro áreas principais em que as pessoas podem estar interessadas em experimentar:
- Mapeamentos de teclas: quais teclas devem ser mapeadas para quais ações.
- Texto para leitores de tela/registro/avisos: como um leitor de tela deve ler a localização dos cursores, além de quaisquer erros ou avisos.
- Navegação do Workspace: como um usuário navega pelos diferentes blocos, campos, entradas e conexões no espaço de trabalho.
- Aparência do cursor: a aparência do cursor e do marcador.
Para mais informações sobre como usar essas APIs, consulte o laboratório de códigos de navegação por teclado em blocos (em inglês).
Se você tiver outras áreas em que queira testar e que possamos ajudar, preencha este formulário.
Perguntas frequentes
P: Por que vocês não usaram as teclas de seta para a navegação pelo teclado?
R:Os leitores de tela geralmente usam as teclas de seta. Não queríamos interferir nesse
processo, então optamos por usar as chaves WASD.
No entanto, reconhecemos que todos
têm necessidades diferentes. Por isso,
recomendamos criar uma maneira fácil de alterar os mapeamentos de teclas.
P: Parece complicado. Por que precisamos de camadas diferentes?
R:Ao pensar na navegação pelo teclado, precisávamos de uma maneira estruturada de percorrer
os diferentes blocos, conexões, campos, entradas e coordenadas do espaço de trabalho.
Internamente, representamos isso com uma árvore de sintaxe abstrata (AST, na sigla em inglês). A implementação
do cursor padrão não se afasta desse modelo.Isso é intencional
para que os desenvolvedores entendam melhor a arquitetura subjacente. Há
outros cursors
que podem ser mais fáceis de entender para um usuário final.
Limitações
Ainda não oferecemos suporte à navegação para componentes que não bloqueiam (por exemplo, lixeira, botões de zoom e botões suspensos). Para mais informações sobre limitações, consulte a lista de bugs de navegação por teclado aberto.