Acessibilidade para aplicativos do Tempo de Execução do Windows em C#/VB/C++ e XAML

Applies to Windows and Windows Phone

Nós descrevemos alguns dos conceitos e tecnologias que se relacionam com cenários de acessibilidade para um aplicativo do Tempo de Execução do Windows que usa as extensões de componentes C#, Visual Basic ou estensões de componentes Visual C++ (C++/CX) para o seu código de aplicativo, e XAML para a sua definição de interface de usuário.

Procurando a versão para JavaScript deste tópico? Veja Acessibilidade para aplicativos do Tempo de Execução do Windows em JavaScript e HTML.

Mapa: como este tópico está relacionado aos outros? Veja:

Pré-requisitos

Supomos que você saiba como criar um aplicativo básico do Tempo de Execução do Windows. Para obter instruções sobre como criar o seu primeiro aplicativo do Tempo de Execução do Windows em C++, C# ou Visual Basic, consulte Criar seu primeiro aplicativo do Tempo de Execução do Windows em C# ou Visual Basic ou Criar seu primeiro aplicativo do Tempo de Execução do Windows em C++.

Acessibilidade e seu aplicativo

Acessibilidade significa tornar os seus aplicativos utilizáveis por pessoas que possuem limitações que impeçam o uso de interfaces de usuário convencionais. Para algumas situações, os requisitos de acessibilidade são impostos por lei. No entanto, é uma boa ideia resolver os problemas de acessibilidade independentemente dos requisitos legais, para que seus aplicativos tenham a maior audiência possível. Há também uma declaração da Windows Store em relação à acessibilidade para o seu aplicativo.

  • Applies to Windows Phone

Declarar o aplicativo como acessível é relevante somente para a Windows Store.

Há muitas deficiências ou problemas possíveis, incluindo limites de movimento, visão, percepção de cores, audição, fala, cognição e alfabetização. Contudo, você pode abordar a maioria das exigências seguindo as diretrizes oferecidas aqui. Isso significa fornecer:

  • Suporte a interações de teclado e leitores de tela.
  • Suporte a personalização do usuário, como fonte, ajuste de zoom (ampliação), cor e configurações de alto contraste.
  • Alternativas ou suplementos para partes de sua interface do usuário.

Os controles do do Tempo de Execução do Windows para XAML fornecem suporte integrado ao teclado e suporte a tecnologias assistenciais, como leitores de tela, que tiram vantagem de estruturas de acessibilidade que já suportam aplicativos do Tempo de Execução do Windows, HTML e outras tecnologias de interface de usuário. Este suporte integrado permite um nível básico de acessibilidade que você pode personalizar com muito pouco trabalho, definindo apenas algumas propriedades. Se você estiver criando seus próprios controles e componentes personalizados de XAML, também poderá adicionar suporte semelhante a esses controles usando o conceito de um par de automatização.

Além disso, a associação de dados, o estilo e os recursos de modelos facilitam a implementação do suporte para mudanças dinâmicas para as configurações de exibição e texto para interfaces de usuário alternativas.

Automação de Interface de Usuário

O suporte de acessibilidade para aplicativos do Tempo de Execução do Windows em C ++, C # ou Visual Basic vem principalmente do suporte integrado para a estrutura de automação da interface do usuário da Microsoft. Esse suporte é fornecido através de classes de base e comportamento integrado da implementação de classe para os tipos de controle, e uma representação da interface do Tempo de execução do Windows da API de provedores de automação da interface do usuário. Cada classe de controle usa os conceitos de automação de interface de usuário de par de automação e padrões de automação para relatar a função do controle e o conteúdo para os clientes de automação da interface do usuário. O aplicativo do Tempo de Execução do Windows é tratado como uma janela de nível superior pela Automação da interface do usuário e através da estrutura de Automação da interface do usuário todo o conteúdo de acessibilidade relevante dentro dessa janela de aplicativo estará disponível para um cliente de Automação da interface do usuário. Para saber mais sobre a Automação da Interface do Usuário, consulte Visão geral sobre a Automação da Interface do Usuário.

