标签: accessibility

HTML5提供了哪些可访问性改进?

HTML5优于HTML 4.01或XHTML 1.0提供哪些优势?

html xhtml html5 accessibility

14
推荐指数
2
解决办法
6616
查看次数

imagebutton给我错误:[辅助功能]图像上缺少contentDescription属性

[辅助功能]图像上缺少contentDescription属性

这个错误意味着什么,我该如何解决?

<ImageButton
    android:id="@+id/callbannerbuttonpg1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="157dp"
    android:background="@null"
    android:src="@drawable/callbanner"
    android:visibility="invisible" />
Run Code Online (Sandbox Code Playgroud)

android accessibility imagebutton

14
推荐指数
2
解决办法
3万
查看次数

Android辅助功能服务检测通知

每当显示通知时,我都会尝试检测我的应用.我已经在设置应用程序中启用它并且onServiceConnected会被调用,但是当我通过gmail应用程序创建通知或接收电子邮件时,onAccessibilityEvent没有任何事情发生,也不会被调用.

Android清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.slide"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<application android:label="Slide"
    android:icon="@drawable/ic_launcher"
    android:theme="@style/AppTheme">
    <activity
        android:name=".Settings"
        android:label="Slide">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".Tools"
        android:label="Slide"
        android:theme="@android:style/Theme.Translucent.NoTitleBar">
    </activity>
    <service android:name=".LocalService"/>
    <service android:name=".NotificationService"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
        android:label="Slide"
        android:enabled="true"
        android:exported="false">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService"/>
        </intent-filter>
    </service>
</application>
Run Code Online (Sandbox Code Playgroud)

NotificationService.java

package com.test.slide;

import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.view.accessibility.AccessibilityEvent;

public class NotificationService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
    System.out.println("onAccessibilityEvent");
    if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
        System.out.println("notification: " …
Run Code Online (Sandbox Code Playgroud)

notifications android accessibility

14
推荐指数
1
解决办法
3万
查看次数

动态DOM建设508投诉?

随着越来越多人使用Backbone,Ember和其他JS MVC类型框架,越来越多的HTML DOM正在动态构建,第一个HTML页面只包含一个"root"元素,用于将生成的HTML转储到其中.

这种做法是508投诉吗?

javascript accessibility section508 backbone.js ember.js

14
推荐指数
1
解决办法
2074
查看次数

在Bootstrap下拉菜单中启用键盘导航

是否可以使用键盘导航到下拉菜单Tab,并使用箭头键导航到下拉菜单的子元素?

这是我现在的代码:

<input type="text" value="click tab to jump to the drop down."/>
<div class="bs-docs-example">
    <div class="dropdown clearfix">
      <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu" style="display: block; position: static; margin-bottom: 5px; *width: 180px;">
        <li><a tabindex="-1" href="#">Menu Item A</a></li>
        <li><a tabindex="-1" href="#">Menu Item B</a></li>
        <li><a tabindex="-1" href="#">Menu Item C</a></li>
        <li class="divider"></li>
        <li><a tabindex="-1" href="#">Menu Item A1</a></li>
            <li class="dropdown-submenu">
                <a tabindex="-1" href="#">Menu Item B1</a>
                <ul class="dropdown-menu">
                    <li><a tabindex="-1" href="#">You should navigate here with the keyboard.</a></li>
                    <li><a tabindex="-1" href="#">Thanks For your Help!</a></li>
                </ul>
            </li>
      </ul> …
Run Code Online (Sandbox Code Playgroud)

accessibility keyboard-navigation twitter-bootstrap

14
推荐指数
1
解决办法
2万
查看次数

告诉屏幕阅读器,Backbone/Angular单页面应用程序中的页面已更改

想象一下,你有一个简单的单页应用程序 - 无论它是使用Backbone,Angular,Ember还是其他任何东西编写的.

如果跟踪路线,你如何告诉屏幕阅读器我们改变了'页'?

在一个典型的应用程序,当我从导航/index.html/about.html屏幕阅读器显然检测的页面变化,并重新读取,你所期望的.

然而,在我的Backbone应用程序中,当我遵循路线时,我无法确定如何触发"重新读取"​​.我试过触发一个focus我在某个地方看过的事件,但这似乎不起作用.

注意:我目前正在使用NVDA/Chrome进行测试.

javascript accessibility backbone.js angularjs single-page-application

14
推荐指数
2
解决办法
6391
查看次数

UILabel从具有动态类型的静态UITableViewCell中消失

我有UITableView基本样式单元格的静态,默认44高度.每个单元格中都有一个带有Body文本样式的标签.这样我就可以免费获得动态类型行为.

它的工作原理除外:

  1. 打开应用
  2. 打开表格视图
  3. 打开设置更改文本大小(更大的更小)
  4. 再次打开应用程序,标签消失.
  5. 转到另一个视图(返回)并再次打开故障表 - 文本已更改并且看起来很好

我设法通过跟随黑客来解决这个问题

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(preferredContentSizeChanged)
                                                 name:UIContentSizeCategoryDidChangeNotification object:nil];
}

