问题标签 [accessibility-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1394 浏览

android - 如何检查无障碍服务是否崩溃(Android Pie 现在在设置中显示此信息)?

我发现如果无障碍服务停止工作,Android 9 现在会显示信息

对于试图利用可访问性 API 的开发人员来说,这一直是一个痛苦。

  • 辅助功能看起来已启用,但服务已停止。为了让它恢复工作,需要关闭并重新打开辅助功能。

  • 如果谷歌能彻底解决这个问题,我会很高兴,但现在他们只是暗示手动禁用-启用它是件好事。

不是最好的东西,但至少是一些东西。

  • 所以,我试图找出系统如何知道服务是否崩溃。碰巧有一个名为AccessibilityUtil的类,它包含hasServiceCrashed方法。

  • 不幸的是,它检查了 AccessibilityNodeInfo 中的一个隐藏字段crashed,第三方开发人员(因为反射拒绝)以及以前的 android 版本都无法使用该字段。

所以我想知道是否有另一种方法可以从系统中获取信息,以澄清我的无障碍服务已崩溃/停止工作并且需要用户的操作。从棒棒糖开始。提示赞赏。

0 投票
1 回答
26 浏览

android - Android辅助功能自动扫描不扫描自定义OSK

我目前正在为不同能力的用户设计一个屏幕键盘。由于用例的原因,有相当多的自定义触摸事件实现。

虽然它在触摸模式下按预期工作,但在使用蓝牙开关使用自动扫描功能的测试会话期间,系统完全忽略了自定义 OSK。我尝试在根键盘视图上添加可聚焦的focusableInTouchMode,但键盘视图仍然被忽略。

现在我的问题是,是否有规则或某种指导方针可以让自动扫描工作?提前致谢。

0 投票
0 回答
226 浏览

swift - 从 AXUIElementCopyAttributeValue 中找到一个窗口及其 windowNumber 以更改其位置

我想用 Accessibility API 移动一个窗口。

使用以下代码段

检测到活动窗口。

对于某些进程(例如注释),我得到具有相同 pid 但不同 windowNumber 的条目。我想要的是移动具有给定 pid 和 windowNumber 的窗口。

我试过这个片段:

它返回一个进程的窗口列表。我想用给定的 windowNumber 移动这些窗口之一(来自上面的片段)

我如何找到那个窗口?

0 投票
2 回答
689 浏览

android - 辅助功能服务:获取可以即时交互的视图(与语音访问相同)?

目标是获得可以立即交互的视图(可以立即单击并且会发生某些事情)。如果视图通常可见且可单击,但被另一个视图/菜单/侧面板悬停,则应将其省略。

语音访问做到这一点。它似乎使用了 Accessibility API。

完美的例子是谷歌地图的底部菜单。当它展开时,下方的“沿路线搜索”按钮仍然可见,但应用程序并未突出显示。


那么我们有什么?

  • 有一个AccessibilityEvent流。最有用的是 AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED,所以当有事情发生时我们可以得到通知。
  • 使用getSource()我们可以获得触发事件的AccessibilityNodeInfo实例。或者我们可以使用AccessibilityService.getRootInActiveWindow()获取窗口的根。有了它,我们就能够遍历应用程序中的整个层次结构。
  • AccessibilityNodeInfo不提供有关视图 z 顺序的任何信息,因此无法理解上面和下面的内容。
  • 底部菜单在同一个窗口中(它不是模态的)。
  • 如果您在底部菜单展开时尝试单击“沿路线搜索”按钮,底部菜单将折叠。因此,您实际上无法单击它,它位于菜单下方。
  • 我查看了AccessibilityNodeInfo的所有参数,例如isVisibleToUser(), isClickable(), isContextClickable(), isSelected(), isFocusable(), isFocused()isAccessibilityFocused()并且当底部菜单折叠/展开时,按钮具有相同的参数。它对用户可见,可聚焦和可点击。

  • 我研究了隐藏的 API,没有看到任何有用的东西。

我错过了什么?


在此处输入图像描述

0 投票
0 回答
61 浏览

pdf - 是否有任何解决方案可以自动修复 PDF 以符合可访问性要求?

在我的组织中,我们正在处理大量 PDF 文件(超过 100,000 个),必须对其进行修复以符合 WCAG 2.0 的要求。由于缺乏资源和预算,我们无法在短时间内修复所有这些文件。因此,我们正在寻找一些工具、技术或最佳实践来完成这项工作。作为一名了解敏捷软件开发的开发人员,我的方法是尽可能开始以编程方式解决一些问题。例如,我们可能可以开发并运行一个工具来为所有 PDF 文件添加适当的作者。我在辅助功能修复方面没有经验,所以我不确定我的方法是否正确,或者是否已经有任何复杂的工具可用于批量修复部分 PDF 文件。

任何建议或指导将不胜感激。

0 投票
1 回答
972 浏览

google-chrome - 访问网站的辅助功能树

问:如何使用开发者工具查询网站的辅助功能树?有可能做到吗?我试图了解辅助功能树如何工作并帮助屏幕阅读器。

0 投票
0 回答
1045 浏览

android - 如何以编程方式打开我的应用程序的辅助功能设置?

如前所述我可以打开 Android 辅助功能设置页面;我知道我可以使用以下代码直接打开我的应用辅助功能设置:

但是如何在Android中启动自己APP的辅助功能设置页面呢?我想将用户直接引导到我的应用程序辅助功能设置页面以授予权限。

我不想使用 adb 也无法根我的设备。我找不到任何可行的解决方案;有什么建议么?

0 投票
0 回答
310 浏览

electron - Electron App 在 Mac 上提示“辅助功能”批准

首次安装 Electron App 时,会提示 Mac 上的 Accessibility Features Approval。
是否可以找到需要哪些应用程序的功能批准?如果没有,我可以在代码中禁用它吗?
我知道代码中没有任何可访问性功能。

0 投票
1 回答
507 浏览

macos - Mac App Store 中的应用程序能否获得辅助功能权限?

我有一个应用程序(用 ElectronJS 制作),它依赖于具有可访问性权限来监听鼠标/键盘事件(通过iohook包)。我想把它放在 Mac App Store 上,但似乎:

  1. Mac App Store 需要沙盒和
  2. 沙盒不允许访问权限。

因此,Mac App Store 中的应用程序无法获得辅助功能权限。这是对的还是我错过了什么?

0 投票
0 回答
195 浏览

objective-c - 更改设置值后调用 AXIsProcessTrustedWithOptions 不起作用

我正在使用 AXIsProcessTrustedWithOptions 测试可访问性权限。

应用程序启动时,正确返回值。但是,如果我在应用程序运行时更改系统偏好设置 -> 安全和隐私中的设置,调用 API 仍会返回以前的值。

那是一个错误吗?

这是示例代码: