我目前正在建设的网站与常规有点不同.所有网站内容都不在一个单独的index.php文件中,而是使用绝对定位和javascript,用户可以在页面之间跨越网站"平移",而不是拥有多个单独的页面.
页面中还有几种不同的形式.我被告知不要担心禁用Javascript的人,因此我们选择了jQuery与页面上所有表单的JSON Web服务相结合.这一切现在都很完美,但是有一个轻微的可用性问题:tab-indices.
由于存在多个表单,从一个输入字段到下一个输入字段的标签可以导致当用户到达表单的末尾然后再次标记时用户突然跳转到站点的完全不同的部分.这在Firefox和Safari中尤其令人讨厌,其中在选项卡时忽略按钮和单选按钮.
所以这是我的问题:有没有人知道将用户的焦点约束到单个表单元素的方法?
我正试图让一个咏叹调生活区域与JAWS 11和IE8正常工作.
使用下面的代码,我可以让JAWS在单击按钮时宣布新值,但行为不是我所期望的.
<!DOCTYPE html>
<html>
<head></head>
<body>
<button onclick="document.getElementById('statusbar').innerHTML = parseInt(document.getElementById('statusbar').innerHTML) + 1">Update</button>
<div id="statusbar" aria-live="polite">0</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
使用我的JAWS11/IE8配置,每按一下按钮,我听到:
Click number HTML Value (after click) JAWS says ------------ ------------------------- --------- 1 1 "Update button 0" 2 2 "1" 3 3 "2"
问题,我的问题是:如何让JAWS公布aria-live区域的当前值,而不是aria-live区域的先前值?
我也对其他屏幕阅读器如何处理这个功能感兴趣.
我正在为我的应用添加VoiceOver支持.到目前为止,这么好,但我真的希望能够指定哪个元素是UIAccessibilityScreenChangedNotification之后的第一个元素.我还没有看到这样做的方法.制作一些摘要元素似乎并没有真正做到这一点.我错过了什么吗?
我使用webfont在网站上显示一些图标.这很棒,因为它们可以缩放,如果我愿意,我可以打印它们......但问题是盲人将它们视为普通字母或字符.以下示例返回一个漂亮的Icon +文本.
<span>i</span> Info
<span>t</span> Contact
etc...
Run Code Online (Sandbox Code Playgroud)
一个盲人只会读:iInfo,tContact等...
有可能以某种方式仅使用CSS定位盲文和屏幕阅读器吗?
我在w3网站上发现了这个,但我不确定这部作品是否真实存在:http: //www.w3.org/TR/CSS2/media.html#media-types
有人对这个有经验么?
------ 更新 -----
:before&:after- >某些屏幕阅读器(如VoiceOver for MacOS)会大声读出"内容"部分.我亲自测试过这个.
@media braille, speech - >接缝不会对VoiceOver产生影响.它读取屏幕上可见的内容(使用safari和chrome测试)
speak: none;- >对VoiceOver或NVDA没有任何影响(https://twitter.com/#!/jcsteh/status/143848614979055616)
在没有单位的情况下指定行高是否有任何缺点(浏览器/设备不一致...)?
例:
body {
line-height: 1.5;
}
Run Code Online (Sandbox Code Playgroud) 所以我有以下功能.它的作用是监听所有元素的焦点事件.如果该元素处于$mobileMenu或$menuItems允许它,否则它将删除焦点:
var $body = $("body");
var $mobileMenu = $("#mobile-menu");
var $menuItems = $("#main-menu a");
$body.on("focus.spf", "*", function(e){
e.stopPropagation();
$this = $(this);
// Prevent items from recieving focus and switching view
if (!$this.is($mobileMenu) && !$this.is($menuItems)) {
$this.blur();
} else {
console.log(this);
}
})
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,如果现在不可聚焦的正常可聚焦元素先于我列出的任何白色元素,这会阻止用户专注于任何事情,因为它只是试图一遍又一遍地重新聚焦在同一个元素上.
有谁知道我怎么能告诉它而不是跳到下一个可聚焦的元素?
我找不到应该是一个非常简单的任务的答案.有人可以向我解释关闭android中单个元素的可访问性(对话)的最佳方法吗?
我有一个TextView,我以编程方式将contentDescription设置为nil,并且它保持对话说出标题,但是当浏览视图时它仍然停在该textview上......它只是保持沉默.
我的目标是让对话完全忽略TextView的存在.
请帮忙!
谢谢 :)
题:
如何添加自定义VoiceOver辅助功能
Label或Hint应用程序图标徽章编号?
例如,当iOS的设置Accessibility > VoiceOver被打开On,VoiceOver会朗读项目触及屏幕.对于App Store和Mail图标,将大声朗读以下内容:
App Store图标,VoiceOver说:"App Store.2 可用更新.双击打开."
VoiceOver邮件图标说:"邮件.1条未读邮件.双击打开."
但是,对于我正在研究的项目,VoiceOver读出是通用的,并不完全有用:
我的应用程序图标,VoiceOver说:"我的应用程序.123项新项目.双击打开."
短语"......新项目"太模糊,不准确的,我敢肯定,必须有一种方法使用自定义字符串做出改变这一点,通过设置一个读更好accessibilityLabel,accessibilityHint类似什么的.
但究竟如何在Swift代码?
非常感谢.
补充观察:
使用模拟器辅助功能检查器,VoiceOver值显示为Label- "我的应用程序"和Value- "123个新项目".在代码中更新了我尝试设置accessibilityValue自定义 - "123自定义描述".但仍然没有运气,VoiceOver继续阅读"我的应用程序.123 新项目.双击打开."
为什么VoiceOver没有按预期读取自定义徽章值?
码:
以下方法将红色圆形App图标徽章编号添加到我的应用程序图标:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let badgeCount: Int = 123
let application = UIApplication.sharedApplication() …Run Code Online (Sandbox Code Playgroud) 我正在尝试访问另一个应用程序的文本内容,该应用程序可能是使用非本机(基于js + html)的框架构建的.
因此,我想我将尝试从对应于WebView元素的辅助功能节点访问数据.但是,我无法使用常用方法获取textual/html数据,因为像getText()这样的方法只有在它是本机android元素(如TextView,Button等)时才能工作.
public class MyAccessibilityService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
AccessibilityNodeInfo accessibilityNodeInfo = accessibilityEvent.getSource();
if (accessibilityNodeInfo == null) {
return;
}
int childCount = accessibilityNodeInfo.getChildCount();
for (int i = 0; i < childCount; i++) {
AccessibilityNodeInfo accessibilityNodeInfoChild = accessibilityNodeInfo.getChild(i);
myRecursiveFunc(accessibilityNodeInfoChild);
}
}
@Override
public void onInterrupt() {
}
private void myRecursiveFunc(AccessibilityNodeInfo accessibilityNodeInfoChild) {
if (accessibilityNodeInfoChild.getChildCount() > 0) {
for (int j = 0; j < accessibilityNodeInfoChild.getChildCount(); j++) {
AccessibilityNodeInfo child = accessibilityNodeInfoChild.getChild(j);
if (child …Run Code Online (Sandbox Code Playgroud) 我想添加标记,使基于文本的浏览器(链接,elinks,lynx)的用户更容易使用我的网站.我将能够基于useragent提供这个特殊版本的网站,但基于文本的浏览器处理特别好的标记功能是什么?
accessibility ×10
html ×3
android ×2
css ×2
ios ×2
javascript ×2
jquery ×1
optimization ×1
swift ×1
talkback ×1
voiceover ×1
wai-aria ×1
webview ×1