辅助功能服务 - 将值插入文本字段

时间:2017-09-22 15:43:07

标签: web accessibilityservice talkback web-accessibility

我想插入条形码扫描器值(从连接到移动设备的条形码扫描仪设备读取条形码)到网页文本框字段,该页面在移动Chrome浏览器中运行。

1 个答案:

答案 0 :(得分:0)

来自ACTION_SET_TEXT的Android文档。

Bundle arguments = new Bundle();
arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,"android");
info.performAction(AccessibilityAction.ACTION_SET_TEXT.getId(), arguments);

请注意,您的info对象必须是响应此事件的AccessibilityNodeInfo。在Web中,这意味着Chrome必须将控件呈现为辅助技术android.widget.EditText或其中一个兼容性库兄弟,或者是其子类。

例如,上面的解决方案会将文本输入FaceBook.com上的登录字段(将其作为android.widget.EditText呈现给AT),而不是Google.com上的搜索字段,该字段将呈现为{ {1}}。

如果浏览器使用的是非标准标记,并且做了一些不稳定的自定义文本输入,那么这个解决方案就无法工作,而且你本质上是SOL。

您可以自己找到所有这些,并使用Android设备监视器...优秀工具进行探索!