Flutter / Dart 中的 AcessibilityEvent

Posted

技术标签:

【中文标题】Flutter / Dart 中的 AcessibilityEvent【英文标题】:AcessibilityEvent in Flutter / Dart 【发布时间】:2019-06-15 10:11:20 【问题描述】:

我花了 3 周时间寻找如何将辅助功能事件与 dart 一起使用,有人得到了什么吗?我在文档中没有找到任何内容

【问题讨论】:

这不准确 【参考方案1】:

可通过Semantics 小部件提供辅助功能信息。 Material 和 Cupertino 库中的大多数小部件已经提供相关语义,例如将MaterialButtons 标识为按钮等。 Semantics 小部件仅在您使用原始布局或画家创建自己的小部件时才是必需的。

例如,假设您想制作自己的按钮并从 Text 小部件和手势检测器开始。

Widget build(_) 
  return Container(
    child: GestureDetector(
      onTap: ()  ... 
      child: Text('MY BUTTON'),
    )
  );

这将包含来自TextGestureDetector 小部件的一些语义信息。在运行应用程序时,如果启用了 TalkBack 或 VoiceOver,则可以按S(大写“S”)打印当前语义树。

[   +6 ms] I/flutter ( 6511): SemanticsNode#0
[        ] I/flutter ( 6511):  │ Rect.fromLTRB(0.0, 0.0, 1080.0, 1794.0)
[        ] I/flutter ( 6511):  │
[        ] I/flutter ( 6511):  └─SemanticsNode#1
[        ] I/flutter ( 6511):      Rect.fromLTRB(0.0, 0.0, 79.0, 16.0) with transform
[        ] I/flutter ( 6511):        [2.625,0.0,0.0,436.3125; 0.0,2.625,0.0,876.0; 0.0,0.0,1.0,0.0;
[        ] I/flutter ( 6511):        0.0,0.0,0.0,1.0]
[        ] I/flutter ( 6511):      actions: tap
[        ] I/flutter ( 6511):      label: "MY BUTTON"
[        ] I/flutter ( 6511):      textDirection: ltr

在这种情况下,要将其明确标识为按钮,您可以使用 Semantics 小部件包装小部件并提供 button: truecontainer: true

Widget build(_) 
  return Semantics(
    container: true,
    button: true,
    child: Container(
      child: GestureDetector(
        onTap: ()  ... 
        child: Text('MY BUTTON'),
      )
    )
  );

【讨论】:

【参考方案2】:

不,我的意思是可访问性事件,以自动化我的 Gizmo 并在未来在 Flutter 上制作团队查看器

发送点击等。

【讨论】:

【参考方案3】:

查看此链接。它在颤振中引入了可访问性桥,可用于实现您想要的。

https://api.flutter.dev/javadoc/io/flutter/view/AccessibilityBridge.html

【讨论】:

虽然这在理论上可以回答问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。

以上是关于Flutter / Dart 中的 AcessibilityEvent的主要内容,如果未能解决你的问题,请参考以下文章

Flutter/Dart 中的 TDD。如何减少启动时间

Dart/Flutter - 回调函数中的“yield”

为啥我们在 Flutter/Dart 中的 catch 参数中加上“e”?

如何使用 Dart / Flutter 中的列表从列表中删除重复元素?

自动完成/智能感知不适用于 VSCode 中的 dart/flutter

如何从 Flutter(Dart) 中的另一个类调用方法?