of static method

Returns the nearest GlassAccessibilityData in the widget tree.

Priority order:

  1. An explicit GlassAccessibilityScope in the widget tree (always wins).
  2. System MediaQuery flags, if LiquidGlassWidgets.respectSystemAccessibility is true (the default).
  3. GlassAccessibilityData.defaults (no restrictions) when accessibility is disabled globally via LiquidGlassWidgets.initialize(respectSystemAccessibility: false).

Implementation

static GlassAccessibilityData of(BuildContext context) {
  // 1. Prefer an explicit scope — allows overrides and avoids duplicate
  // MediaQuery lookups in subtrees that do add the scope.
  final inherited = context
      .dependOnInheritedWidgetOfExactType<_InheritedGlassAccessibility>();
  if (inherited != null) return inherited.data;

  // 2. If the global flag is off, skip MediaQuery entirely.
  if (!glass_config.respectSystemAccessibility) {
    return GlassAccessibilityData.defaults;
  }

  // 3. Read system flags so accessibility is respected with no dev setup.
  return GlassAccessibilityData(
    reduceMotion: MediaQuery.disableAnimationsOf(context),
    reduceTransparency: MediaQuery.highContrastOf(context),
  );
}