Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As informações básicas de acessibilidade geralmente são categorizadas em nome, função e valor. Este tópico descreve o código para ajudar seu aplicativo a expor as informações básicas de que as tecnologias adaptativas precisam.
Nome acessível
Um nome acessível é uma cadeia de caracteres de texto curta e descritiva que um leitor de tela usa para anunciar um elemento de interface do usuário. Defina o nome acessível para elementos de interface do usuário para que tenham um significado importante para entender o conteúdo ou interagir com a interface do usuário. Esses elementos normalmente incluem imagens, campos de entrada, botões, controles e regiões.
Esta tabela descreve como definir ou obter um nome acessível para vários tipos de elementos em uma interface do usuário XAML.
| Tipo de elemento | Descrição |
|---|---|
| Texto estático | Para os elementos TextBlock e RichTextBlock , um nome acessível é determinado automaticamente a partir do texto visível (interno). Todo o texto nesse elemento é usado como o nome. Consulte Nome do texto interno. |
| Imagens | O elemento de imagem XAML não tem um análogo direto ao atributo alt do HTML img e elementos semelhantes. Use AutomationProperties.Name para fornecer um nome ou utilize a técnica de legendagem. Consulte Nomes acessíveis para imagens. |
| Elementos de formulário | O nome acessível para um elemento de formulário deve ser o mesmo que o rótulo exibido para esse elemento. Consulte Rótulos e LabeledBy. |
| Botões e links | Por padrão, o nome acessível de um botão ou link é baseado no texto visível, usando as mesmas regras descritas em Nome do texto interno. Nos casos em que um botão contém apenas uma imagem, use AutomationProperties.Name para fornecer um equivalente somente texto da ação pretendida do botão. |
A maioria dos elementos de contêiner, como painéis, não promovem seu conteúdo como nome acessível. Isso ocorre porque é o conteúdo do item que deve relatar um nome e uma função correspondente, não seu contêiner. O elemento contêiner pode relatar que é um elemento que tem filhos em uma representação da Automação da Interface do Usuário da Microsoft, de modo que a lógica de tecnologia assistiva possa percorrê-lo. Mas os usuários de tecnologias adaptativas geralmente não precisam saber sobre os contêineres e, portanto, a maioria dos contêineres não são nomeados.
Função e valor
Os controles e outros elementos de interface do usuário que fazem parte do vocabulário XAML implementam o suporte à Automação da Interface do Usuário (UI Automation) para relatar função e valor como parte de suas definições. Você pode usar as ferramentas de Automação da Interface do Usuário para examinar as informações de função e valor dos controles ou ler a documentação do AutomationPeer implementações de cada controle. As funções disponíveis em uma estrutura de Automação de Interface do Usuário são definidas na enumeração AutomationControlType. Clientes de Automação da Interface do Usuário, como tecnologias assistivas, podem obter informações sobre funções chamando métodos expostos pela estrutura de Automação da Interface do Usuário usando o AutomationPeer do controle.
Nem todos os controles têm um valor. Os controles que têm um valor relatam essas informações à Automação da Interface do Usuário por meio dos pares e padrões compatíveis com esse controle. Por exemplo, um elemento de formulário do tipo caixa de texto tem um valor. Uma tecnologia adaptativa pode ser um cliente de Automação de Interface do Usuário e pode descobrir que existe um valor e qual é o valor. Nesse caso específico, o TextBox suporta o padrão IValueProvider através das definições de TextBoxAutomationPeer.
Observação
Para casos em que você usa AutomationProperties.Name ou outras técnicas para fornecer o nome acessível explicitamente, não inclua o mesmo texto usado pela função de controle ou digite informações no nome acessível. Por exemplo, não inclua cadeias de caracteres como "botão" ou "lista" no nome. As informações de função e tipo vêm de uma propriedade de Automação de Interface do Usuário diferente (LocalizedControlType) que é fornecida pelo suporte de controle padrão para a Automação da Interface do Usuário. Muitas tecnologias adaptativas acrescentam o LocalizedControlType ao nome acessível, portanto, duplicar a função no nome acessível pode resultar em palavras repetidas desnecessariamente. Por exemplo, se você der a um controle de botão o nome acessível de "botão" ou incluir "botão" como a última parte do nome, isso poderá ser lido pelos leitores de tela como "botão botão". Você deve testar esse aspecto de suas informações de acessibilidade usando o Narrador.
Influenciando as exibições de árvore de Automação da Interface do Usuário
A estrutura de UI Automation tem um conceito de visões em árvore, em que os clientes de UI Automation podem recuperar as relações entre elementos em uma interface do usuário usando três visões possíveis: crua, controle e conteúdo. A exibição de controle é a exibição que geralmente é usada pelos clientes de Automação da Interface do Usuário porque fornece uma boa representação e organização dos elementos em uma interface do usuário interativa. As ferramentas de teste geralmente permitem que você escolha qual modo de exibição de árvore usar quando a ferramenta apresenta a organização dos elementos.
Por padrão, qualquer classe derivada da classe de controle e alguns outros elementos aparecerão na exibição de controle quando a estrutura de Automação da Interface do Usuário representar a interface do usuário de um aplicativo do Windows. Mas, às vezes, você não deseja que um elemento apareça na exibição de controle devido à composição da interface do usuário, em que esse elemento está duplicando informações ou apresentando informações que não são importantes para cenários de acessibilidade. Use a propriedade anexada AutomationProperties.AccessibilityView para alterar como os elementos são expostos às exibições de árvore. Se você colocar um elemento na árvore Raw, a maioria das tecnologias adaptativas não relatará esse elemento como parte de suas exibições. Para ver alguns exemplos de como isso funciona em controles existentes, abra o arquivo XAML de referência de design generic.xaml em um editor de texto e pesquise AutomationProperties.AccessibilityView nos modelos.
Nome extraído do texto interno
Para facilitar o uso de cadeias de caracteres que já existem na interface do usuário visível para valores de nome acessíveis, muitos dos controles e outros elementos da interface do usuário oferecem suporte para determinar automaticamente um nome acessível padrão com base no texto interno dentro do elemento ou em valores de cadeia de caracteres de propriedades de conteúdo.
- TextBlock, RichTextBlock, TextBox e RichTextBlock promovem o valor da propriedade Text como o nome acessível padrão.
- Qualquer subclasse ContentControl utiliza uma técnica iterativa "ToString" para localizar strings no valor de seu Conteúdo e promove essas strings como o nome acessível padrão.
Observação
Conforme imposto pela Automação da Interface do Usuário, o comprimento do nome acessível não pode ser maior que 2048 caracteres. Se uma cadeia de caracteres usada para determinação automática de nome acessível exceder esse limite, o nome acessível será truncado nesse ponto.
Nomes acessíveis para imagens
Para dar suporte aos leitores de tela e fornecer as informações básicas de identificação para cada elemento na interface do usuário, às vezes você deve fornecer alternativas de texto para informações não textuais, como imagens e gráficos (excluindo elementos puramente decorativos ou estruturais). Esses elementos não têm texto interno, portanto, o nome acessível não terá um valor calculado. Você pode definir o nome acessível diretamente definindo a propriedade anexada AutomationProperties.Name , conforme mostrado neste exemplo.
XAML
<!-- Comment -->
<Image Source="product.png"
AutomationProperties.Name="An image of a customer using the product."/>
Como alternativa, considere incluir uma legenda de texto que aparece na interface do usuário visível e que também serve como as informações de acessibilidade associadas ao rótulo para o conteúdo da imagem. Veja um exemplo:
XAML
<Image HorizontalAlignment="Left" Width="480" x:Name="img_MyPix"
Source="snoqualmie-NF.jpg"
AutomationProperties.LabeledBy="{Binding ElementName=caption_MyPix}"/>
<TextBlock x:Name="caption_MyPix">Mount Snoqualmie Skiing</TextBlock>
Rótulos e EtiquetadoPor
A maneira preferida de associar um rótulo a um elemento de formulário é usar um TextBlock
XAML
<StackPanel x:Name="LayoutRoot" Background="White">
<StackPanel Orientation="Horizontal">
<TextBlock Name="lbl_FirstName">First name</TextBlock>
<TextBox
AutomationProperties.LabeledBy="{Binding ElementName=lbl_FirstName}"
Name="tbFirstName" Width="100"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="lbl_LastName">Last name</TextBlock>
<TextBox
AutomationProperties.LabeledBy="{Binding ElementName=lbl_LastName}"
Name="tbLastName" Width="100"/>
</StackPanel>
</StackPanel>
Descrição acessível (opcional)
Uma descrição acessível fornece informações adicionais de acessibilidade sobre um elemento de interface do usuário específico. Normalmente, você fornece uma descrição acessível quando um nome acessível sozinho não transmite adequadamente a finalidade de um elemento.
O leitor de tela do Narrador lê a descrição acessível de um elemento somente quando o usuário solicita mais informações sobre o elemento pressionando CapsLock+F.
O nome acessível destina-se a identificar o controle em vez de documentar totalmente seu comportamento. Se uma breve descrição não for suficiente para explicar o controle, você poderá definir a propriedade anexada AutomationProperties.HelpText , além de AutomationProperties.Name.
Testando a acessibilidade antecipadamente e com frequência
Por fim, a melhor abordagem para dar suporte aos leitores de tela é testar seu aplicativo usando um leitor de tela por conta própria. Isso mostrará como o leitor de tela se comporta e quais informações básicas de acessibilidade podem estar ausentes do aplicativo. Em seguida, você pode ajustar os valores de propriedade da interface do usuário ou da automação da interface do usuário adequadamente. Para mais informações, consulte teste de acessibilidade.
Uma das ferramentas que você pode usar para testar a acessibilidade é chamada AccScope. A ferramenta AccScope é particularmente útil porque você pode ver representações visuais da interface do usuário que representam como as tecnologias adaptativas podem exibir seu aplicativo como uma árvore de automação. Em particular, há um modo narrador que fornece uma visão de como o Narrador obtém texto do seu aplicativo e como ele organiza os elementos na interface do usuário. O AccScope foi projetado para que ele possa ser usado e útil durante um ciclo de desenvolvimento para um aplicativo, mesmo durante a fase de design preliminar. Para obter mais informações, consulte AccScope.
Nomes acessíveis de dados dinâmicos
O Windows dá suporte a muitos controles que podem ser usados para exibir valores provenientes de uma fonte de dados associada, por meio de um recurso conhecido como associação de dados. Ao preencher listas com itens de dados, talvez seja necessário usar uma técnica que define nomes acessíveis para itens de lista associados a dados depois que a lista inicial é preenchida. Para mais informações, consulte o "Cenário 4" no exemplo XAML de acessibilidade .
Nomes acessíveis e localização
Para garantir que o nome acessível também seja um elemento localizado, você deve usar técnicas corretas para armazenar cadeias de caracteres localizáveis como recursos e referenciar as conexões de recurso com valores de diretiva x:Uid . Se o nome acessível estiver vindo de um uso de AutomationProperties.Name definido explicitamente, verifique se a cadeia de caracteres também é localizável.
Observe que as propriedades anexadas, como as propriedades AutomationProperties, usam uma sintaxe de qualificação especial para o nome do recurso, de modo que o recurso faça referência à propriedade anexada conforme aplicado a um elemento específico. Por exemplo, o nome do recurso para AutomationProperties.Name conforme aplicado a um elemento de interface do usuário chamado MediumButton é: MediumButton.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name.
Tópicos relacionados
Windows developer