【问题标题】:Flutter - Semantics - ExplanationFlutter - 语义 - 解释
【发布时间】:2018-12-30 02:39:41
【问题描述】:

谁能给我一个关于 Flutter 上下文中语义概念(实际上是什么、何时使用、更新...)的清晰解释(或链接)?

我google了很多,但到目前为止还没有找到任何好的解释。

非常感谢,

【问题讨论】:

  • docs.flutter.io/flutter/widgets/Semantics-class.html "一个小部件,它用小部件含义的描述来注释小部件树。可访问性工具、搜索引擎和其他语义分析软件使用它来确定应用程序的含义。 "
  • @GünterZöchbauer。感谢 Günter,但这并没有解释与语义相关的其他概念,例如,在 RenderBox 中,可覆盖的方法“describeSemanticsConfiguration”(SemanticsConfiguration 类)......
  • 它允许将语义添加到小部件所基于的渲染框。我自己还没有深入研究这个话题。

标签: flutter semantics


【解决方案1】:

Didier 我要感谢您详细研究并在您的博客上发帖,您几乎回答了自己的问题,所以我想在这里发布它以保持完整性,以防其他人在语义上寻求答案 - 这是一个很好的介绍:

https://www.didierboelens.com/2018/07/semantics/

“如果你想调试应用程序的语义,你可以将MaterialAppshowSemanticsDebugger属性设置为true。这将强制Flutter生成一个覆盖来可视化语义树。”

【讨论】:

    【解决方案2】:

    Flutter SDK 没有提供细粒度的小部件来控制可访问性。相反,它包含一个名为Semantics 的类,其描述如下:

    一个小部件,它用小部件含义的描述来注释小部件树。

    如您所见,小部件并不真正关心具体的技术或功能,而是描述了它所包装的小部件的一般信息。也就是说,大部分功能都是为这两个屏幕阅读器量身定制的。

    当您查看它的constructor 时,您可以了解它可以具有多少潜在属性(以及它可以支持的功能)。他们中的大多数最终都属于SemanticsProperties 类。

    标签、价值和提示

    语义小部件的一个常见用例是向小部件添加描述。在语义学中,我们有(除其他外)三个有用的字符串参数:

    label,这是小部件的简要描述, 提示,这是对与小部件交互时将发生的动作的解释, 和 value,它提供了小部件状态的文本描述。 当然,您可能不需要所有这些,但在某些情况下,它们都适合。让我们看看他们这样做的一个案例:

    Semantics(
      label: 'Counter button',
      hint: 'Press to increase',
      value: '$_counter',
      onTap: () { setState(() { _counter++; }); }
      child: Text(
        '$_counter',
        style: Theme.of(context).textTheme.display1,
      ),
    );
    

    对于以下文本(实际上也是一个按钮,因为我们指定了 onTap 处理程序),屏幕阅读器的用户将 - 假设 _counter 变量存储零,听到计数器按钮,零,按下以增加。

    onCut、onCopy 和 onPaste

    一组有用的属性可以在与文本字段交互时提供帮助:onCut、onCopy 和 onPaste 是在用户对文本字段执行匹配操作时执行的回调。您可以通过在用户操作文本时提供视觉或听觉反馈来使用它们来增强用户体验。

    Semantics(
      onCopy: () { debugPrint('Hey, where are you taking that?'); },
      onCut: () { debugPrint('Give it back!'); },
      onPaste: () { debugPrint('All right, do not do that again though.'); },
      child: TextField(
        controller: _textEditingController,
        autocorrect: false,
      ),
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      • 2012-10-01
      • 1970-01-01
      • 2011-03-21
      相关资源
      最近更新 更多