tecnologia assistencial

Muitas necessidades de acessibilidade do usuário são atendidas por produtos de tecnologia assistencial instalados pelo usuário ou por ferramentas e configurações fornecidas pelo sistema operacional. Isso inclui a funcionalidade como leitores de tela, ampliação de tela e configurações de alto contraste.

Os produtos de tecnologia assistencial incluem uma grande variedade de hardwares e softwares. Esses produtos funcionam por meio de estruturas de interface e acessibilidade de teclado padrão que relatam informações sobre o conteúdo e a estrutura de uma interface de usuário para leitores de tela e outras tecnologias assistenciais. Exemplos de produtos de tecnologia assistencial:

  • Software de teclado na tela, que permite às pessoas usar um ponteiro no lugar de um teclado para digitar um texto.
  • Software de reconhecimento de voz, que converte as palavras faladas em texto digitado.
  • Leitores de tela, que convertem o texto em palavras faladas ou outras formas, como o Braille.
  • O leitor de tela Narrator que é especificamente parte do Windows. O Narrator possui um modo de toque que pode executar tarefas de leitura de tela ao processar gestos de toque quando não houver um teclado disponível.
  • Programas ou configurações que ajustam a exibição ou suas áreas, por exemplo os temas de alto contraste ou a ferramenta Lupa.

Os aplicativos que possuem um bom suporte a leitor de telas e teclado normalmente funcionam bem com diversos produtos de tecnologia assistencial. Em muitos casos, um aplicativo do Tempo de Execução do Windows funciona muito bem com esses produtos sem a modificação adicional de informações ou estrutura. Mas convém modificar algumas configurações para obter a melhor experiência de acessibilidade ou para implementar suporte adicional.

Algumas das opções que você pode usar para testar os cenários de acessibilidade básica com tecnologias assistenciais são listadas em Testando a acessibilidade do seu aplicativo.

Suporte a leitores de tela e informações básicas de acessibilidade

Os leitores de tela fornecem acesso ao texto em um aplicativo transformando-o em algum outro formato, como um idioma falado ou Braille. O comportamento exato de um leitor de tela depende do software e da configuração do usuário nele.

Por exemplo, alguns leitores de tela leem a interface do usuário do aplicativo inteiro quando o usuário executa ou alterna para o aplicativo sendo visualizado, permitindo o usuário receber todo o conteúdo informacional disponível antes de tentar navegar nele. Alguns leitores de telas também leem o texto associado a um controle individual quando ele recebe foco durante a navegação por tabulação. Isso permite que os usuários se orientem conforme navegam pelos controles de entrada de um aplicativo. O Narrator é um exemplo de leitor de tela que fornece os dois comportamentos, dependendo da escolha do usuário.

A informação mais importante que um leitor de tela ou qualquer outra tecnologia assistencial precisa para ajudar os usuários a entender ou navegar um aplicativo é um nome acessível para partes do elementos do aplicativo. Em muitos casos, um controle ou elemento já tem um nome acessível que é calculado a partir de outros valores de propriedade que você forneceu. O caso mais comum em que você pode usar um nome já calculado é com um elemento que suporta e exibe o texto interno. Para outros elementos, você pode precisar contabilizar outras maneiras de fornecer um nome acessível seguindo as práticas recomendadas para a estrutura do elemento. E, às vezes, você precisa fornecer um nome que se destina explicitamente a ser o nome acessível para acessibilidade do aplicativo. Para obter uma lista de quantos desses valores calculados funcionam em elementos comuns de interface do usuário e para saber mais sobre os nomes acessíveis em geral, veja Expondo informações básicas sobre elementos da interface do usuário.

Existem várias outras propriedades de automação disponíveis (incluindo as propriedades de teclado descritas na próxima seção). Contudo, nem todos os leitores de tela dão suporte a todas as propriedades de automação. Em geral, você deve definir todas as propriedades e teste de automação apropriadas para dar o suporte mais amplo possível para os leitores de tela.

