checkForSemantics static method

Map<String, dynamic> checkForSemantics(
  1. WidgetPath? wp
)

Implementation

static Map<String, dynamic> checkForSemantics(WidgetPath? wp) {
  final BuildContext? context = wp!.context;
  final Map<String, dynamic> accessibility = {};
  Semantics? semantics;

  int maxVisit = 10; // TBD: How far up the tree should we look for Semantics?

  context?.visitAncestorElements((ancestor) {
    final Widget parentWidget = ancestor.widget;
    if (parentWidget is Semantics) {
      semantics = parentWidget;
      return false;
    }
    return --maxVisit > 0;
  });

  if (semantics != null) {
    final String? hint = semantics!.properties.hint;
    final String? label = semantics!.properties.label;
    accessibility.addAll({
      'accessibility': {
        'id': '/GestureDetector',
        'label': label ?? '',
        'hint': hint ?? ''
      }
    });
  }
  return accessibility;
}