我有一个 iOS 应用程序,我正在为其添加辅助功能。
当屏幕被按下时,语音会自动读取屏幕上的第一个元素 - 在我的例子中,它会读取我的后退按钮 -UINavigationBarButton我的UINavigationBar.
如果我禁用后退按钮的辅助功能 - 它会读取我的屏幕标题+当用户触摸后退按钮时它不会读取后退按钮。
那么...当我推入新屏幕时,如何让画外音关闭?仅当我告诉它或用户触摸某个元素时才会说话。
谢谢。
所以我有一个自定义视图控制器,它显示一个带有几个按钮的对话框。当视图出现时,我希望画外音读出一些描述对话框的基本信息。为了实现这一点,我将父视图设为可访问元素,并且作为两个按钮的子视图也是可访问元素。我现在的问题是按钮无法直接点击。只能通过在屏幕上向右滑动来到达它们。
class MyViewController: UIViewController {
let parent = UIView()
let button1 = UIButton()
let button2 = UIButton()
init() {
parent.addSubview(button1)
parent.addSubview(button2)
parent.isAccessibilityElement = true
button1.isAccessibilityElement = true
button2.isAccessibilityElement = true
parent.accessibilityLabel = "Message"
self.view.addSubview(parent)
self.view.accessibilityElements = [parent, button1, button2]
}
override func viewDidAppear(_ animated: Bool) {
}
}
Run Code Online (Sandbox Code Playgroud)
如果有更好的方法让画外音在打开时描述视图,我也愿意。
此外,视图必须是模态的,以便焦点集中在视图上。
我有几个NSButtons只是图像,并完全以编程方式设置.当VoiceOver读取这些按钮时,它们会为每个按钮显示"未选中复选框".我想为VoiceOver设置一个属性来读取更具描述性(出于辅助目的),但我无法在按钮上设置title属性,因为标题将会显示(我只想显示图标) ).
我试过用
[self.button accessibilitySetOverrideValue:title forAttribute:NSAccessibilityDescriptionAttribute];
Run Code Online (Sandbox Code Playgroud)
但没有改变.我也尝试过NSAccessibilityTitleAttribute,NSAccessibilityRoleDescriptionAttribute和NSAccessibilityRoleAttribute没有运气.我做错了什么吗?
谢谢.
当用户单击iOS上的按钮时,我将启动自定义弹出窗口.在iPhone上使用配音时,如何确保焦点保持在自定义弹出窗口内(出于可访问性原因)?目前,当我向右滑动时,焦点落在父容器中的元素上.
iOS 8.x VoiceOver为已禁用的按钮宣布调暗而不是禁用.有没有办法以编程方式让VoiceOver说"禁用"而不是"暗淡"?
我正在为盲人编写一个应用程序,并想在其主页上放置一些说明。该指令是多段静态文本。我把它放在 UITextView 中。
我希望盲人用户能够使用 VoiceOver 逐段阅读说明。但是,当用户将 VoiceOver 焦点移到 UITextView 上时,VoiceOver 始终将指令作为一个整体来读取。我的设备是装有 iOS 7 的 iPad 2 和 iPhone 5s。
那么,有什么方法可以设置我的 UITextView 以便 VoiceOver 用户可以逐段阅读文本片段?如果 UITextView 不可能做到这一点,还有哪些其他选择?我真的必须使用 UITableView 吗?
谢谢你!
乔
我们的 iPhone 应用程序目前支持 IOS 8/9/10。我很难支持自定义 UITableViewCell 的可访问性语音。我已经浏览了以下 SO 帖子,但没有一个建议奏效。我希望可以访问各个组件。
对我来说不幸的是,可访问性检查器未检测到该单元格。有没有办法通过可访问性来选择表格视图单元格中的单个元素?在设备和模拟器上调试此问题时,我发现 XCode 调用isAccessibleElement函数。当函数返回时NO,将跳过其余的方法。我正在 XCode 中测试 IOS 9.3。
我的自定义表格视图单元格由一个标签和一个开关组成,如下所示。
标签被添加到内容视图,而开关被添加到自定义附件视图。
接口定义如下
@interface MyCustomTableViewCell : UITableViewCell
///Designated initializer
- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier;
///Property that determines if the switch displayed in the cell is ON or OFF.
@property (nonatomic, assign) BOOL switchIsOn;
///The label to be displayed for the alert
@property (nonatomic, strong) UILabel *alertLabel;
@property (nonatomic, strong) UISwitch …Run Code Online (Sandbox Code Playgroud) 当使用VoiceOver选择本地开关时,公告将包含“关”或“开”,并带有附加提示“双击切换设置”。
我尝试使用可访问性trait UIAccessibilityTraitSelected,但这只会导致“ Selected”被宣布,除非我明确提供,否则没有任何提示。
使用Accessibility Inspector时,我还注意到本机UIKit开关1启用时具有accessibilityValue ,但是提供该设置不会改变VoiceOver的行为。
- (UIAccessibilityTraits)accessibilityTraits {
if (toggled) {
return UIAccessibilityTraitSelected;
} else {
return UIAccessibilityTraitNone;
}
}
- (NSString*)accessibilityValue {
if (toggled) {
return @"1";
} else {
return @"0"
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以提供特征/值/标签的某种组合,以使TalkBack无需使用UISwitch即可将此元素识别为Switch?
我正在使用 Unicode 星号显示产品评级。iOS VoiceOver 无法正确朗读此内容,因此我想我会aria-label在我的跨度上使用它来告诉屏幕阅读器它的含义。
<span aria-label="4.0 stars out of 5, 123 ratings">????? 4.0 (123)</span>Run Code Online (Sandbox Code Playgroud)
它不起作用。iOS VoiceOveraria-label完全忽略了我的。
我究竟做错了什么?我怎样才能解决这个问题?
这样对吗?恐怕它会给用户读两次“切换”这个词。
<Switch
accessible={true}
accessibilityLabel="Switch button"
accessibilityHint="Double tap to toggle setting"
accessibilityRole="switch"
/>
Run Code Online (Sandbox Code Playgroud)
提前谢谢了。
voiceover ×10
ios ×8
html ×1
ios8 ×1
macos ×1
mobile ×1
nsbutton ×1
objective-c ×1
react-native ×1
swift ×1
talkback ×1
uitableview ×1
uitextview ×1
wai-aria ×1