苹果关于该协议的文档提到了accessibilityPerformEscape
“在可以模态或层次结构显示的元素或包含视图上实现此方法。当 VoiceOver 用户执行关闭操作时,此方法将关闭视图。例如,您可以为弹出窗口实现此方法,以便给出用户故意执行关闭弹出窗口的关闭操作。”
我找不到任何有关解雇行动的信息。有人有任何线索吗?
我在我的应用程序中使用UINavigationController.当使用VoiceOver时,当按下新的ViewController时,backButton具有焦点.
如果视图出现,我宁愿让titleView的accessibilityLabel聚焦,以便首先读取它的accessibilityLabel.
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, self.navigationItem);当我第一次创建并推送视图控制器时,使用titleView似乎是重点.但是当我从另一个视图控制器(推到第一个视图控制器)回来时,焦点再次出现在后退按钮上.
启用VoiceOver时,我想控制我的应用程序的发音方式。例如,如果我的应用程序名为“ BLOT ”(当前发音为“ BLAUGHT ”),则我想要的发音应为“ BLOAT ”。我可以吗?我进行了研究,发现可以通过CFBundleDisplayName on 来控制字符Infoplist.strings,但是还没有找到适合我特殊需要的东西。有任何想法吗?
我有以下格式的电话号码
1-1xx-2XX-9565
目前VO将其读作" 一个(暂停)一个xx(暂停)两个xx(暂停)减去九千五百六十五个 ".
VO应将其读作" 一个(暂停)一个xx(暂停)两个xx(暂停)九个五六五 ".
可能是什么问题呢?这是错误的手机格式吗?
我正在努力确保我正在开发的 iOS 应用程序是可访问的,并且正在尝试实施 VoiceOver 以确保这一点。
我找不到任何帮助的一件奇怪的事情是显示 Touch ID 视图时(在我的情况下用于登录应用程序)。VoiceOver 将 ID 发音为单词而不是 ID
我尝试为 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) {
......
Run Code Online (Sandbox Code Playgroud)
带有或不带有可访问性属性的上下文的 VoiceOver 的输出始终是标签文本。
非常感谢所有帮助:)
我是iOS Accessibility领域的新手,我正在尝试使用此UIAccessibilityNotification功能,但它无法正常运行。我用一个按钮编写了一个非常简单的应用程序,当您单击该按钮时,将调用此方法。
- (IBAction)announce:(id)sender {
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,
@"Speak this out loud");
}
Run Code Online (Sandbox Code Playgroud)
以我的理解,当您单击按钮时,画外音将显示为“大声说出来”,但它正在读取按钮名称。谁能告诉我代码有什么问题,或者为什么我用错了代码?
为了清楚起见,我双击了按钮。当您单击该按钮时,它将读取按钮名称和特征(“ button”),而当您双击该按钮时,它将仅读取按钮名称。
感谢@ChrisCM的回答。延迟发布使其生效。
@IBAction func announce(sender: AnyObject) {
let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(2 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, "Item added to cart")
})
}
Run Code Online (Sandbox Code Playgroud)
但是,仍然存在一个小问题,即单击“添加到购物车”按钮后,画外音将定位到第一个可访问项,即后退按钮,并读取“后退按钮”,然后读取announcementNotification参数。
我有一个带有 PickerView 的 inputView 的 UITextfield。我想实现当用户双击 UITextfield 时,pickerView 以模态显示,就像默认一样,并且可访问性的焦点从文本字段更改为 pickerView。这就是我现在的做法:
func textFieldDidBeginEditing(textField: UITextField) {
let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.65 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.quantityPicker)})
}
Run Code Online (Sandbox Code Playgroud)
当用户双击 textField 并在 0.65 秒延迟后发送 UIAccessibilityLayoutChangedNotification 以专注于 pickerView 时,此委托只会被调用。
那么问题是:
我在这里使用了一个延迟来等待pickerView弹出动画完成,但如果我能知道pickerView动画在某处完成并放置会更好
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.quantityPicker)
那里。那么是否有任何委托或其他简单的方法可以知道 pickerView 已准备好使用?
我有一个textField,其中pickerView作为inputView.
现在,当我有画外音并选择textField时,画外音将读取:"数量:3(textField的内容)",然后是"textField",然后是"Double tap to edit".
无论如何都要让画外音只是阅读内容并跳过下面的"textField.双击编辑"?
我试图给textField另一个UIAccessibilityTraits/Hints,但它们不起作用.
谢谢!
假设我在HTML中有以下句子:
<p>Please enter your licence number</p>
屏幕阅读器错误地将"许可"一词称为"liss-ens"(语音拼写).它应该发音为"lice-ens"(拼音拼写).
我想通过向屏幕阅读器提供语音拼写来解决这个问题,同时让文本在视觉上显得相同.
我可以使用<span>s,aria-属性和样式如下:
<p>Please enter your <span aria-hidden="true">licence</span><span style="position: absolute; left: -10000em;">license</span> number</p>
这很好用,除了屏幕阅读器(我在MacOS上使用VoiceOver测试)在第一个跨度时暂停,迫使我按[VO] + [向右箭头]前进到下一个单词:
"请输入你的"...... [VO] + [右箭头] ..."lice-ens"... [VO] + [右箭头] ......"数字"
我希望屏幕阅读器能够顺利地读出句子而不会暂停.
这可能吗?或者我不应该试图控制这个?
我在 InterfaceBuilder 中创建了一个 UISwitch 来打开和关闭音频。开关工作正常,但我想将 Voiceover 从当前“0”和“1”读出的值更改为“关”和“开”。我的代码如下:
import UIKit
class AudioStreamTableViewCell: UITableViewCell {
weak var controller: EventDetailsViewController!
weak var audioInterface: EventAudioInterface? { didSet { if self.audioInterface !== oldValue { self.updateUI() }}}
func updateUI() {}
override func awakeFromNib() {
super.awakeFromNib()
self.updateUI()
}
}
class MuteStreamTableViewCell: AudioStreamTableViewCell {
static let identifier = "MuteStreamTableViewCell"
@IBOutlet var muteSwitch: UISwitch!
override func updateUI() {
self.muteSwitch.isOn = self.audioInterface?.muted ?? false
}
@IBAction func switchChanged(_ muteSwitch: UISwitch) {
self.controller.setMuted(muteSwitch.isOn, on: self.audioInterface)
if muteSwitch.isOn {
self.muteSwitch.accessibilityValue = "on" …Run Code Online (Sandbox Code Playgroud) voiceover ×10
ios ×9
objective-c ×3
swift ×2
uitextfield ×2
css ×1
html ×1
iphone ×1
touch-id ×1
uipickerview ×1
wcag ×1