是否可以使用iPhone上的VoiceOver在标签上发布更新文本?
这类似于ARIA中的活动区域.
谢谢.
我正在使用我的iPhone应用程序.VoiceOver令人印象深刻.当用户使用VoiceOver时,它会自动读取屏幕上的项目,并允许用户双击屏幕上的任意位置以选择该项目.但是,我希望VoiceOver以特定顺序读取项目,但它始终以UINavigationBar项目(包括后退按钮)开头.我不希望这些项目根本不被阅读,我只想从一个特定的项目开始.是否有VoiceOver相当于"firstResponder"?
我正在尝试在应用中改善Voice Over支持.我有一个UISearchBar
.我把showBookMarks
财产设置为YES
.我已经设置了一个自定义图像:
[searchbar setImage:icon forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,启用Voice Over后,无法激活书签图标.如果我输入文本,则会出现"清除"图标,可以按预期选择并激活它.但是一旦文本被清除并且我的书签图标出现,就无法选择它.无论我在哪里点击,Voice Over矩形始终围绕整个搜索栏,包括图标.
我已经尝试在图标上设置accessibilityLabel
和accessibilityTraits
属性UIImage
.我已经设置UIImage
的isAccessibilityElement
属性YES
.似乎没什么用.
有谁知道在UISearchBar
可访问的书签图标中需要哪些步骤?
这是搜索栏的完整代码:
UISearchBar *bar = [[UISearchBar alloc] init];
[bar sizeToFit];
bar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
bar.placeholder = @"Search listed items";
bar.autocapitalizationType = UITextAutocapitalizationTypeNone;
bar.autocorrectionType = UITextAutocorrectionTypeNo;
bar.keyboardType = UIKeyboardTypeDefault;
bar.showsBookmarkButton = YES;
bar.text = @"";
UIImage *icon = [UIImage imageNamed:@"bookmarks.png"];
icon.accessibilityLabel = @"Bookmarks";
icon.accessibilityTraits = UIAccessibilityTraitButton;
icon.isAccessibilityElement = YES;
[bar setImage:icon forSearchBarIcon:UISearchBarIconBookmark …
Run Code Online (Sandbox Code Playgroud) 当a UITableView
可编辑时,UITableViewCells
允许用户在启用VoiceOver时执行自定义操作.当VoiceOver光标在单元格上时,用户可以通过向上或向下滑动来听到可用的操作,然后通过双击屏幕上的任何位置来调用操作.我的单元格中只有两个可用的操作:删除(调用通常的单元格删除)和默认(调用单元格上的点按).我的问题是双重的:
有没有办法向单元格添加自定义VoiceOver操作?
默认情况下,删除被读出为"删除",即使表视图委托返回的自定义标题操作tableView:titleForDeleteConfirmationButtonForRowAtIndexPath:
方法.如何让VoiceOver读出自定义动作标题?
我在将配音光标移动到viewDidAppear上的特定元素时遇到问题.我遵循Apple的指导原则,专注于特定元素,在这种情况下是一个消除按钮,但光标最终会在其他地方
这是我的代码:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
self.dismissButton);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,想法,绝对会受到赞赏!非常感谢.
我试图复制iOS相机的体验,在旋转时,UI本身不会旋转,但各个元素都会旋转.通过在视图控制器中设置以下内容,我可以通过视觉方式完美地复制效果:
- (BOOL) shouldAutorotate {
return YES;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationPortrait;
}
Run Code Online (Sandbox Code Playgroud)
另外,我在触发事件时UIDeviceOrientationDidChangeNotification
使用并旋转视图CGAffineTransform
.再次,这在视觉上完美地工作.但是,旋转无法在VoiceOver中生效.当我旋转到横向时,我希望左右滑动仍然允许我浏览元素.但是,我必须做上下滑动.实现此效果的另一种方法是什么适用于有视力和VoiceOver用户?
我想创建一个文本字段和文本字段上的子视图,可通过 VoiceOver 访问。如果我使用UIAccessibilityContainer
方法,我只能使子视图可访问。有什么方法可以做到这一点吗?
电话号码通常都是数字,忽略了parens,破折号,加号等,因此电话号码的输入字段通常是数字.
当屏幕阅读器遇到数字输入字段时,它会将值读作整数.例如,如果我有一个美国电话号码的三个输入字段,第一个是区号(3位数),那么交换(3位数),然后是行(4位数),如果字段有123,456 ,7890(分别),我们通常认为这个数字是"一二三","四五六","七,八,九,零"的方式.
但是当屏幕阅读器遇到那些领域时,它会说"一百二十三","四百五十六","七千八百九十".
我认为屏幕阅读器用户习惯于将电话号码视为大数字(至少是我曾经说过的那些人),但这并不意味着我们无法让它变得更好.如果我向其中一个人询问他们的电话号码,他们就不会使用大数字而是使用个别数字.
我尝试了各种<input>类型,并查看了所有角色,状态和属性,但没有看到内置任何可以强制读取数字的内容.
我所能想到的是通过将视觉上隐藏的<span>包含数字作为单独的数字,<span id ='foo'> 1 2 3 </ span>,然后使用<input aria-labelledby =来编码它'富'>.
有没有更好的办法?
accessibility screen-readers voiceover nvda jaws-screen-reader
我正在努力使叠加模式更易于访问。它的工作原理基本上类似于此JSFiddle。当您打开模态时,焦点不会正确地进入模态,并且它将继续聚焦于页面中的其他(隐藏的背景)项目。
你可以在我的jsfiddle演示中看到,我已经使用aria-controls
,aria-owns
,aria-haspopup
甚至aria-flowto
。
<button
aria-controls="two"
aria-owns="true"
aria-haspopup="true"
aria-flowto="two"
onclick="toggleTwo();"
>
TOGGLE DIV #2
</button>
Run Code Online (Sandbox Code Playgroud)
但是,在使用MacOS VoiceOver时,这些功能都不符合我的预期(尽管VoiceOver确实尊重aria-hidden
我在div上设置的功能two
)。
我知道我可以操纵tabindex
,但是0以上的值对可访问性不利,因此我唯一的选择是手动找到页面上所有可聚焦的元素并将它们设置为tabindex=-1
,这在这个大型,复杂的网站上不可行。
另外,我研究了使用Javascript手动拦截和控制选项卡行为的方法,以便将焦点移到弹出窗口中,并在退出底部时又回到顶部,但是,这也影响了可访问性。
accessibility screen-readers voiceover wai-aria jaws-screen-reader
我正在为我的名为 Swordy Quest 的 iOS 游戏构建完全可访问性:https : //apps.apple.com/us/app/swordy-quest-an-rpg-adventure/id1446641513
正如您从上面链接的屏幕截图中看到的,我创建了一张地图,其中包含 50x50 个单独的 UIView,每个 UIView 上都有一个 UIButton,所有这些都位于 UIScrollView 上。关闭 VoiceOver 后,整个应用程序(包括地图部分)都可以正常工作 - 尽管地图加载有时会有点慢。当我打开 VoiceOver 时,整个应用程序响应良好,除了地图部分,它变得非常滞后 - 在我的 iPhone 7 上几乎无法播放(比如用旧手机测试最糟糕的用户体验)。
如果打开 VoiceOver,我曾尝试删除图像细节,但这根本没有区别。这让我认为滞后是由于 50 x 50 UIViews 所有这些都添加了可访问性标签。如果单个 UIViewController 上有太多可访问的标签,VoiceOver 是否会开始严重滞后?
有谁知道一种巧妙的方法来解决这个问题?我想知道是否有一种聪明的方法可以关闭 AccessibilityLabels,除非 UIView/UIButton 位于 UIScrollView 的可见部分?
voiceover ×10
ios ×6
objective-c ×3
iphone ×2
wai-aria ×2
ipod-touch ×1
lag ×1
nvda ×1
swift ×1
uisearchbar ×1
uitextfield ×1
xcode ×1