Suporte a Tipo Dinâmico
Garanta que os elementos de texto sejam dimensionados de acordo com o tamanho de fonte preferido pelo usuário
Esta é uma regra experimental e, portanto, seus resultados são considerados em fase de testes beta. Saiba mais sobre regras experimentais e como você pode ajudar a melhorá-los.
Executar esta regra resultará em tempos de varredura aumentados.
Esta regra é opcional para coletar feedback. Experimente e nos deixe saber o que você pensa.
Após inicializar o objeto AxeDevTools para começar os testes, ative a regra usando a configuração:
axe.configuration.optInToSupportsDynamicType = trueonde axe refere-se ao objeto AxeDevTools inicializado ao fazer login.
O que Verificamos
Os elementos de texto devem ter as propriedades necessárias para suportar o Dynamic Type e redimensionar de acordo com a preferência de tamanho de fonte do usuário em todo o dispositivo.
Esta regra impõe uma Melhoria Recomendada pela Deque. Você pode desativar esta regra no Painel Móvel ou por ignorando a regra em testes escritos para iOS.
Saiba como desativar regras no Painel Móvel.
Exemplo de Falha ❌
Os elementos de texto usam fontes fixas que não respondem à configuração de Dynamic Type do usuário
Após aumentar a configuração de Dynamic Type para o maior tamanho, o texto remains unchanged — ele não cresce para refletir a preferência do usuário
Exemplo de Sucesso ✅
Os elementos de texto usam fontes escaláveis que respondem à configuração de Dynamic Type do usuário
Após aumentar a configuração de Dynamic Type para o maior tamanho, o texto scales up accordingly para corresponder à preferência de dispositivo do usuário
Visão Geral
- Esta regra tem um impacto crítico para usuários com baixa visão que dependem de texto maior
- Os elementos de texto devem suportar o Dynamic Type para que se redimensionem quando o usuário altera o tamanho da fonte do dispositivo
Impacto nos Usuários
Pessoas com baixa visão são as mais afetadas por textos que não podem ser redimensionados. Dynamic Type é uma funcionalidade do iOS que permite aos usuários definir uma preferência de tamanho de fonte em todo o dispositivo, e espera-se que os aplicativos respeitem essa preferência. Quando elementos de texto não suportam o Dynamic Type, usuários que precisam de texto maior enfrentam dificuldades para ler conteúdos que não redimensionam, independentemente de suas configurações.
Confirmar Suporte ao Problema do Dynamic Type
- Navegue até a tela contendo texto e observe o tamanho atual da fonte e seu layout
- Amplie o tamanho da fonte alterando a configuração de Tipo Dinâmico:
- Se estiver usando um simulador:
- Abra Inspetor de Acessibilidade
- No canto superior esquerdo do inspector, altere o dispositivo de seu Mac para o simulador iOS
- Selecione o botão Configurações no canto superior direito do inspetor
- Em Tamanho da Fonte, mova o controle deslizante para uma configuração maior
- Se estiver usando um dispositivo iOS 13.0+:
- Abra Configurações
- Selecione Acessibilidade
- Selecione Tela e Tamanho do Texto
- Selecione Texto Maior
- Mova o controle deslizante na parte inferior da página para uma configuração maior
- Se estiver usando um simulador:
- Navegue de volta para o seu aplicativo e observe o seguinte na mesma tela:
- Inacessível: O texto não mudou de tamanho após atualizar a configuração de Dynamic Type
- Acessível: O texto mudou de tamanho
Corrigir Problemas
Para resolver um problema de Suporte ao Dynamic Type, configure os elementos de texto para usar fontes escaláveis que respondam à configuração de Dynamic Type do usuário.
UIKit
Defina adjustsFontForContentSizeCategory = true em qualquer elemento de texto para que ele seja atualizado quando o usuário alterar sua configuração de Dynamic Type. Use UIFont.preferredFont(forTextStyle:) para fontes do sistema ou UIFontMetrics para escalar uma fonte personalizada em relação a um estilo de texto:
// System font — scales automatically to the user's Dynamic Type setting
label.font = UIFont.preferredFont(forTextStyle: .body)
label.adjustsFontForContentSizeCategory = true
// Custom font — scaled relative to a text style using UIFontMetrics
let customFont = UIFont(name: "Georgia", size: 17)!
label.font = UIFontMetrics(forTextStyle: .body).scaledFont(for: customFont)
label.adjustsFontForContentSizeCategory = trueSwiftUI
No iOS 14 ou superior, você pode suportar o Dynamic Type de duas maneiras:
- Ao usar uma fonte personalizada, defina a propriedade
.fontpara.custom(_:size:relativeTo:)para garantir que as fontes sejam escaladas relativamente ao estilo de fonte do elemento de texto. - Ao usar uma fonte padrão por tamanho, o texto será escalado automaticamente. No entanto, se nenhum estilo de fonte for definido, os elementos de texto não serão escalados de acordo com seu estilo. Por exemplo, o texto que funciona como título será escalado de forma diferente do texto que funciona como corpo de texto. Para a melhor experiência, especifique o estilo de fonte para corresponder ao comportamento esperado do elemento. Usando um modificador como
.font(.system(.largeTitle, design: .rounded)), você pode esperar que o texto seja o maior da página e sirva como um título adequado.
React Native
Defina allowFontScaling={true} em cada elemento Text para permitir que ele seja escalado de acordo com as configurações de dispositivo preferidas pelo usuário:
<Text style={{ color: 'black', fontSize: 18 }} allowFontScaling={true}> This text allows font scaling. </Text>Posso Ignorar Esta Regra?
Suporta Dynamic Type tem um impacto crítico para usuários com baixa visão. Como esta é uma regra de Melhores Práticas, ela pode ser desativada no Painel de Controle Móvel ou suprimida em testes individuais. No entanto, recomendamos fortemente o suporte ao Dynamic Type em todo o seu aplicativo em vez de ignorar a regra de forma ampla. Saiba mais sobre ignorando regras.
Recursos
Páginas de Cursos da Deque University
Nota: Acesso completo aos recursos da Deque University requer uma assinatura.
Outros Recursos
- Diretrizes de Acessibilidade para Conteúdo Web (WCAG) 2.1, Recomendação W3C
- Documentação do Desenvolvedor Apple
