Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A criação de um aplicativo acessível tem implicações comerciais importantes. Muitos governos têm regulamentos de acessibilidade para a compra de software. O logótipo Certified for Windows inclui requisitos de acessibilidade. Estima-se que 30 milhões de residentes só nos EUA, muitos deles potenciais clientes, são afetados pela acessibilidade do software.
Este passo a passo abordará os cinco requisitos de acessibilidade para o logotipo Certified for Windows. De acordo com estes requisitos, uma aplicação acessível irá:
Suporte a configurações de tamanho, cor, fonte e entrada do Painel de Controle. A barra de menus, a barra de título, as bordas e a barra de status serão redimensionadas quando o usuário alterar as configurações do painel de controle. Nenhuma alteração adicional nos controles ou código é necessária neste aplicativo.
Suporta o modo de Alto Contraste.
Forneça acesso documentado do teclado a todas as funcionalidades.
Exponha a localização do foco do teclado visual e programaticamente.
Evite transmitir informações importantes apenas pelo som.
Para obter mais informações, consulte Recursos para projetar aplicativos acessíveis.
Para obter informações sobre como oferecer suporte a layouts de teclado variados, consulte Práticas recomendadas para o desenvolvimento de aplicativos prontos para o mundo.
Criando o projeto
Este passo a passo cria a interface do usuário para um aplicativo que recebe pedidos de pizza. Consiste de um TextBox para o nome do cliente, um grupo RadioButton para selecionar o tamanho da pizza, um CheckedListBox para selecionar as coberturas, dois controles de botão rotulados Pedir e Cancelar, e um menu com um comando Sair.
O usuário insere o nome do cliente, o tamanho da pizza e as coberturas desejadas. Quando o usuário clica no botão Pedido, um resumo do pedido e seu custo são exibidos em uma caixa de mensagem e os controles são limpos e prontos para o próximo pedido. Quando o usuário clica no botão Cancelar, os controles são limpos e estão prontos para o próximo pedido. Quando o usuário clica no item de menu Sair, o programa é fechado.
A ênfase deste passo a passo não é o código para um sistema de pedidos de varejo, mas a acessibilidade da interface do usuário. O passo a passo demonstra os recursos de acessibilidade de vários controles usados com freqüência, incluindo botões, botões de opção, caixas de texto e rótulos.
Para começar a criar a aplicação
- Crie um novo aplicativo do Windows em Visual Basic ou Visual C#. Nomeie o projeto PizzaOrder. Para obter detalhes, consulte Criando novas soluções e projetos.
Adicionando os controles ao formulário
Ao adicionar os controles a um formulário, tenha em mente as seguintes diretrizes para tornar um aplicativo acessível:
Defina as propriedades AccessibleDescription e AccessibleName. Neste exemplo, a configuração Padrão para o AccessibleRole é suficiente. Para obter mais informações sobre as propriedades de acessibilidade, consulte Fornecendo informações de acessibilidade para controles em um Windows Form.
Defina o tamanho da fonte para 10 pontos ou mais.
Observação
Se você definir o tamanho da fonte do formulário como 10 quando iniciar, todos os controles adicionados posteriormente ao formulário terão um tamanho de fonte de 10.
Verifique se qualquer controle Label que descreve um controle TextBox precede imediatamente o controle TextBox na ordem de tabulação.
Adicione uma chave de acesso, usando o caractere "&", à Text propriedade de qualquer controle para o qual o usuário queira navegar.
Adicione uma chave de acesso, usando o caractere "&", à Text propriedade do rótulo que precede um controle para o qual o usuário pode querer navegar. Defina a propriedade UseMnemonic dos rótulos para
true, de forma que o foco seja definido para o próximo controle na ordem de tabulação quando o usuário pressionar a tecla de acesso.Adicione teclas de acesso a todos os itens de menu.
Para tornar seu aplicativo do Windows acessível
Adicione os controles ao formulário e defina as propriedades conforme descrito abaixo. Consulte a imagem no final da tabela para obter um modelo de como organizar os controles no formulário.
Objeto Propriedade Valor Formulário1 Descrição Acessível Formulário de encomenda NomeAcessível Formulário de encomenda Tamanho da fonte 10 Texto Formulário de Pedido de Pizza Caixa de Imagem Nome logótipo Descrição Acessível Uma fatia de pizza NomeAcessível Logótipo da empresa Imagem Qualquer ícone ou bitmap Etiqueta Nome Etiqueta Empresa Texto Boa Pizza TabIndex 1 Descrição Acessível Nome da empresa NomeAcessível Nome da empresa Cor de fundo Azul Cor da frente Amarelo Tamanho do tipo de letra 18 Etiqueta Nome rótulo do cliente Texto &Nome TabIndex 2 Descrição Acessível Etiqueta do nome do cliente NomeAcessível Etiqueta do nome do cliente UseMnemonic Verdade Caixa de texto Nome nome_do_cliente Texto (nenhum) TabIndex 3 Descrição Acessível Nome do cliente NomeAcessível Nome do cliente Caixa de Grupo Nome opções de tamanho Descrição Acessível Opções de tamanho de pizza NomeAcessível Opções de tamanho de pizza Texto Tamanho da pizza TabIndex 4 Botão Rádio Nome Pizza pequena Texto &Pequeno $6.00 Verificado Verdade TabIndex 0 Descrição Acessível Pizza pequena NomeAcessível Pizza pequena Botão Rádio Nome grandePizza Texto &Grande $10.00 TabIndex 1 Descrição Acessível Pizza grande NomeAcessível Pizza grande Etiqueta Nome toppingsLabel Texto &Coberturas (0,75 € cada) TabIndex 5 Descrição Acessível Rótulo de coberturas NomeAcessível Rótulo de coberturas UseMnemonic Verdade CheckedListBox Nome coberturas TabIndex 6 Descrição Acessível Coberturas disponíveis NomeAcessível Coberturas disponíveis Itens Pepperoni, Salsicha, Cogumelos Botão Nome Ordem / Encomenda Texto &Encomendar TabIndex 7 Descrição Acessível Total da encomenda NomeAcessível Total da encomenda Botão Nome Cancelar Texto &Cancelar TabIndex 8 Descrição Acessível Cancelar a encomenda NomeAcessível Cancelar encomenda Menu principal Nome oMenu Principal Item de Menu Nome comandos de ficheiro Texto &Arquivo Item de Menu Nome sairDaApp Texto E&saída Seu formulário será semelhante à seguinte imagem:
Suportando o modo de alto contraste
O modo Alto Contraste é uma configuração do sistema Windows que melhora a legibilidade usando cores contrastantes e tamanhos de fonte que são benéficos para usuários com deficiência visual. A HighContrast propriedade é fornecida para determinar se o modo Alto Contraste está definido.
Se SystemInformation.HighContrast estiver true, a aplicação deverá:
Exibir todos os elementos da interface do usuário usando o esquema de cores do sistema
Transmita por sinais visuais ou sonoros qualquer informação que seja transmitida através da cor. Por exemplo, se determinados itens de lista forem realçados usando uma fonte vermelha, você também poderá adicionar negrito à fonte, para que o usuário tenha uma indicação não colorida de que os itens estão realçados.
Omitir quaisquer imagens ou padrões por trás do texto
O aplicativo deve verificar a configuração de HighContrast quando o aplicativo é iniciado e responder ao evento UserPreferenceChangeddo sistema. O evento UserPreferenceChanged é acionado sempre que o valor de HighContrast muda.
Em nosso aplicativo, o único elemento que não está usando as configurações do sistema para cor é lblCompanyName. A SystemColors classe é usada para alterar as configurações de cor do rótulo para as cores do sistema selecionadas pelo usuário.
Para ativar o modo de Alto Contraste de forma eficaz
Crie um método para definir as cores do rótulo para as cores do sistema.
Private Sub SetColorScheme() If SystemInformation.HighContrast Then companyLabel.BackColor = SystemColors.Window companyLabel.ForeColor = SystemColors.WindowText Else companyLabel.BackColor = Color.Blue companyLabel.ForeColor = Color.Yellow End If End Subprivate void SetColorScheme() { if (SystemInformation.HighContrast) { companyLabel.BackColor = SystemColors.Window; companyLabel.ForeColor = SystemColors.WindowText; } else { companyLabel.BackColor = Color.Blue; companyLabel.ForeColor = Color.Yellow; } }Chame o
SetColorSchemeprocedimento no construtor de formulário (Public Sub New()em Visual Basic epublic Form1()em Visual C#). Para aceder ao construtor no Visual Basic, terá de expandir a região rotulada com o código gerado pelo Windows Form Designer.Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() End Subpublic Form1() { InitializeComponent(); SetColorScheme(); }Crie um procedimento de evento, com a assinatura apropriada, para responder ao evento UserPreferenceChanged.
Protected Sub UserPreferenceChanged(sender As Object, _ e As Microsoft.Win32.UserPreferenceChangedEventArgs) SetColorScheme() End Subpublic void UserPreferenceChanged(object sender, Microsoft.Win32.UserPreferenceChangedEventArgs e) { SetColorScheme(); }Adicione código ao construtor do formulário, após a chamada para
InitializeComponents, para conectar o procedimento de evento ao evento do sistema. Este método chama oSetColorSchemeprocedimento.Public Sub New() MyBase.New() InitializeComponent() SetColorScheme() AddHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _ AddressOf Me.UserPreferenceChanged End Subpublic Form1() { InitializeComponent(); SetColorScheme(); Microsoft.Win32.SystemEvents.UserPreferenceChanged += new Microsoft.Win32.UserPreferenceChangedEventHandler( this.UserPreferenceChanged); }Adicione código ao método de formulário Dispose , antes da chamada para o Dispose método da classe base, para liberar o evento quando o aplicativo for fechado. Para aceder ao método Dispose no Visual Basic, precisarás expandir a região rotulada como código gerado pelo Windows Form Designer.
Observação
O código de evento do sistema executa um thread separado do aplicativo principal. Se você não liberar o evento, o código que você conectar ao evento será executado mesmo depois que o programa for fechado.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If RemoveHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, _ AddressOf Me.UserPreferenceChanged MyBase.Dispose(disposing) End Subprotected override void Dispose(bool disposing) { if(disposing && components != null) { components.Dispose(); } Microsoft.Win32.SystemEvents.UserPreferenceChanged -= new Microsoft.Win32.UserPreferenceChangedEventHandler( this.UserPreferenceChanged); base.Dispose( disposing ); }Pressione F5 para executar o aplicativo.
Transmissão de informações importantes por outros meios que não o som
Nesta aplicação, nenhuma informação é transmitida apenas pelo som. Se você usa som em seu aplicativo, então você deve fornecer as informações por algum outro meio também.
Fornecer informações por outros meios que não sejam sonoros
Faça a barra de título piscar usando a função de API do Windows FlashWindow. Para obter um exemplo de como chamar funções da API do Windows, consulte Passo a passo: chamando APIs do Windows.
Observação
O usuário pode ter o serviço Windows SoundSentry ativado, o que também fará com que a janela pisce quando os sons do sistema forem reproduzidos através do alto-falante embutido do computador.
Exiba as informações importantes em uma janela não modal para que o usuário possa respondê-las.
Exiba uma caixa de mensagem que adquire o foco do teclado. Evite esse método quando o usuário pode estar digitando.
Exiba um indicador de status na área de notificação de status da barra de tarefas. Para obter detalhes, consulte Adicionando ícones de aplicativo à barra de tarefas com o componente Windows Forms NotifyIcon.
Testando o aplicativo
Antes de implantar o aplicativo, você deve testar os recursos de acessibilidade que implementou.
Para testar os recursos de acessibilidade
Para testar o acesso ao teclado, desconecte o mouse e navegue na interface do usuário para cada recurso usando apenas o teclado. Certifique-se de que todas as tarefas podem ser executadas usando apenas o teclado.
Para testar o suporte de Alto Contraste, escolha o ícone Opções de Acessibilidade no Painel de Controle. Clique na guia Exibir e marque a caixa de seleção Usar Alto Contraste. Navegue por todos os elementos da interface do usuário para garantir que as alterações de cor e fonte sejam refletidas. Além disso, certifique-se de que as imagens ou padrões desenhados atrás do texto sejam omitidos.
Observação
Windows NT 4 não tem um ícone Opções de acessibilidade no painel de controle. Assim, este procedimento para alterar a configuração SystemInformation.HighContrast não funciona no Windows NT 4.
Outras ferramentas estão prontamente disponíveis para testar a acessibilidade de um aplicativo.
Para testar a exposição do foco do teclado, execute a aplicação Lupa. (Para abri-lo, clique no menu Iniciar , aponte para Programas, aponte para Acessórios, aponte para Acessibilidade e clique em Lupa). Navegue na interface do usuário usando as guias do teclado e o mouse. Certifique-se de que toda a navegação é rastreada corretamente na Lupa.
Para testar a exposição de elementos da tela, execute Inspecionar e use o mouse e a tecla TAB para alcançar cada elemento. Verifique se as informações apresentadas nos campos Nome, Estado, Função, Local e Valor da janela Inspecionar são significativas para o usuário para cada objeto na interface do usuário.
.NET Desktop feedback