Desenvolvendo aplicativos inclusivos do Windows

Este artigo discute como desenvolver aplicativos acessíveis do Windows. Especificamente, ele presume que você entende como criar a hierarquia lógica para seu aplicativo. Aprenda a desenvolver aplicativos acessíveis do Windows que incluem configurações de navegação por teclado, cor e contraste e suporte para tecnologias adaptativas.

Se você ainda não tiver feito isso, comece lendo Criando software inclusivo.

Há três coisas que você deve fazer para se certificar de que seu aplicativo seja acessível:

  1. Exponha os elementos da interface do usuário ao acesso programático.
  2. Verifique se o aplicativo dá suporte à navegação por teclado para pessoas que não conseguem usar um mouse ou tela touch.
  3. Verifique se o aplicativo dá suporte a configurações de cor e contraste acessíveis.

Acesso Programático

O acesso programático é essencial para a criação de acessibilidade em aplicativos. Isso é realizado por meio da definição do nome acessível (obrigatório) e a descrição (opcional) dos elementos de interface de usuário interativa e do conteúdo em seu aplicativo. Isso garante que os controles de interface do usuário sejam expostos à tecnologia assistencial (a), como leitores de tela (por exemplo, o Narrador) ou dispositivos de saída alternativos (como telas em Braille). Sem acesso programático, as APIs de tecnologia assistencial não conseguem interpretar informações corretamente, deixando o usuário incapaz de usar os produtos suficientemente ou forçando o AT a usar as interfaces de programação não documentadas ou técnicas nunca antes usadas como uma interface de acessibilidade. Quando os controles de interface do usuário são expostos à tecnologia assistencial, a AT é capaz de determinar quais ações e opções estão disponíveis para o usuário.

Para saber mais sobre como tornar os elementos de interface do usuário do seu aplicativo disponíveis para as tecnologias assistenciais (AT), veja Expor informações básicas de acessibilidade.

Navegação por teclado

Para usuários cegos ou que têm problemas de mobilidade, é extremamente importante ser capaz de navegar a interface do usuário com um teclado. No entanto, apenas os controles de interface do usuário que exigem interação do usuário à função devem ter o foco do teclado. Componentes que não exigem uma ação, como imagens estáticas, não precisam do foco do teclado.

É importante lembrar que, ao contrário da navegação com um mouse ou toque, a navegação de teclado é linear. Ao considerar a navegação de teclado, pense em como o usuário interagirá com seu produto e qual será a lógica de navegação. Em culturas ocidentais, as pessoas leem da esquerda para a direita, de cima para baixo. Portanto, é prática comum seguir esse padrão para navegação de teclado.

Ao projetar a navegação de teclado, examine sua interface do usuário e pense nestas perguntas:

  • Como os controles são dispostos ou agrupados na interface do usuário?
  • Há alguns grupos significativos de controles?
    • Em caso afirmativo, esses grupos contêm outro nível de grupos?
  • Entre os controles pares, a navegação deve ser feita por tabulação ou via navegação especial (como teclas de direção), ou ambos?

O objetivo é ajudar o usuário a entender como a interface do usuário é disposta e identificar os controles que são acionáveis. Se você estiver achando que existem muitas tabulações antes de o usuário concluir o loop de navegação, considere a possibilidade de agrupar os controles relacionados. Alguns controles relacionados, como um controle híbrido, talvez precisem ser abordados neste estágio de exploração inicial. Depois que você começar a desenvolver seu produto, é difícil fazer reformulações na navegação de teclado, portanto, planeje com cuidado e antecipadamente!

Para saber mais sobre a navegação de teclado entre elementos de interface do usuário, veja Acessibilidade de teclado.

Além disso, o eBook Software de engenharia para acessibilidade tem um capítulo excelente sobre esse assunto intitulado Projetando a hierarquia lógica.

Cor e contraste

Um dos recursos integrados de acessibilidade no Windows é o modo de alto contraste, o que aumenta o contraste de cor de texto e de imagens na tela do computador. Para algumas pessoas, aumentar o contraste das cores reduz a fadiga ocular e facilita a leitura. Ao verificar sua interface do usuário em alto contraste, você deseja verificar se os controles foram codificados consistentemente e com cores do sistema (não com cores embutidas em código) para garantir que os usuários possam ver todos os controles na tela que um usuário que não usa alto contraste veria.

XAML

<Button Background="{ThemeResource ButtonBackgroundThemeBrush}">OK</Button>

Para saber mais sobre o uso de cores e recursos do sistema, veja Recursos de tema XAML.

Desde que você não tenha substituído as cores do sistema, um aplicativo UWP dá suporte a temas de alto contraste por padrão. Quando o usuário decide que o sistema deve utilizar um tema de alto contraste das configurações de sistema ou ferramentas de acessibilidade, a estrutura usa automaticamente as cores e as configurações de estilo que produzem layout e renderização de alto contraste para controles e componentes na interface do usuário.

Para saber mais, veja Temas de alto contraste.

Se você decidiu usar seu próprio tema de cores em vez de cores do sistema, considere estas diretrizes:

Taxa de contraste de cor – A Seção 508 atualizada do Americans with Disability Act, bem como outras leis, exige que o contraste de cor padrão entre o texto e seu plano de fundo deve ser 5:1. Para texto grande (tamanhos de fonte de 18 pontos ou 14 pontos e em negrito), o contraste padrão necessário é 3:1.

Combinações de cores – Cerca de 7% dos machos (e menos de 1% das fêmeas) têm alguma forma de deficiência de cor. Os usuários com daltonismo têm problemas para diferenciar determinadas cores, portanto, é importante que não apenas a cor seja usada para transmitir status ou significado em um aplicativo. Assim como em imagens decorativas (como ícones ou planos de fundo), as combinações de cores devem ser escolhidas de forma que maximize a percepção da imagem por usuários daltônicos.

Lista de verificação de acessibilidade

Veja a seguir uma versão abreviada da lista de verificação de acessibilidade:

  1. Defina o nome acessível (obrigatório) e a descrição (opcional) dos elementos de interface de usuário interativa e do conteúdo em seu aplicativo.
  2. Implemente a acessibilidade do teclado.
  3. Verifique sua interface do usuário para garantir que o contraste do texto esteja adequado, que os elementos renderizem corretamente nos temas em alto contraste e que as cores estejam sendo usadas corretamente.
  4. Execute ferramentas de acessibilidade, resolva problemas relatados e verifique a experiência de leitura da tela. (Veja o tópico Testes de acessibilidade)
  5. Verifique se as configurações do manifesto do aplicativo seguem as diretrizes de acessibilidade.
  6. Declare seu aplicativo como acessível na Microsoft Store. (Veja o tópico Acessibilidade na loja).

Para obter mais detalhes, veja o tópico Lista de verificação de acessibilidade inteiro.