我们正在推动网络无障碍获取,以符合管理公共/教育机构的某些法律.到目前为止,我们一直在确保:
alt=""
标签.但很快就会知道我们需要适应并真正考虑到这一点.我们一直将其AngularJS
视为动态Web应用程序的框架,但关注它对我们的可访问性的影响.
据我所知,没有JavaScript的浏览器可能会打破一个高度动态的角度应用程序(如表达式,如{{ item.something }}
嵌入标记,采用ng-repeat
构建从单一的列表<li>
为空标签,客户端的部分景色,等).
我想知道如果有一个很好理解的最佳做法或信息资源为这些类型的框架,在很大程度上依赖于动态标记和内嵌标记,可以被视为胡言乱语像屏幕阅读器,甚至是浏览器JavaScript和CSS已关闭.
加载网页时,屏幕阅读器(如OS X附带的,或Windows上的JAWS)将读取整个页面的内容.但是请说您的页面是动态的,并且当用户执行操作时,新内容会添加到页面中.为简单起见,假设您在某处显示消息<span>
.如何让屏幕阅读器阅读新消息?
我在屏幕上有一堆按钮,这些按钮直观地定位,但不是由VoiceOver按直观顺序读取的.这是因为某些按钮(如向上和向下)位于彼此的上方和下方.然而,画外音似乎开始从左到右,从上到下阅读.
这导致画外音在"向上"之后读取"向上"右侧的按钮,而不是在之后立即读取"向下".
如何强制画外音读取我想要阅读的按钮?我应该提一下,我正在使用画外音上的滑动到循环元素功能.
我的所有按钮都是UIView和UIButton的子类.这是我使用的按钮启动器的示例.忽略像素数 - 我知道这是糟糕的形式,但我现在处于紧张状态:
UIButton* createSpecialButton(CGRect frame,
NSString* imageName,
NSString* activeImageName,
id target,
SEL obClickHandler)
{
UIButton* b = [UIButton buttonWithType:UIButtonTypeCustom];
[b setImage:[GlobalHelper nonCachedImage:imageName ofType:@"png"]
forState:UIControlStateNormal];
[b setImage:[GlobalHelper nonCachedImage:activeImageName ofType:@"png"]
forState:UIControlStateHighlighted];
[b addTarget:target action:obClickHandler forControlEvents:UIControlEventTouchUpInside];
b.frame= frame;
return b;
}
- (UIButton *) createSendButton {
CGFloat yMarker = 295;
UIButton* b = createSpecialButton(CGRectMake(160, yMarker, 70, 45),
@"Share_Btn",
@"Share_Selected_Btn",
self,
@selector(sendAction));
b.accessibilityHint = @"Send it!";
b.accessibilityLabel = @"Stuff for voiceover to be added";
[self.view addSubview:b];
return b;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使表格可访问.我应该让我的输入双双disabled
和aria-disabled
属性,或只是一个?
<label for="textbox1">Input</label>
<input id="textbox1" type="text" name="Text Box" disabled>
Run Code Online (Sandbox Code Playgroud)
或者像这样?
<label for="textbox1">Input</label>
<input id="textbox1" type="text" name="Text Box" aria-disabled="true">
Run Code Online (Sandbox Code Playgroud)
或者像这样?
<label for="textbox1">Input</label>
<input id="textbox1" type="text" name="Text Box" aria-disabled="true" disabled>
Run Code Online (Sandbox Code Playgroud) 我有一个只有主页通过简单的HTTP协议提供的网站.所有其他页面只能通过HTTP over SSL(https://)访问.
我正在使用CDN作为主页,并对它非常满意.
但对我来说,由于安全警告,使用CDN for https页面似乎是不可能的,尤其是在IE中.我在CDN托管的文件可通过简单的HTTP协议访问.
我该怎么办?这个问题怎么解决?
是否应该链接到外部网站设置target = _blank?例如,我在www.acme.net上有一个链接到www.otherplace.net,如果该链接是:
<a href ='http://www.otherplace.net'target ='_ blank'>其他地方的网站</a>
要么:
<a href ='http://www.otherplace.net'> otherplace的网站</a>
我的印象是,使用_blank到域外的网站是最好的做法,但现在我被告知了.
有没有办法以编程方式设置辅助功能焦点(App Store安全)?任何帮助将不胜感激.
iOS语音结束没有正确读出我的公司名称.例如,它读出"狗"而不是"狗"(不是我真正的公司名称,但你明白了)
我们通过告诉应用程序在读取公司名称的所有地方读出"DO G"来解决这个问题.
但是,在应用程序图标上以及应用程序完成启动后,语音翻转都会错误地读取软件包显示名称.
应用程序启动后,有没有办法让我的应用程序读出"DO G"而不是"dog"?我倾向于强迫应用程序在应用程序启动后不读出软件包显示名称,然后手动读出"DO G".
(我假设您不能为应用程序图标设置自定义配音,但是对于知道我能不能的人来说,可以获得奖励积分)
我正在开发查看书籍的应用程序.有一个显示书籍的屏幕(活动).它具有自定义视图,类似于ViewSwitcher,每个页面都是由自定义视图呈现的位图.
现在我应该实现辅助功能 - 书应该通过电话(音频)读取.
我在这里阅读了"辅助功能"部分https://developer.android.com/guide/topics/ui/accessibility/index.html但这还不够清楚.
我使用SupportLibrary进行可访问性管理,现在我在ViewGroup(管理书页)中使用了此代码.代码1:
private class EditionPagesViewSwitcherAccessibilityDelegate extends AccessibilityDelegateCompat {
private int mPageCount;
private double[] mPageRange;
@Override
public void onInitializeAccessibilityEvent(final View host, final AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(host, event);
event.setClassName(EditionPagesViewSwitcher.class.getName());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
event.setScrollable(canScroll());
}
if (event.getEventType() == AccessibilityEventCompat.TYPE_VIEW_SCROLLED && updatePageValues()) {
event.setItemCount(mPageCount);
// we use +1 because of user friendly numbers (from 1 not 0)
event.setFromIndex((int) (mPageRange[0] + 1));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
event.setToIndex((int) (mPageRange[1] + 1));
}
}
}
@Override …
Run Code Online (Sandbox Code Playgroud) 我想以编程方式启用/禁用"设置 - >辅助功能"选项下列出的辅助功能服务.
我可以像下面一样启动Accessibility Intent:
Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)
但我不知道如何通过我的代码启用视图中列出的服务.
请给我你的看法.
accessibility ×10
ios ×3
android ×2
html ×2
javascript ×2
voiceover ×2
android-a11y ×1
angularjs ×1
cdn ×1
html-input ×1
html5 ×1
https ×1
hyperlink ×1
ios4 ×1
iphone ×1
service ×1
ssl ×1
wai-aria ×1