当前位置 : 主页 > 手机开发 > ios >

iOS:动态标签/验证错误的辅助功能支持?

来源:互联网 收集:自由互联 发布时间:2021-06-11
我想在我的应用程序中启用辅助功能支持,当用户输入无效数据时,我有内联验证消息(例如,如下面的屏幕截图所示).我的应用程序没有显示任何错误消息. 什么是最好和直观的方式来告知
我想在我的应用程序中启用辅助功能支持,当用户输入无效数据时,我有内联验证消息(例如,如下面的屏幕截图所示).我的应用程序没有显示任何错误消息.

什么是最好和直观的方式来告知视障人士/盲人用户错误的数据输入.例如用户名和密码不匹配,无效.

首先,没有“正确”的方法来做到这一点.只有很多方法可行.实现这一目标的“最佳”方式是iOS具有“必需”特征(IMO).但这不受支持,所以我们必须使用iOS给我们的东西……提示和标签.

步骤1:

告诉用户需要什么.我会通过将信息添加到提示来完成此操作.我想在提示中添加信息,只有非熟悉的用户才需要.应用程序的“超级用户”将使用所需的字段(假设您将拥有返回用户,某些视图只是“命中并运行”类型).但是,重点是,不要向用户提供不必要的信息.经常访问特定视图的用户将使用所需的内容,因此请在提示中保留非关键信息.你想要的是画外音读出文本输入字段,如:“电子邮件(accessibilityLabel)文本字段(对象的类型),(暂停)此字段是必需的.(提示)”不要等到失败后向VoiceOver用户提供此信息.它应该始终以这种方式设置.如果故障类型发生更改,请更改提示以适应此特定类型的故障.如果您希望保持提示与红色突出显示的标签同步,您可以考虑覆盖UIAccessibilityProtocol中的功能以提取此信息EX:

- (NSString*)accessibilityHint {
    return myUILabel.text;
}

这应该导致保持对象的提示,并且UILabel的文本同步.

第2步:

标记不是文本输入字段的所有元素,而不是可访问性元素.用户需要的有关这些字段的所有信息都存储在字段类型(文本输入字段),标签(电子邮件/密码)或提示(无论是否需要)中.因此,我们不希望VoiceOver查看其他元素,因为这将是重复信息.

第3步:

使用以下代码行:

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, anAccessibilityElement);

在您的登录操作中.在失败的登录操作中,您应该将配音焦点转移到导致失败的元素.这会通知用户他们的行为已经尝试,并且失败了.它还允许他们轻松地知道哪个元素导致了故障,并且需要修复.如果发生多次故障,请确保将焦点转移到第一次故障!

网友评论