问题标签 [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 投票
1 回答
1108 浏览

ios7 - VoiceOver 读取每个元素两次 - 不一致的行为

我正在研究可访问性。我正在使用 XIB 文件,并且启用了所有需要通过画外音读取的视图。现在问题是 tableview 中的第一个单元格被画外音读取了两次。这只是第一次发生。我在表格视图中有多个单元格。但是画外音也是第一次阅读第一个单元格。如果我滑动到下一个单元格并再次来到第一个单元格,它只会读取一次。

它的行为非常不一致。我无法找出问题所在。我尝试将 nil 值传递给单元格的accessibilityLabel 和accessibilityValue。但对问题没有影响。当我禁用 XIB 文件的可访问性并通过编程方式启用它时,但没有使用。

对此的任何建议都会有所帮助。

0 投票
1 回答
1207 浏览

ios - 用户执行左/右滑动操作时的 iOS 辅助功能事件

启用 VoiceOver 后,我想了解用户在选择 UIButton 时是否正在执行左/右轻弹操作。

当特定元素获得或失去焦点时,有几种方法可以帮助您:

  • 可访问性ElementDidLoseFocus
  • 可访问性ElementDidBecomeFocused

但是 UIAccessibilityAction 中没有任何内容可以帮助查找用户是否尝试向左或向右轻弹。

有没有办法找出用户正在尝试做什么?

0 投票
1 回答
613 浏览

ios - 我可以影响 VoiceOver 转子中显示的内容吗?

我有一个基于文本的应用程序,我希望我的用户在启用 VoiceOver 时使用“线条”转子选项。但是该选项没有出现。我的应用程序中的文本使用表格视图中的单元格进行布局(单元格包含 UILabel 和其他视图)。

我担心我的实现会影响转子“查看”我的应用程序的方式,但我认为如果它限制了我完全支持转子,那将是不幸的。

有什么办法可以利用转子中的“线”选项?

0 投票
0 回答
508 浏览

ios7 - 在 iOS7 上画外音时,UIScrollView 不会滚动偏移

我们有一个自定义的拉刷新视图,用于扩展 UIScrollViews 的类,一切正常,但是当启用 VoiceOver 时,iOS7 禁用了 ScrollView 中的反弹,这使得 pullToRefresh 无用。

我想知道是否有人能够看到这一点,如果有人能给出一些关于如何解决这个问题的提示,当voiceOver 运行时将bounce 属性设置为YES 根本无法解决它。

更新:用 iOS7(facebook 和 gmail)中的现有应用程序测试了这个问题,他们都遇到了同样的问题。

谢谢。

0 投票
1 回答
604 浏览

ios - VoiceOver 手势未按预期运行

我的应用程序中的 VoiceOver 支持遇到了一些挑战,而且我发现很难调试。

我有一个表格视图,其中每个单元格都是 VoiceOver 可以读取的元素。当我点击每个元素时它工作正常。它的摘要被大声朗读。当我使用此处所述的两指向下滑动手势时,它应该循环遍历我的表格视图中的所有单元格,一直到底部,大声朗读所有内容。问题是,它开始读取并按预期通过单元格,但随后突然停止。我可以看到 VoiceOver 光标移动,它甚至移动到下一个单元格,但没有读取它。

我试图子类UITableView化并实现这些UIAccessibilityContainer方法,但这并没有改善。

在我看来,我有不同类型的单元格,我怀疑其中一种单元格类型可能会导致这种情况,因为当它停止时,它似乎在此单元格类型之后停止,但它总是将光标移动到下一个单元格,而且并不总是在这种细胞类型之后停止。

我很乐意提供一些代码,但此时我不确定要提供什么。:)

我不知道如何调试这样的东西,因为当调用这个手势时我似乎没有得到任何回调。即使您无法回答问题,我们也非常感谢您提供有关如何调试 VoiceOver 问题的任何提示。

0 投票
0 回答
687 浏览

ios - 如何更改有助于盲人的新 ViewController 中的主要辅助功能元素?

我正在我的 iOS 应用 pikSpeak 中实现 VoiceOver 辅助功能,它可以帮助盲人在屏幕上找到 iOS 的不同按钮。