Suporte ao teclado

Para fornecer um bom suporte ao teclado, você precisa assegurar que todas as partes de seu aplicativo possam ser usadas com teclado. Se o seu aplicativo usa principalmente os controles padrão e não usa os controles personalizados, você já passou da metade do caminho. O modelo de controle do aplicativo do Tempo de Execução do Windows dá suporte ao teclado interno, incluindo navegação pela tecla tab, entrada de texto e suporte específico ao controle. Os elementos que servem como contêineres de layout (como painéis) usam a ordem do layout para estabelecer uma ordem de tabulação padrão. Essa ordem é geralmente a ordem de tabulação correta para uma representação acessível da interface do usuário. Se você usar os controles ListBox e GridView para exibir dados, eles fornecerão a navegação por teclas de direção internas. Ou se você usar um controle Button, ele já manipula as teclas Barra de Espaço ou Enter para a ativação do botão.

Para saber mais sobre todos os aspectos de suporte a teclado em um aplicativo do Tempo de Execução do Windows, incluindo a ordem de tabulação e a ativação ou navegação baseada em teclas, veja Implementando acessibilidade de teclado.

Mídia e legendas

Para um aplicativo do Tempo de Execução do Windows em C++, C# ou Visual Basic, a mídia audiovisual é normalmente exibida pelo MediaElement objeto. Você pode usar MediaElement os membros dessa classe para controlar a reprodução da mídia. Para fins de acessibilidade, forneça controles que permitem que os usuários reproduzam, pausem e parem a mídia conforme necessário. Às vezes, a mídia inclui componentes adicionais que são destinados à acessibilidade, como legendas ou faixas de áudio alternativas que incluem descrições narrativas. Para saber mais sobre os conceitos relacionados à mídia, MediaElement e acessibilidade, veja Tornando o conteúdo de mídia acessível.

Texto acessível

Três aspectos principais do texto são relevantes para a acessibilidade:

  • As ferramentas devem determinar se o texto deve ser lido como parte de uma passagem de sequência de guias ou apenas como parte de uma representação geral do documento. Você pode ajudar a controlar essa determinação escolhendo o elemento adequado para exibir o texto ou ajustando as propriedades desses elementos de texto. Cada elemento de texto disponível em um aplicativo do Tempo de Execução do Windows tem uma finalidade específica, e o efeito muitas vezes tem uma função correspondente de Automação da Interface do Usuário. Usar o elemento errado pode resultar no relatório da função errada para a Automação da Interface do Usuário e na criação de uma experiência confusa para um usuário de tecnologia assistencial.
  • Muitos usuários têm limitações de visão que tornam difícil para eles lerem o texto, a menos que haja contraste adequado no contexto. A maneira na qual isso afeta o usuário não é intuitiva para os designers de aplicativo que não tem essa limitação de visão. Por exemplo, para usuários daltônicos, opções erradas de cores na concepção podem impedir que alguns usuários sejam capazes de ler o texto. As recomendações de acessibilidade que originalmente foram feitas para o conteúdo da Web definir os padrões de contraste que também podem evitar esses problemas em aplicativos. Para saber mais, veja Atendendo aos requisitos de texto acessível.
  • Muitos usuários têm dificuldade em ler texto muito pequeno. Você pode evitar esse problema aumentando consideravelmente o texto na interface do usuário do seu aplicativo. No entanto, isso é um desafio para os aplicativos que exibem grandes quantidades de texto ou os textos intercalados com outros elementos visuais. Nesses casos, verifique se o aplicativo interage corretamente com os recursos do sistema que podem aumentar a visualização na tela, de modo que todos os textos contidos no aplicativo sejam ampliados com ele. (Alguns usuários alteram os valores dpi como uma opção de acessibilidade. Esta opção está disponível em Fazer coisas em uma tela maior em Facilidade de Acesso, que redireciona para um Painel de Controle de interface do usuário para Aparência e Personalização / Tela.)

Oferecendo suporte a temas de alto contraste