- (void)preferredContentSizeChanged
{
    // adjust the layout of the cells
    // for some reason text from labels are disappear
    self.statusBarCell.textLabel.text = @"Status bar";
    self.itemColorCell.textLabel.text = @"Color";
Run Code Online (Sandbox Code Playgroud)

但我有另一个完全相同UITableView,这是行不通的.我试过细胞和标签的出口.我试过reloadDatasetNeedsLayout方法.

这是照片.标签为黄色,内容视图为蓝色:

之前,细胞有内容 之后,细胞没有标签

xcode accessibility objective-c uitableview ios

14
推荐指数
2
解决办法
2347
查看次数

Html多个选择元素可访问性

在我们的Web应用程序中,我们有一个搜索表单,其中包含一个字段,用户可以从可能选项列表中选择一个或多个答案.我们目前使用"select"html元素,其中"multiple"属性设置如下例所示:

select {
  width: 150px;
}
Run Code Online (Sandbox Code Playgroud)
<select multiple>
  <option value="A">Alice</option>
  <option value="B">Bob</option>
  <option value="F">Fred</option>
  <option value="K">Kevin</option>
  <option value="M">Mary</option>
  <option value="S">Susan</option>
</select>
Run Code Online (Sandbox Code Playgroud)

用户测试的反馈表明,这种解决方案让用户感到困惑.通过按住Ctrl键(在窗口上)执行多个选择/取消选择,但是许多用户不知道这一点.

当仅使用键盘时,该元素似乎也不容易使用 - 这显然是一个可访问性问题.

是否有一种"最佳实践",可以通过多种方式向用户显示输入?

html accessibility

14
推荐指数
1
解决办法
2295
查看次数

如何使结束`:00`的时间可以访问(例如14:00)

Voice over会NSStrings像这样读取以下内容


14:15

"十四点十五分."

这显然是一个时间


14:00

"十四."

这是模棱两可的.


如果时间14:00显示在状态栏中,则会将其正确读取为

"一万四小时"

我如何以本地化的方式实现这一目标?

iOS读出正确的时间

accessibility ios voiceover

14
推荐指数
1
解决办法
215
查看次数

如何以可访问的方式隐藏表格标题元素?

有什么方法可以在不破坏屏幕阅读器解释表格其余部分的情况下以可访问的方式隐藏表格标题吗?隐藏<caption>与通常推荐样式隐藏元素在视觉上打破了VoiceOver的行为,使其通过读取线性使用“下一个”按键时跳过最后一行在表中。(可以通过显式向下导航列来强制 VoiceOver 进入最后一行,但这需要用户知道这样做。)

我认识到这可能是 VoiceOver 本身的一个错误,但如果有一个干净的解决方法,那将是理想的,因为 WCAG 需要实际可用的辅助技术的可访问性。

这是一个极简示例来演示:

更新:下面的样式规则是 Magento 框架中使用的标准规则,用于在视觉上隐藏元素,同时让屏幕阅读器可以访问它们。导致 VoiceOver 行为的关键规则是position: absolute; 但是,如果简单地将其删除,则布局流程会受到影响。

caption {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <caption>Table of Fruits</caption>
  <thead>
    <tr>
      <th>Fruit</th>
      <th>Color</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Apple</td>
      <td>Red</td>
    </tr>
    <tr>
      <td>Pear</td>
      <td>Green</td>
    </tr>
  </tbody>
</table>

<p>Voiceover will jump straight from "Red" in prior table to this paragraph, skipping the last row.</p>
Run Code Online (Sandbox Code Playgroud)

html css accessibility voiceover

14
推荐指数
2
解决办法
5087
查看次数