如何为 UIPickerView 行设置 Voice Over 辅助功能标签?

2024-01-02

我正在尝试使我的 Voice Over 的 UIPickerView 可访问,我注意到 UIPickerViewAccessibilityDelegate 协议相当不完整。它只允许您指定 pickerView 组件的标签和提示,而不是组件内的行。 (它还有一个错误,它的 pickerView:accessibilityLabelForComponent: 方法没有在它的 pickerView 参数中传递 UIPickerView* ,而是一个 UIAccessibilityPickerComponent !)

所以我现在想知道,是否有任何方法可以为我的选择器的行设置自定义辅助功能标签,或者是否只能读出屏幕上显示的实际选择器行值?

我正在尝试做一个选择器视图,显示时间,小时,分钟,秒。我无法让 datePicker 执行此操作。但是,如果每一行都可以在画外音中说出类似“3 小时”而不是仅仅 3 的内容,那就太好了。如果我必须将可见标签设置为我希望画外音读出的内容,那么我不确定标签将适合显示这一点,即。

15小时35分20秒

用英语在屏幕上显示的内容相当多,不确定本地化后它会增长多大。因此,理想的是能够为每一行设置标签。

Cheers


如果您正在实施pickerView:viewForRow:forComponent:reusingView:的方法UIPickerViewDelegate作为填充 UIPickerView 组件的方式,您可以通过设置为每行实现自定义辅助功能标签accessibilityLabel on the UIView您将从该方法返回。

请注意,在填充以下内容的情况下,我未能成功使 VoiceOver 读取自定义辅助功能标签UIPickerView using pickerView:titleForRow:forComponent:- 均匀设置accessibilityLabel在返回的NSString(这在其他一些上下文中确实有效,例如为 UITableView 索引设置辅助功能标签)并没有改变 VoiceOver 的发音。因此,如果您想自定义 VoiceOver (或 Switch Control)对 UIPickerView 行说话的内容,似乎唯一的方法是使用pickerView:viewForRow:forComponent:reusingView:,而不是其他 2 个候选方法中的任何一个,用于填充 UIPickerView 行。

不过,我还是建议你重新考虑一下你所做的事情是否值得。当 VoiceOver(或 Switch Control)用户到达组件时,例如和accessibilityLabel“分钟”,他们知道现在是分钟,因为 VoiceOver 会读到例如: “分钟,19”,这样在调整数值时,就不需要再听到“20分钟”,“21分钟”; “20”和“21”就足够了,用户可以记住上下文(例如“现在我只有几分钟,所以让我们将其调整为 45”)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 UIPickerView 行设置 Voice Over 辅助功能标签? 的相关文章

