Touch ID的VoiceOver辅助功能标签 [英] VoiceOver accessibility label for Touch ID

查看:105
本文介绍了Touch ID的VoiceOver辅助功能标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试确保正在使用的iOS应用程序可以访问,并且正在尝试实现VoiceOver来确保这一点.

I am trying to ensure that the iOS app that I am working on is accessible and am trying to implement VoiceOver to ensure this.

我无法找到任何帮助的奇怪事情是显示Touch ID视图时(以我的身份登录该应用程序). VoiceOver会将ID作为单词而不是I.D来发音.

One strange thing that I cannot find any help for is when the Touch ID view is displayed (in my case for signing into the app). VoiceOver pronounces ID as a word and not I.D.

我尝试实现对NSString和LAContext对象的可访问性属性,但是似乎都没有改变VoiceOver读出的内容.下面的代码段:

I have tried implementing the accessibility attributes to both NSString and the LAContext object but neither seem to change what is read out by VoiceOver. Code snippets below:

LAContext *context = [[LAContext alloc] init];
[context setIsAccessibilityElement:YES];
[context setAccessibilityLabel:@"TEST 2"];

NSError *error = nil;

NSString *label = @"Please authenticate your ID using the Touch ID";
[label setIsAccessibilityElement:YES];
[label setAccessibilityTraits:UIAccessibilityTraitStaticText];
[label setAccessibilityLabel:@"TEST"];

showingTouchID = TRUE;

if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
            localizedReason:label
                      reply:^(BOOL success, NSError *error) {
......

来自VoiceOver的带有或不带有具有辅助功能属性的上下文的输出始终是标签文本.

The output from VoiceOver with or without context having the accessibility attributes is always the label text.

非常感谢所有帮助:)

推荐答案

您绝对不应更改辅助功能标签,只是为了使VoiceOver正确发音(即不要尝试破解"标签的发音).原因是VoiceOver仅不输出语音.它还具有盲文输出,盲人希望盲文用户在阅读时逐字准确地阅读内容(即完全看到所有空格,大写/小写字母等).写下"ID"而不是"ID",然后虽然VoiceOver可能会正确发音(在iOS的特定版本中),但盲人用户在点字显示器上也阅读了"ID"后,可能会认为这实际上是这样写的当他们在与他人的书面交流中使用这种错误的拼写时,就会出现非专业的说法.

You should definitely not change the accessibility label just to make VoiceOver pronounce things correctly (i.e. do not try "hack" the label pronounciation). The reason is that VoiceOver does not have speech output only; it has also braille output where blind users expect to read things exactly letter-by-letter as they are written (i.e. see exactly all the spaces, capital/small letters, etc.) If you did e.g. write "I D" instead of "ID", then while VoiceOver would pronounce it perhaps correctly (in the specific version of iOS), blind users, after also reading "I D" on a braille display might think that that is how it is actually written and appear let's say non-professionally when they would then use this wrong spelling in written exchanges with other people.

尽管没有给出立即的解决方案,但正确的处理方法是:

The correct way to deal with this, albeit without giving you an immediate solution, is:

  1. 向Apple提交有关以特定语言用特定语音发音特定单词的错误(例如,预期发音:[aj'di:]"与实际发音:[id]"))
  2. 向Apple提交错误请求仅能自定义发音的功能(例如,您将使可访问性标签保持完整和正确的位置,但向语音指定应如何发音文本的某些部分),以及该自定义可以在哪里进行可以通过翻译器翻译字符串来分别针对每种语言进行操作(因为错误的发音是特定于语言的)-另请参见下一点.
  3. 如果您可以重新输入单词,请尝试使用与有问题的单词不同的单词(对于设置为"Touch ID"的单词似乎不适用).但这也是一个骇客,因为它只能解决英文原件,而不在乎翻译,否则重新措词可能会使发音变得复杂.

很抱歉这个坏消息.

最后,在iOS 8.4.1和iOS 9.0.2上,至少在此网页上具有默认美国英语iOS语音的VoiceOver至少在此网页上将"Touch ID"中的"ID"发音为[ajdi:],而不是[ id].

Finally, here, both on iOS 8.4.1 and iOS 9.0.2, VoiceOver with default US English iOS voice, at least on this webpage, pronounces "ID" in "Touch ID" as [ajdi:], not [id].

这篇关于Touch ID的VoiceOver辅助功能标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