Pular para o conteúdo
CrossFly é 100% open sourceSiga no GitHub
CrossFlyCrossFly
Começar

Acessibilidade (a11y)

Com honestidade sobre o que o framework oferece hoje: foco no que é acionável no CrossFly nativo/OpenGL. Boa parte da a11y aqui reforça a responsividade — fonte-relativo é respeito ao ajuste de tamanho do usuário.

Alvos de toque generosos

Dimensione áreas tocáveis com Relative, nunca pixels minúsculos:

botao.getStyle().autoHeight(Relative.ofFont(2.5f));            // alto o suficiente para o dedo
icone.getStyle().autoWidth(Relative.ofScreen(0.12f, ScreenSize.MIN))
     .autoHeight(Relative.ofScreen(0.12f, ScreenSize.MIN));   // quadrado que adapta

Regra prática: alvos de ~48 dp equivalentes — Relative.ofFont(2.5f) costuma dar conta.

Contraste de texto

Garanta contraste adequado; o framework ajuda:

int fundo  = cs.surface.color();
int texto  = ColorUtils.contrastText(fundo);                  // preto/branco conforme o fundo
int melhor = ColorUtils.getContrastColor(fundo, 0xFF000000, 0xFFFFFFFF);  // escolhe entre 2 opções

Respeite o tema claro/escuro (via Styles.setColorScheme/setDarkMode) — não fixe cores que ignoram o modo (ver Modo claro/escuro).

Texto que escala

Como as fontes são medidas em unidades relativas, texto e layout escalam com o zoom de fonte do app — consequência direta de usar Relative.ofFont(...) e evitar pixels fixos. Deixe o Label quebrar linha; não trunque informação essencial.

Feedback multissensorial e voz

Device.vibrate(50);            // confirmação tátil de uma ação importante
Device.beep();                 // aviso sonoro
Device.textToVoice(mensagem);  // leitura por voz (apoio)

Use como apoio, não como único canal — combine visual + tátil/sonoro.

Boas práticas

  • Alvos de toque com Relative.ofFont/ofScreen(MIN); nada de botões de poucos pixels.
  • Contraste via contrastText/getContrastColor; honre claro/escuro.
  • Não trunque texto essencial; deixe escalar/quebrar.

Erros comuns

  • Botões/ícones minúsculos em pixels fixos (difíceis de tocar; não escalam).
  • Cores fixas que quebram o contraste no modo escuro.
  • Depender só de cor para transmitir estado (adicione ícone/texto).

Limitações

Recursos de leitor de tela dependem da plataforma/launcher — não há uma camada de a11y semântica universal no core. Priorize os itens acionáveis acima.

Veja também

Esta página foi útil?