随机推荐

  • 如何使用 jQuery 和 xhr2 进行文件上传(返回空 $_FILES)

    我正在使用 ajax 方法和 xhr2 使用 ajax 方法上传文件 当我将任何标准对象分配给 ajax 参数数据时 POST php 中将返回一个正确的非空数组 JS data name john doe PHP print r POST
  • 设置 Java 环境 (Apache Tomcat) 以编码 UTF-8

    我想知道如何设置 Java 环境以 UTF 8 进行编码 基本上 我的 JSP 页面显示了一些阿拉伯文本 但它们的编码似乎不正确 当我在 IDE 中运行页面时 它工作正常 但在它们所在的服务器上 它简单地将其显示为问号 我只是想知道如何设置
  • 如何将文本中的单词分离结合起来?

    我有简单的文字 text F 在这里我想组合单词并得到这个结果 巴德鲁
  • 如何在 iOS 上启用文件和文件夹权限

    我正在尝试使用 AlamoFire 下载文件并将其保存到用户选择的下载目录 如 safari 但是 每当我将下载目录设置为应用程序文档之外的文件夹时 我都会收到以下错误 在真实的 iOS 设备上 downloadFileMoveFailed
  • 应用程序可以被反编译吗?

    我需要将网站特定部分的身份验证信息编码到我的应用程序中 应用程序是否有可能被 反编译 并暴露用户名和密码 NSURL url NSURL URLWithString https predefinedUsername email protec
  • Azure DevOps gulp 步骤失败,找不到本地模块

    我有一个 Azure DevOps 构建步骤 为 angularjs 应用程序运行 gulp 我将 Gulp 文件路径设置为指向GulpFile js引用的任务应捆绑应用程序并将文件放入解决方案文件夹中的 zip 文件中 当我在 Visua
  • 如何设置 Amazon S3、回形针和 ENV 变量

    我尝试了许多不同的方法来使用 ENV 变量设置 S3 进行图像上传 但无法使其工作 我知道我的密钥和存储桶名称有效 因为当我将它们直接放入代码中时 我的图像会正确上传 但是 当我尝试切换到 ENV 变量时 事情不起作用 我使用了 Figar
  • 谷歌图表不显示轴标签

    这不适用于图像图表 我有以下代码可以生成正确的图表 但标签不显示 图表 div 位于另一个 div 中 该 div 用作我的页面上的选项卡 当我在未选择包含图表的选项卡时运行该函数时 图表将显示为没有标签 当我在选择选项卡的情况下运行该函数
  • android UDP连接,没有接收到任何数据

    我是这方面的新手 所以如果我问愚蠢的问题 请原谅我 我试图在 Eclipse 的 PC 模拟器和 Android 手机之间建立 UDP 连接 或两个 Android 手机设备之间 我有一个router并且手机通过路由器的 wifi 网络连接
  • 如何在 SQLAlchemy 中创建带有外键列表的字段?

    我正在尝试在另一个模型的字段中存储模型列表 下面是一个简单的例子 我有一个现有的模型 Actor 我想创建一个新模型 Movie 与场Movie list of actors import uuid from sqlalchemy impo
  • 使用 Angular ui-grid 时的列标题换行

    我已将我的 AngularJS SPA 应用程序从ng grid v2 0 7 to ui grid v3我的列标题不再环绕 我的列标题现在是单行并显示省略号 当列标题不适合时 此功能是否已被删除或者是否已被其他方法取代 我相信我已经找到了
  • SQL Server 2005 中的等周

    在 SQL Server 2008 中 可以通过以下方式找到 isoweek SELECT datepart iso week getdate 在 SQL Server 2008 之前 没有内置函数来查找 isoweek 我一直在寻找一个好
  • 如何同时使用多个键提取字典值?

    我遇到了以下问题 dict1 a 1 b 2 c 3 d 4 正常检索方法 dict1 a gt 输出 gt 1预期方法 dict1 a b gt 输出 gt 1 2 我的要求是通过同时提供多个键从字典中提取多个值 如上面预期方法中所述 有
  • 从 EST/EDT 转换为 GMT

    如何将日期时间从 EST EDT 转换为 GMT 但我不知道代码将在哪里运行 未知的本地时区 也不知道节省时间 你要TimeZoneInfo ConvertTimeToUtc http msdn microsoft com en us li
  • 找不到文件“obj\Debug\Program.exe.manifest”

    如果之前已经回答过这个问题 我们深表歉意 我的 VS2010 SP1 VB NET 环境发生了一些问题 我已经通过 ClickOnce 成功地编译和发布了项目 A 一段时间 然后尝试发布项目 B 并收到了错误 在文件 microsoft c
  • EJB 3.1 和 NIO2:监控文件系统

    我想我们大多数人都同意 NIO2 是一个很好用的东西 假设您想要监视文件系统的某些部分以获取传入的 xml 文件 现在这是一项简单的任务 但是 如果我想将这些东西集成到现有的 Java EE 应用程序中 这样我就不必启动另一个服务 应用程序
  • 如何通过复选框启用和禁用 DataGridView 中的特定行?

    我试图通过选中和取消选中 gridview 内的复选框来启用和禁用 DataGridView 中的特定行 C Windows 应用程序 我尝试使用 CellClick 事件 但未按预期工作 这是我尝试过的代码 private void da
  • Javascript removeEventListener 不在类内工作[重复]

    这个问题在这里已经有答案了 我一直在玩 es6 类 并尝试设置一个简单的鼠标类 addEventListener有效 但由于某种原因我无法删除它们removeEventListener 我猜这与上下文绑定有关 但我不知道如何解决这个问题 u
  • 如何访问共享库中的文件?

    我有一个带有 groovy 脚本的共享库 我在 jenkinsfile 中调用该脚本 如下所示 MySharedLibFunction some args 我的共享库中还有一个我想要执行的 ps1 文件 但如果我这样做powershell
  • 如何为 UIPickerView 行设置 Voice Over 辅助功能标签?

    我正在尝试使我的 Voice Over 的 UIPickerView 可访问 我注意到 UIPickerViewAccessibilityDelegate 协议相当不完整 它只允许您指定 pickerView 组件的标签和提示 而不是组件内