A seguir estão descritas várias dicas para que seja possível utilizar a interface IAccessibility fornecida pelo Windows.
1) Utilizar Grupos em vez de Rótulos
Se você utilizar um Rótulo para nomear um grupo de widgets relacionados, remova o rótulo e substitua seu composto pai por um Grupo cujo texto seja o mesmo descrito no Rótulo do título.
2) Evitar Compostos intermediários.
As ferramentas de IAccessibility lerão até a hierarquia pai de um widget focalizado enquanto houver widgets para serem lidos. Certifique-se de que não haja widgets sem texto em nenhum lugar da árvore.
3) Utilizar Textos Somente Leitura em vez de Rótulos
Um texto pode ser acessado com o teclado e deverá ser utilizado para que as informações de um rótulo fiquem acessíveis à navegação pelo teclado. Observe que um rótulo ao lado de um texto será tratado como um título e, assim, caso você tenha um par título:valor que queira mostrar, será exigido apenas que você torne o widget de valor um Texto.
4) Ler e entender a lista de verificação da IBM. http://www-3.ibm.com/able/accesssoftware.html
5) Atribuir mnemônicos a todos os menus e itens de menus.
Assegure que sejam exclusivos em um determinado menu. Se um menu for composto dinamicamente de vários plug-ins, será melhor não atribuir mnemônicos, uma vez que não será possível evitar conflitos em geral (por exemplo, a lista Arquivo > Novo ou a lista Janela > Mostrar Exibição)
6) Atribuir mnemônicos a todos os rótulos de controles em diálogos / páginas de preferências / páginas de propriedades (por ex., botões, caixas de opções, botões de opções, etc)
Assegure que sejam exclusivos no diálogo. Tome cuidado para evitar confrontos com os botões padrão (por ex., Restaurar &Padrões, &Aplicar nas páginas de preferências; &Avançar, &Voltar, &Concluir em assistentes). Não atribua mnemônicos aos botões OK e Cancelar. Se OK tornar-se o botão padrão do shell e Cancelar for equivalente a fechar o shell, Enter e Esc serão mapeados para essas definições por padrão. Geralmente, não é uma boa idéia utilizar Esc ou Enter.
7) Se um controle não tiver seu próprio rótulo (por exemplo, um campo de texto), utilize um rótulo anterior que termine com ':' e atribua um mnemônico a ele. Leitoras de tela como JAWS lerão esse rótulo quando o controle for focalizado (por exemplo, consulte Janela > Preferências > Workbench)
8) Evitar rótulos independentes extras, pois não é possível navegar até eles com o teclado e leitoras de tela como JAWS; ignore-os, porque não podem ser focalizados
9) Não atribuir mnemônicos a controles na janela principal (exceto menus principais e seus itens), mesmo que pareça ser um diálogo (por ex., os editores de formulário no WSAD), pois geralmente entrarão em conflito com os mnemônicos dos menus
10) Atribuir teclas de atalho para as funções mais utilizadas (e -somente- para estas funções).
Existem apenas duas maneiras de conectar teclas de atalho no SWT:
- definindo um acelerador em um item de menu na barra de menus principal (eles são ignorados nos menus de contexto)- as ações de JFace possuem suporte para isso
- conectando um ouvinte de tecla em um determinado controle (por ex., na implementação de uma exibição ou editor)
Consulte a tabela de teclas de atalho do Eclipse SDK (disponível fora de eclipse.org -> Projetos -> Projeto Eclipse -> Plataforma -> UI -> Recursos de Desenvolvimento -> Acessibilidade) para evitar confronto.
12) Evitar combinações Alt+{tecla}, pois podem entrar em conflito com mnemônicos dos menus
13) Evitar combinações Ctrl+Alt+{tecla}, pois sempre entram em conflito com a digitação de caracteres especiais em teclados internacionais (Alt Gr = Ctrl+Alt)
14) Evitar combinações Ctrl+Espaço+{tecla}, pois Ctrl-Espaço é utilizado para troca de modo em idiomas asiáticos.
15) Tentar salvar o contexto de navegação.
por ex., em Workbench / Preferências, lembramos agora a página que foi selecionada por último. Isso evita ter que navegar pela lista todas as vezes
16) Atribuir uma pessoa específica da equipe para ser responsável pela acessibilidade em seu projeto.
17) Testar a acessibilidade.
Combine com sua equipe "um dia de desconexão do mouse" para que tentem utilizar o produto apenas com o teclado. Obtenha uma cópia do JAWSTM (http://www.freedomscientific.com/) e assegure que a sua UI possa ser utilizada com ele