在我的应用程序中有3个button,当打开语音input并且用户向右滑动时,下一个button被选中。 注 – button可访问性焦点与按下的button不同。 提问的理由 – 我希望应用程序在selectbutton1时公布“AAA”,按下button1时公布“BBB”。 问题 如何实现上述目标? 有没有办法在selectbutton时调用方法。
在我的项目中我有tableView,作为一个行有一个自定义的UITableViewCell,它有一个属性 – GMGridView(它类似于UICollectionView),它有它的委托方法: – (GMGridViewCell *)GMGridView:(GMGridView *)gridView cellForItemAtIndex:(NSInteger)index { GMGridViewCell *cell = [gridView dequeueReusableCell]; if (!cell) { cell = [[GMGridViewCell alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)]; cell.contentView = [[GridViewContentView alloc] initWithFrame:cell.frame style:GridViewStyleNews]; } Item *feed = _contentArray[index]; GridViewContentView *contentView = (GridViewContentView *)cell.contentView; contentView.textLabel.text = feed.textLabel; [contentView.imageView setURL:[NSURL URLWithString:feed.imageLink] withPreset:self.preset]; cell.contentView = contentView; NSLog(@"Address index %d – […]
我有一个基于文本的应用程序,我希望我的用户在启用VoiceOver时使用“线”转子选项。 但是,该选项不会出现。 在我的应用程序中的文本是使用tableview中的单元格(单元格包含UILabels和其他视图)布局。 恐怕我的执行会影响转子如何“看”我的应用程序,但我认为这是不幸的,如果它限制我完全支持转子。 有什么方法可以利用转子中的“线路”选项?
我有两个问题关于可访问性和UICollectionViews,我希望得到一些专家的帮助。 另一个问题,关于节标题,可以在这里find。 我已经创build了一个示例项目来演示这两个问题。 我有一个UICollectionView使用UICollectionViewFlowLayout包含可变高度的项目。 UIFlowLayout将每行的元素垂直居中。 不幸的是,当启用Voice Over时,它似乎倾向于垂直放置较高的元素,导致它无序地读取项目。 您可以拉这个示例项目 ,运行它,启用声音,并通过项目滑动看到问题。 它创build具有随机高度的单元格,所以很可能会按顺序读取单元格。 有没有一种方法可以使收集视图顺序通过项目? 我觉得这是唯一有道理的方法,但是我找不到一个强制执行的方法。 设置集合视图来分组子视图似乎没有帮助。 任何帮助将不胜感激。
我在自定义的UITableViewCell类中实现可访问性。 我有一个相当简单的溢出菜单,里面有几个button,直到按下一个省略号button,滑动打开并closures溢出。 在我的单元格的初始化程序中,我将overflowContainer的accessibilityElementsHidden设置为YES 。 这似乎工作,当滚动使用VoiceOver,这些意见被跳过。 然后,当打开单元格时,在UIViewanimation的完成处理程序中,我将同一个overflowContainer相同的accessibilityElementsHidden设置为NO。 这似乎没有任何影响,这些元素仍然跳过。 我也曾尝试在更改accessibilityElementsHidden BOOL之前/之后/更改accessibilityElementsHidden BOOL时发布UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil) ,但是这对此情况似乎也没有影响。 基本上我想切换一些UIView实例在特定点的accessibilityElementsHidden 。 谁能让我知道我可能做错了什么? 这是我打开溢出时触发的代码: – (void)cellOverflowDidShow:(MyCell *)cell { self.overflowContainer.isAccessibilityElement = YES; self.firstButton.isAccessibilityElement = YES; self.secondButton.isAccessibilityElement = YES; self.thirdButton.isAccessibilityElement = YES; UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.firstButton); } closures单元格时,我将相反的方向(全部设置为NO并再次发布通知)。 当初始化单元格时,我设定的是: self.overflowContainer.isAccessibilityElement = NO; 绝对不知道为什么它不应该工作,看来我正在做的一切100%正确。 如果我没有在初始化程序中设置行,所有button都可以访问(始终)。 所以看起来,第一个电话,不pipeYES还是NO ,都可以工作,但是随后的电话都会被忽略。
我有一个父UIViewController我添加四个子视图控制器。 我试图pipe理这些控制器的可访问性。 我有一个status枚举,跟踪哪些孩子在屏幕上可见,所以当这种情况发生变化时,我正在更新孩子的accessibilityElementsHidden ,并发送一个LayoutChanged通知。 我的问题涉及在父视图控制器和每个子视图控制器中实现UIAccessibilityContainer协议。 家长需要知道这些元素应该以什么顺序呈现等,每个孩子都有自己的元素,也需要特定的顺序。 看起来,在孩子们内部, UIAccessibilityContainer方法( accessibilityElementCount等)从来没有被调用,所以它看起来像忽略了它们,这使得我的元素不顺序和混乱。 这是应该如何? 我可能在这里做错了吗?
我正在尝试确保我正在使用的iOS应用程序可以访问,并且正在尝试实施VoiceOver以确保这一点。 一个奇怪的事情,我找不到任何帮助是当触摸ID视图显示(在我的情况下login到应用程序)。 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) { …… 来自VoiceOver的带有或不带有具有可访问性属性的上下文的输出总是标签文本。 […]
一般来说,我会看Apple的UICatalog示例代码,以获取基本的VoiceOver支持,但是看起来在示例代码中,UIPickerViews支持VoiceOver。 我是否需要在某处提供accessibilityLabel方法以添加VoiceOver支持? 我试图实现UIPickerViewAccessibilityDelegate方法,但语音只读取我的select器视图中的标签,而不是向上或向下滑动以更改值的提示。 另外我的select器视图设置为UITextField的input视图。 所以我不确定这是否相关。 更新: https : //github.com/stevemoser/VoiceOverPicker 我创build了一个示例项目来演示这个问题。 在这个例子中,显示了一个正常的select器视图和一个文本框。 还有一个select器被设置为文本框的input视图属性。 在使用VoiceOver的时候,我似乎无法启用任何一个select器。 虽然我可以通过在屏幕上浏览视图(左右)来激活任何一个。 有任何想法吗? 更新2:看起来如果应用程序是运行在iPhone上的iPhone应用程序或运行在iPad上的iPad应用程序,但是如果它是在iPad上运行的仅iPhone应用程序,则点击selectUIPickerView不起作用。
我正在尝试制作一个无障碍的应用程序。 当我想用iCarousel标准( 三指向左或向左滑动 )行为时出现问题 。 由于iCarousel本质上是不完全可访问的,它只是让用户拥有用户难以处理的项目。 我做了一些研究,有一些解决方法,但我也不想实现UIAccessibilityCustomAction,因为这不会给用户轻松刷卡的能力。
当UITableView可编辑时,它的UITableViewCells允许用户在VoiceOver打开时执行自定义操作。 当VoiceOver光标在单元格上时,用户可以通过向上或向下滑动来听到可用的操作,然后通过双击屏幕上的任意位置来调用操作。 我的单元格中只有两个可用的操作: 删除 (调用通常的单元格删除)和默认 (调用单元格上的一个水龙头)。 我的问题是双重的: 有没有一种方法可以将自定义的VoiceOver操作添加到单元格中? 默认情况下,即使表视图委托在tableView:titleForDeleteConfirmationButtonForRowAtIndexPath:方法中返回自定义标题,也会将其读出为“删除”。 如何让VoiceOver读出自定义操作标题?