Я пытаюсь обеспечить доступность приложения iOS, над которым я работаю, и пытаюсь реализовать VoiceOver, чтобы обеспечить это.
Одна странная вещь, по которой я не могу найти никакой помощи, - это когда отображается представление Touch ID (в моем случае для входа в приложение). VoiceOver произносит ID как слово, а не I.D.
Я попытался реализовать атрибуты доступности как для NSString, так и для объекта LAContext, но, похоже, ни один из них не меняет то, что считывает VoiceOver. Фрагменты кода ниже:
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 с контекстом или без него, имеющим атрибуты доступности, всегда является текст метки.
Любая помощь очень ценится :)