我在 a 上有一个 aria-live 区域role="alert",其值"assertive"未在表单提交中说出。当时它也是由 PHP 编写的,就像页面加载一样。
它在 PC 上的 NVDA 中运行良好,但在 Mac 上却什么也说不出来。我发誓我之前已经测试过这一点并且经常使用这种技术。
有什么想法为什么不被谈论吗?
div 看起来像这样:
<div class="alert alert-danger" role="alert" aria-live="assertive">Error: please fix the indicated fields:</div>
Run Code Online (Sandbox Code Playgroud) 在配置视图 (.xib) 中的元素以实现可访问性时,我们在可访问性检查器中提供了多个选项。据我了解,在“特征”部分中选择选项使用户能够在使用 VoiceOver 时“按 Tab”或“滑动”特定类型的元素。但是,我不确定选择(或取消选择)“用户交互启用”选项会产生什么效果。
例如,静态标签默认启用此特征。我已启用此元素的辅助功能,填充标签和提示,并选择静态文本和标题特征。除了阅读文本之外,用户不需要与此元素交互,因此我取消选择了该选项。
我读过Apple的《iOS辅助功能编程指南》;但是,我无法找到有关此特征的任何信息。
我目前正在尝试使具有一到多个子元素的 DOM 元素尽可能易于访问。该元素将包含使用多层背景图像的说明性内容。我目前正在使用子元素来提供图像描述,如这篇关于如何在内容组内标记说明性内容的信息丰富的博客文章中所述。容器元素还可以包含其他包含文本内容的子元素。
示例元素当前如下所示:
<div tabindex="0" class="comic-panel">
<span role="img" aria-label="There is a cat sitting in the window."></span>
<div style="background-image: url(/assets/img/window.png);" class="comic-panel__layer"></div>
<div style="background-image: url(/assets/img/cat.png);" class="comic-panel__layer"></div>
<p class="speech-bubble">Meow!</p>
</div>
Run Code Online (Sandbox Code Playgroud)
使用 OSX VoiceOver 进行测试,切换到此元素后,图像描述和文本可以正常读取,但随后还会发布以下公告:
是否可以以某种方式更新此元素的标记,使此group公告不是由屏幕阅读器发布?在几乎所有情况下,用户都无法在元素内部进一步探索或使用任何内容,因此此消息将是多余的,我希望 VoiceOver 不将元素识别为触发此消息的组。
我正在尝试实现我的 ios 项目的可访问性。
\n有没有办法在打开画外音的情况下纠正某些特定单词的发音?例如,'speech'的正确发音是[spi\xcb\x90t\xca\x83],但我希望画外音将所有单词'speech'读得与'speak'相同[spi\xcb\x90k ] 在我的整个项目期间。
\n我知道有一种方法可以设置任何我想要将发音更改为“说话”的 UIElement 的辅助功能标签。然而,有些元素是动态的。例如,我们从后端获取标签文本,但我们永远不知道标签文本何时会是“语音”。如果我从后端得到“语音”一词,我希望听到画外音将其读作“说话”。
\n因此,我想更改画外音的设置。每次,如果单词是“语音”,画外音将读作“说话”。
\n我可以做吗?
\n简单的问题.
我有一个UIWebView.它显示带有几个标题的简单html文本.我希望VoiceOver能够阅读此Web视图的内容.
如果我可以利用VoiceOver的转子让用户使用标题滚动内容也会很好,但我不会贪婪.
任何输入都表示赞赏.
我正在为我的iPhone游戏添加辅助功能,并广泛使用UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,@"string")来宣布游戏中发生的各种事情.它在99%的时间内运行良好,但我遇到了一个问题.
在所有情况下,配音通知都是从我添加到应用程序委托的单个方法执行的.
- (void)voiceoverAction:(NSString *)speakString delay:(NSTimeInterval) delay {
if (![[[[UIDevice currentDevice] systemVersion] substringToIndex:1] isEqualToString:@"3"]) {
if (UIAccessibilityIsVoiceOverRunning()) {
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, speakString);
if (delay > 0) {
[NSThread sleepForTimeInterval:delay];
}
}
}
}
延迟就在那里,所以在游戏中发生下一个事件之前就会发出通知.我找不到更好的方法来确保在一些动画或其他事件切断之前发出整个公告.
在每种情况下,只有一个在调用此方法时立即说出通知.在一种情况下,在说话之前有大约10秒的暂停.在这种情况下,即使我调试代码并设置断点并手动执行UIAccessibilityPostNotification行,该行也会执行,但没有任何反应.然后10秒钟后,iPhone没有在调试器中做任何事情,iPhone就开始说出公告了.
关于这一个公告的唯一特别之处在于它是从UIScrollView的touchesEnded:事件中调用的.其他公告是整个游戏循环的一部分,并非基于触摸事件.
知道什么可能导致画外音排队可访问性通知而不是立即说出来吗?
先谢谢,史蒂夫
当VoiceOver在iOS设备上处于活动状态时,单指滑动(左或右)手势允许用户浏览视图中的不同元素.有没有办法检测用户在使用画外音时是否使用了单指滑动手势?
有一个设置OSX Yosemite,你可以改变你的dication语音和速度.有谁知道如何在macs最新macOS Sierra上找到这些设置?
我已经在键盘下面看了有听写设置,但这似乎是你在说你的电脑并输入它.
还查看了辅助功能和语音设置,但不是我想要的.
默认的声音是Alex,你可以改变说话速度.
谢谢你的帮助.
我在iOS应用程序中分配给accessibilityLabel的一些文本包含"混合语言".
例如,在德语中,文本将是"Bier und guter Sound".用德语VoiceOver语言说的"声音"这个词没有意义(它应该说"saund",但听起来像"sund").
有没有办法说出有关单词语言的信息?
我正在开发一个支持 Apple 语音辅助功能选项的应用程序。
我有一个带有 tableview 的屏幕,它具有 tableview 的编辑状态,用户可以在其中滑动和/或点击 table view 单元格开头的红色删除按钮来删除单元格。
所有功能在关闭画外音的情况下都可以正常工作,但是当我打开画外音时,删除按钮不在滑动顺序中,您也无法点击它。
是否需要做一些特殊的事情来让用户在启用旁白时点击/滑动单元格?
voiceover ×10
ios ×7
iphone ×2
objective-c ×2
dictation ×1
html ×1
macos ×1
macos-sierra ×1
speech ×1
swift ×1
uitableview ×1
uiwebview ×1
wai-aria ×1
xcode ×1