Os controles de interface do usuário que são fornecidos para os aplicativos do Tempo de Execução do Windows em C++, C# ou Visual Basic usam uma representação visual definida como parte de um dicionário de recursos XAML de temas. Um ou mais desses temas é usado especificamente quando o sistema é definido para alto contraste. Quando o usuário alterna para alto contraste, ao consultar o tema adequado de um dicionário de recursos dinamicamente, todos os controles da interface do usuário também usarão um tema de alto contraste adequado. Apenas verifique se você não desabilitou os temas especificando um estilo explícito ou usando outra técnica de estilização que impede que os temas de alto contraste sejam carregados e substituam as mudanças de estilo. Para saber mais, veja Dando suporte a temas de alto contraste.

Design de interface do usuário alternativa

Ao projetar seus aplicativos, leve em consideração como eles podem ser usados por pessoas com mobilidade, visão e audição limitadas. Como os produtos de tecnologia assistencial fazem amplo uso de interfaces de usuário padrão, é particularmente importante fornecer um bom suporte ao teclado e a leitores de tela mesmo se você não fizer outros ajustes de acessibilidade.

Em muitos casos, você pode transportar informações essenciais usando várias técnicas para ampliar a sua audiência. Por exemplo, você pode destacar informações usando informações de ícone e de cor para ajudar aos usuários que são cegos e exibir alertas visuais com efeitos sonoros para ajudar aos usuários que possuem deficiência de audição.

Se necessário, você pode fornecer elementos de interface do usuário acessíveis e alternativos que removem completamente os elementos e animações não essenciais e fornecem outras simplificações para dinamizar a experiência do usuário. O exemplo de código a seguir demonstra como exibir uma instância de UserControl em lugar de outra dependente de uma configuração de usuário.


<StackPanel x:Name="LayoutRoot" Background="White">

  <CheckBox x:Name="ShowAccessibleUICheckBox" Click="ShowAccessibleUICheckBox_Click">
    Show Accessible UI
  </CheckBox>

  <UserControl x:Name="ContentBlock">
    <local:ContentPage/>
  </UserControl>

</StackPanel>


private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
    if ((sender as CheckBox).IsChecked.Value)
    {
        ContentBlock.Content = new AccessibleContentPage();
    }
    else
    {
        ContentBlock.Content = new ContentPage();
    }
}

Verificação e publicação

Para obter mais informações sobre as declarações de acessibilidade e a publicação do seu aplicativo, veja Declarando o seu aplicativo acessível na Windows Store.

  • Applies to Windows Phone

Declarar o aplicativo acessível é relevante somente para a Windows Store.

Suporte a tecnologia assistencial em controles personalizados

Ao criar um controle personalizado, recomendamos que você também implemente ou estenda uma ou mais subclasses AutomationPeer para fornecer suporte à acessibilidade. Em alguns casos, desde que você use a mesma classe de par que foi usada pela classe de controle base, o suporte de automação para sua classe derivada é adequado em um nível básico. Entretanto, você deve testar isso e implementar um par ainda é uma prática recomendada, dessa forma, o par pode relatar corretamente o nome da classe de sua nova classe de controle. A implementação de um par de automação personalizada inclui algumas etapas. Para saber mais, veja Pares de automação personalizada.

suporte a tecnologia adaptativa em aplicativos que dão suporte a interoperabilidade de XAML/Microsoft DirectX

O conteúdo DirectX que está hospedado em uma IU XAML (usando SwapChainPanel ou SurfaceImageSource) não é acessível por padrão. A amostra de interoperabilidade DirectX SwapChainPanel XAML mostra como criar pares de automação de interface do usuário para o conteúdo DirectX hospedado. Essa técnica torna o conteúdo hospedado acessível por meio da de Automação de interface do usuário.

Tópicos relacionados

Windows.UI.Xaml.Automation
Design para acessibilidade
Acessibilidade para aplicativos do Tempo de Execução do Windows em JavaScript e HTML
Exemplo de acessibilidade XAML

 

 

Mostrar:
© 2015 Microsoft