Android辅助功能识别标题

Shi*_*vam 5 android accessibility heading android-accessibility

我有最新版本的Talkback,并宣布"我的顶级文本标题".Android本机行为为我的顶级元素添加了"标题".我找不到一种方法来切换ON/OFF标题声明.是否有API来控制其行为.在之前版本的Talkback版本中,它并没有单独宣布"标题".

Ada*_*m S 7

您可以启用或禁用ViewAPI 19+ 上的任何“标题”可访问性属性:

ViewCompat.setAccessibilityDelegate(headingView, new AccessibilityDelegateCompat() {
  @Override
  public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
    super.onInitializeAccessibilityNodeInfo(host, info);
    info.setHeading(true); // false to mark a view as not a heading
  }
});
Run Code Online (Sandbox Code Playgroud)

如果你有 minSdk 28,你可以直接在你的 XML 中设置它:

android:accessibilityHeading="false"
Run Code Online (Sandbox Code Playgroud)

  • 嗨@Adam S,这似乎对我不起作用。当您执行“setHeading(true)”时,文本视图并未宣布它是一个标题。 (2认同)

Cod*_*ily 1

如果您仅支持 API 级别 23 及以上,则只需执行以下操作即可。

textView.setAccessibilityDelegate(new View.AccessibilityDelegate() {
  @Override
  public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
    super.onInitializeAccessibilityNodeInfo(host, info);
    //blanked to prevent talkback from announcing class/type
    info.setClassName("");
  }
});
Run Code Online (Sandbox Code Playgroud)