我想在我的应用程序中启用辅助功能支持,当用户输入无效数据时,我有内联验证消息(例如,如下面的屏幕截图所示).我的应用程序没有显示任何错误消息. 什么是最好和直观的方式来告知
什么是最好和直观的方式来告知视障人士/盲人用户错误的数据输入.例如用户名和密码不匹配,无效.
首先,没有“正确”的方法来做到这一点.只有很多方法可行.实现这一目标的“最佳”方式是iOS具有“必需”特征(IMO).但这不受支持,所以我们必须使用iOS给我们的东西……提示和标签.步骤1:
告诉用户需要什么.我会通过将信息添加到提示来完成此操作.我想在提示中添加信息,只有非熟悉的用户才需要.应用程序的“超级用户”将使用所需的字段(假设您将拥有返回用户,某些视图只是“命中并运行”类型).但是,重点是,不要向用户提供不必要的信息.经常访问特定视图的用户将使用所需的内容,因此请在提示中保留非关键信息.你想要的是画外音读出文本输入字段,如:“电子邮件(accessibilityLabel)文本字段(对象的类型),(暂停)此字段是必需的.(提示)”不要等到失败后向VoiceOver用户提供此信息.它应该始终以这种方式设置.如果故障类型发生更改,请更改提示以适应此特定类型的故障.如果您希望保持提示与红色突出显示的标签同步,您可以考虑覆盖UIAccessibilityProtocol中的功能以提取此信息EX:
- (NSString*)accessibilityHint { return myUILabel.text; }
这应该导致保持对象的提示,并且UILabel的文本同步.
第2步:
标记不是文本输入字段的所有元素,而不是可访问性元素.用户需要的有关这些字段的所有信息都存储在字段类型(文本输入字段),标签(电子邮件/密码)或提示(无论是否需要)中.因此,我们不希望VoiceOver查看其他元素,因为这将是重复信息.
第3步:
使用以下代码行:
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, anAccessibilityElement);
在您的登录操作中.在失败的登录操作中,您应该将配音焦点转移到导致失败的元素.这会通知用户他们的行为已经尝试,并且失败了.它还允许他们轻松地知道哪个元素导致了故障,并且需要修复.如果发生多次故障,请确保将焦点转移到第一次故障!