Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
930 of 1024 menu
◀ ▶

Виджет Semantics

Виджет Semantics оборачивает дочерний интерфейс и передаёт в дерево доступности параметры label, hint, value, флаги кнопки и заголовка. Без него диктор читает только текст из Text. Соседние обёртки MergeSemantics и ExcludeSemantics меняют, как собираются описания дочерних виджетов.

Синтаксис

Semantics( label: 'abcde', child: child, )

Параметры

Параметр Описание
child Дочерний виджет, для которого задают семантику.
label Краткое имя элемента для озвучивания.
hint Подсказка, что произойдёт после действия.
value Текущее значение, например у ползунка.
button Если true, элемент объявляют кнопкой.
enabled Доступен ли элемент для взаимодействия.

Пример

Давайте озвучим иконку отдельной подписью:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: Semantics( label: 'abcde', button: true, child: IconButton( onPressed: () {}, icon: const Icon(Icons.search), ), ), ), ), ), ); }

На экране иконка лупы получит для диктора имя 'abcde', хотя на кнопке нет текста.

Пример

Давайте добавим hint к той же кнопке:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: Semantics( label: '12345', hint: 'abcde', button: true, child: ElevatedButton( onPressed: () {}, child: const SizedBox(width: 48, height: 48), ), ), ), ), ), ); }

На экране пустая кнопка для зрячего пользователя, а диктор прочитает метку и подсказку.

Смотрите также

  • виджет MergeSemantics,
    который объединяет описания дочерних виджетов
  • виджет ExcludeSemantics,
    который скрывает дочерние узлы от диктора
  • виджет SemanticsDebugger,
    который рисует дерево доступности поверх UI
  • виджет TextField,
    который принимает semanticLabel для поля ввода
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить