gridCell static method

Widget gridCell({
  1. required Widget child,
  2. required String label,
  3. required bool selected,
  4. bool enabled = true,
  5. VoidCallback? onTap,
})

Célula selecionável de uma grade (dia de um calendário, valor de uma roda).

Uma grade de células desenhadas é o pior caso do Gate 8: o dia "15" chega ao leitor de tela como o texto "15", sem dizer que é acionável, de que mês é, se está escolhido ou se está fora do intervalo permitido. Quem não enxerga a grade não tem nenhuma dessas informações.

label deve ser o valor por EXTENSO ("15 de julho de 2026"), não o número: o número sozinho depende de o usuário lembrar o cabeçalho.

Implementation

static Widget gridCell({
  required Widget child,
  required String label,
  required bool selected,
  bool enabled = true,
  VoidCallback? onTap,
}) {
  return MergeSemantics(
    child: Semantics(
      container: true,
      button: true,
      selected: selected,
      enabled: enabled,
      label: label,
      onTap: enabled ? onTap : null,
      // O número desenhado já está no [label]; deixá-lo mesclar faria o
      // leitor dizer "15 de julho de 2026 15".
      child: ExcludeSemantics(child: child),
    ),
  );
}