6

我想让自定义键盘在可访问性方面像 iOS 软件键盘一样执行。当按下按钮将字母添加到 UITextField 时,VoiceOver 应以“添加的字符音”说出该字母。当按下按钮从 UITextField 中删除一个字母时,VoiceOver 应以“已删除字符音”说出该字母。

这是我尝试的:

  1. 在情节提要的视图控制器中创建了一个 UITextField。
  2. 在情节提要的视图控制器中创建了两个标记为“Type”和“Backspace”的 UIButton。
  3. 将两个 UIButton 的可访问性特征设置为键盘键。
  4. 将故事板 UITextField 连接到 IBOutlet UITextField 实例 textField。
  5. 将情节提要的“类型”UIButton 连接到 IBAction,-type。
  6. 将故事板“Backspace”UIButton 连接到 IBAction,-backspace。
  7. 实现 -type 为:[[self textField] insertText:@"a"];.
  8. 实施 -backspace 为:[[self textField] deleteBackward];
  9. 使 textField 成为第一响应者。

我也尝试过同样的事情,将按钮移动到设置为 textField 的 inputView 的 UIView 中。

字符已正确添加到文本字段中或从文本字段中删除,但 VoiceOver 不会说出这些字符。我怎样才能使这项工作?

编辑:
硬件键盘说话正确。只有自定义软件键盘没有按应有的方式说话。

4

2 回答 2

0

我注意到,要让“Spoken Content”»“Speak Screen”也能说出键盘按键,我必须将 添加.keyboardKey到 buttonaccessibilityTraits中,例如在 Swift 中:

button.accessibilityTraits = [.keyboardKey]

或者在 Objective-C 中:

[button setAccessibilityTraits:UIAccessibilityTraitKeyboardKey];

而且,显然,如果您的按钮是图像,您也需要accessibilityLabel为它们添加显式按钮。

于 2019-07-29T18:31:17.883 回答
-1

可能需要为整个设备启用 Voice Over 才能正常工作。您可以在可访问性中更改此设置。如果设备上已经启用了语音,我不知道该怎么做。

于 2013-05-24T14:09:32.780 回答