问题标签 [uiaccessibility]

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 投票
0 回答
351 浏览

ios - UIAccessibility - 从上到下阅读屏幕上的所有标签和按钮

当视图仅显示正在读取的第一个标签时,如何让应用程序在不触摸屏幕的情况下读取屏幕上显示的所有标签,以便用户知道哪些选项可用?

谢谢

0 投票
1 回答
1262 浏览

ios - UIAlertView 按钮可访问性

这是UIAlertView声明。但是,我希望进行 UI 测试cancelButton

我应该如何为该取消按钮添加可访问性?

0 投票
1 回答
6804 浏览

ios - 打开自定义 UITableViewCell 时在溢出菜单中显示/隐藏辅助功能元素

我正在自定义UITableViewCell类中实现可访问性。我有一个相当简单的溢出菜单,里面有几个按钮,这些按钮是隐藏的,直到按下省略号按钮,滑动打开并关闭溢出。

在我的单元格的初始化程序中,我将我的accessibilityElementsHidden设置overflowContainerYES. 这似乎有效,当使用 VoiceOver 滚动时,这些视图被跳过。

然后,当打开单元格时,在UIView动画的完成处理程序中,我将相同accessibilityElementsHidden的相同设置overflowContainer为 NO。这似乎没有任何效果,那些元素仍然被跳过。

我也尝试过UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil)在更改之前/之后/时发布accessibilityElementsHidden BOOL,但这似乎也对这种情况没有影响。

基本上我想在特定点切换accessibilityElementsHidden几个实例。UIView谁能让我知道我可能做错了什么?

这是我在溢出打开时触发的代码:

关闭单元格时我会触发相反的动作(全部设置为NO并再次发布通知)。在初始化单元格时,我设置的是:

完全不知道为什么它不应该工作,看来我做的一切都是 100% 正确的。如果我没有在初始化程序中设置该行,则所有按钮似乎都可以访问(一直)。因此,似乎第一个调用,无论是YESor NO,都有效,但任何后续调用都将被忽略。

0 投票
1 回答
172 浏览

ios - 让 Switch Control 用户通过按下开关触发动作

我有一个开关控制设备“Ablenet (BLUE 2)”,我想使用开关设备控制我的应用程序。我的应用程序是一个分页(水平页面)新闻阅读器应用程序,我希望切换设备来控制我的应用程序上的新闻页面前进和后退。我可以将它与 iOS 的默认辅助功能菜单一起使用。

问题是导航需要很长时间。在我的应用程序代码中,我可以在哪里处理原始开关输入事件以加快用户处理速度?

0 投票
2 回答
425 浏览

ios - iOS VoiceOver – 在标准 UIView 中实现“x of y”读出?

在 iOS 中使用 VoiceOver,当查看像分段控制器这样的东西时,VoiceOver 会读取分段及其索引,即“Selected: Something: 2 of 4”。

我有一个自定义 UIView 容器,其中包含几个按钮,我想在滑动容器中的按钮时复制“2 of 4”行为。

如果可能的话,我最好不要创建自定义 UIView 子类来执行此操作。那能实现吗?

0 投票
1 回答
320 浏览

objective-c - 是否有更简单的 API 用于降低可访问性对象层次结构?

我正在考虑使用 Accessibility API 来自动执行一些 UI 任务,但我发现编写代码来降低可访问性对象层次结构需要大量代码,并且如果我忘记调用 CFRelease(),很容易发生意外的内存泄漏。例如,这是我为查找AXSplitGroup可访问性对象的子项而编写的代码:

最初我想知道(阅读:希望)Apple 提供了一个 API,它允许在可访问性对象层次结构上评估类似 XPath 的表达式以检索感兴趣的可访问性对象,但通过一些搜索,我不认为这存在。

是否有另一个标准 API 可用于在没有太多代码的情况下迭代可访问性对象层次结构?

0 投票
1 回答
1300 浏览

ios - 辅助功能通知被覆盖

我正在开发具有可访问性支持的 iOS 应用程序。在我的应用程序流程中的某个时刻,我呈现了一个警报视图。呈现视图后,我想专注于使用 UIAccessibilityPostNotification 的视图,但是通知似乎被覆盖了。

但是我看不到此通知的效果。可访问性焦点转到背景中的某个其他视图对象。

但是,当我以 0 延迟使用 dispatch_after 时,它可以工作

有人可以解释是什么原因吗?

0 投票
2 回答
3276 浏览

ios - 带有 viewForSupplementaryElement 的 UICollectionViewCell 中的可访问性顺序不正确

我有一个 UITableViewCell,它在每一行中都包含一个 UICollectionViewCell。此集合视图具有显示在单元格顶部的补充视图(标题)。

在启用 VoiceOver 的情况下导航时,以正确的顺序读取单元格(标题、collectionviewcell1、collectionviewcell2,...)但是,在视图滚动后(由于在单元格中从左向右滑动),顺序会被破坏,读出UICollectionView 单元格,然后是标题。

什么可能导致这种情况?

我尝试在包含 UITableViewCell 上使用 UIAccessibilityContainer 协议,并返回 UICollectionView 中的项目数,加上标题,以及返回索引 0 处的标题和给定索引处的 UICollectionViewCell 的索引。这总是首先突出显示标题,但不会浏览 UICollectionView 单元格。

我还尝试将计数返回为 2 个元素(标题和 UICollectionView),并将这些对象返回为可访问性元素AtIndex。这确实从标题开始,但只读出 CollectionView 中的第一项

0 投票
1 回答
109 浏览

accessibility - 带有大型流程图的 UIAccessibility 实现 - ios

我正在尝试使我的应用程序在 ios 中可访问。我有一些大型复杂图像(流程图和表格)。如果图像中有不同的元素,我将如何使该图像可访问?我希望他们能够单击图像的不同部分以听到不同的可访问性提示,而不是对整个图像的一个提示,这可能不是很有帮助。

我想过制作空白标签并将它们放在图像上正确的位置并在这些空白标签中写下提示,但只是想知道是否有更好的方法来做到这一点。有什么建议么?

0 投票
0 回答
400 浏览

objective-c - 向子视图控制器的视图发布可访问性通知时崩溃

在“ContainerViewControler”的#viewDidAppear上,发布 UIAccessibilityScreenChangedNotification 会导致间歇性崩溃,异常类型为:EXC_CRASH (SIGABRT)。

附上了带有堆栈跟踪的屏幕截图。

异常堆栈跟踪

在尝试调试时,在帧 'objc_exception_throw' 上,确实在 $r0 处得到了异常

(lldb) po $r0 *** -[__NSArrayM objectAtIndex:]:空数组的索引 0 超出范围

在帧 '_UIAXBroadcastMainThread' 上,在 $r8 处获得集合视图中的一个单元格

印象中在childController上的collectionView出现和可访问性通知传递之间存在时间问题,但无法为其编写测试。

要求更好地了解 UIAccessibility 期望 NSArray 持有什么以及导致索引超出范围的原因。

这是在
iOS 7
iPhone 4、iPhone 5上

编辑
由于崩溃是间歇性的,因此调动了#objectAtIndex: 方法以查看预期数组包含的内容。

看起来该数组包含所有 UIView 实例,这些实例是集合视图的 UICollectionViewCell 的子视图,通知已发布并启用了“可访问性”。

不确定 UIAccessibility 如何填充该数组。

想知道它是否假定大小等于启用了“可访问性”的每个 UIView 但无法根据某些条件填充数组.