所以,当我打开一个新的 ViewController 时,Siri 宣布的第一个按钮是最左上角的那个。不过,这不是我希望用户在打开新 VC 时听到的主要按钮,因为它通常是后退按钮。相反,我希望它是页面标题按钮

那么,如何将主要可访问性更改为 UILabel ?

0 投票
0 回答
94 浏览

ios - [UITableViewSectionElement accessibilityChildren] 上的奇怪崩溃

上周我们刚刚在应用商店发布了一个新应用,我们在测试飞行中收到了很多奇怪的崩溃。

我们在 testflight 中遇到了大约 8 个不同的崩溃(具有几乎相同的堆栈跟踪),每个最多 5 个用户(总共大约 3k 个用户)和大约 200/250 次发生。由于没有人通过应用商店评论或电子邮件向我们抱怨经常性崩溃,我们认为这可能与后台获取有关(我们使用它来更新应用内的数据)。

我们还查看了可访问性选项,因为堆栈跟踪提到了 UIAccessibility,但无法重现此崩溃。UITableViewSectionElement 的同上(我们在 UITableCiew 上使用部分标题)但没有成功。我们强调了从 bakcground 线程调用 reloaddata 方法,但错误会更明确。

有人遇到过这种问题吗?或者至少对正在发生的事情有任何想法?

这是堆栈跟踪:堆栈跟踪

0 投票
1 回答
146 浏览

ios - TextKit 和旁白

我一直在关注 iOS7 Day-by-Day 多页 TextKit 教程,但遇到了可访问性问题。本教程的代码在这里:iOS7 Day-by-Day

问题是每个文本视图(每列一个,每个“页面”两个)似乎包含整个字符串,并且启用 VoiceOver 时,每次一列获得焦点时,都会从开头读取文本字符串到最后,而不是读取列中实际可见的文本。

textviews/columns 是使用新的 iOS7 方法创建的

UITextView *textView = [[UITextView alloc] initWithFrame:textViewFrame textContainer:textContainer];

如何让 VoiceOver 只读取每列中的可见文本?

0 投票
1 回答
684 浏览

ios7 - iOS 7 + Calabash:带有 NSLinkAttributeName 的 UITextView 和链接上的可访问性不起作用

我们有一个UITextView包含两个嵌入链接的属性字符串,这些链接是通过使用在文本视图中创建的NSLinkAttributeName。我们正在使用 Calabash 进行自动化测试,而 Calabash 不能“点击”这些 TextView 内部的链接。有什么我遗漏的东西使这些链接可以在UITextView自动化/可访问性工具中点击吗?

用户可以点击这些链接,并确认预期的委托回调正在工作。唯一不起作用的情况是使用辅助工具尝试点击UITextView.

以供参考:

非常感谢在使用NSLinkAttributeNamein的属性字符串时对可访问性的任何见解。UITextView

0 投票
0 回答
234 浏览

c++ - 如何为菜单选项提供可访问性支持(来自 QMenu 的 QAction)

我有问题。我似乎无法让屏幕阅读器告诉快捷键以及 QMenu 中包含的 QAction 的选项名称。例如,我希望屏幕阅读器告诉我“打开... Ctrl+O”,而不是“打开...”。

在我看来,问题在于屏幕阅读器只能看到 QAction::text() 属性。所以如果我做这样的事情:

我得到这样的东西:(对不起,但我需要至少 10 个声望才能发布图片)

|档案|

|打开Ctrl+O|

屏幕阅读器告诉我文件“文件菜单 Alt+F”,但打开选项只是“打开”。

如果我尝试做类似的事情:

我得到这样的东西:

|档案|

|打开 Ctrl+O Ctrl+O|

屏幕阅读器现在告诉我“打开 Ctrl+O”,但正如您所见,它复制了快捷方式的字符串。

到目前为止我已经尝试过:设置我可以看到的所有属性(例如 QAction::setWhatsThis、QAction::setIconText 等)

我找到了一个可以使用的小技巧;我可以做类似的事情:

但这从文本的顶部(“打开”)减少了一点。因此,一种对齐文本的方法,以便在我使用此 hack 时不会被剪切。

我愿意接受任何建议。我认为有办法使用 statusBar 来做到这一点,但我不知道怎么做。我希望我说清楚了...谢谢您的帮助!