Angular | Otimizar para acessibilidade
- Use HTML semântico: O uso de tags HTML semânticas como
nav,header,main,section,footer,button,input,labeletc. pode melhorar a acessibilidade de seu aplicativo. Essas tags fornecem contexto adicional e ajudam as tecnologias assistivas a entender melhor a estrutura da sua página. Por exemplo, usar umabuttontag em vez de umdivcom um evento de clique pode ajudar as tecnologias assistivas a identificar o elemento como um botão clicável. - Forneça texto alternativo para imagens: as imagens sempre devem incluir texto alternativo (
altatributo) que forneça um resumo conciso, porém descritivo, do conteúdo da imagem. Este texto é importante para pessoas com deficiência visual e para situações em que a imagem não carrega ou não pode ser exibida. - Use atributos e funções ARIA: Atributos e funções ARIA (Aplicativos Ricos de Internet Acessíveis) podem ser usados para melhorar a acessibilidade de componentes de IU complexos. Por exemplo, usar atributos
role="button"earia-pressed="true/false"pode tornar um botão de alternância mais acessível. No entanto, o ARIA deve ser usado com cautela e somente quando necessário, pois o ARIA usado incorretamente pode prejudicar a acessibilidade. - Garanta a acessibilidade do teclado: os usuários devem poder navegar e interagir com seu aplicativo usando apenas um teclado. Isso significa que todos os elementos interativos devem ser focados e operáveis usando apenas a entrada do teclado. Por exemplo, os usuários devem ser capazes de navegar em um formulário usando a
tabchave e enviá-lo usando aenterchave. - Forneça mensagens de erro claras e concisas: as mensagens de erro devem ser claramente visíveis e concisas e devem fornecer orientação sobre como corrigir o erro. O uso de cores isoladas para indicar um erro deve ser evitado, pois usuários daltônicos podem não ser capazes de distinguir o erro.
- Forneça alto contraste e texto legível: o contraste entre o texto e seu plano de fundo deve ser alto o suficiente para garantir a legibilidade, principalmente para usuários com baixa visão. Além disso, os tamanhos e estilos de fonte devem ser escolhidos tendo em mente a legibilidade e não devem ser muito pequenos ou muito estilizados.
- Use padrões WAI-ARIA: WAI-ARIA (Web Accessibility Initiative — Accessible Rich Internet Applications) fornece padrões para construir componentes de UI acessíveis, como menus, caixas de diálogo e dicas de ferramentas. O uso desses padrões pode ajudar a garantir que seus componentes sejam acessíveis a todos os usuários.
Primeiro, vamos atualizar nosso modelo para incluir rótulos para cada controle de formulário:
<form>
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
</div>
<button type="submit">Log in</button>
</form>
Em seguida, podemos usar atributos ARIA para fornecer contexto adicional e melhorar a experiência do usuário. Por exemplo, podemos usar o aria-requiredatributo para indicar que um campo é obrigatório:
<form>
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="username" aria-required="true" required>
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" aria-required="true" required>
</div>
<button type="submit">Log in</button>
</form>
Também podemos usar atributos ARIA para fornecer feedback ao usuário. Por exemplo, podemos usar o aria-liveatributo para anunciar quando o login for bem-sucedido ou quando ocorrer um erro:
<form>
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="username" aria-required="true" required>
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" aria-required="true" required>
</div>
<button type="submit" (click)="login()" [disabled]="form.invalid">Log in</button>
<div *ngIf="loginError" aria-live="polite">{{loginError}}</div>
</form>
Finalmente, podemos usar atalhos de teclado para tornar nosso formulário mais acessível:
<form (ngSubmit)="onSubmit()" #loginForm="ngForm">
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" id="email" name="email" [(ngModel)]="email" required>
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password" [(ngModel)]="password" required>
</div>
<button type="submit" class="btn btn-primary" accesskey="s">Log in</button>
</form>
Isso torna mais fácil para os usuários que têm dificuldade em usar um mouse ou tela sensível ao toque interagir com o formulário e enviá-lo mais rapidamente.
É importante observar que o accesskeyatributo deve ser usado com moderação e em combinação com outros recursos de acessibilidade, como rótulos e instruções para navegação pelo teclado. Além disso, as teclas de atalho podem variar dependendo do navegador e do sistema operacional, por isso é importante testar o formulário com diferentes configurações para garantir que funcione conforme o esperado.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)