标签: accessibility

使用PhoneGap使Android应用程序可供访问(适用于残障人士)

有没有人在使用PhoneGap时可以使用Android应用程序?至少我们需要使我们的应用符合Section 508标准.

我已经尝试实现一些标准的辅助功能(文本框的标签,向div添加标题属性等).但是,在Android中使用TalkBack和Expore by Touch时,加载我的PhoneGap应用程序时,它只是说"WEB CONTENT" - 就是这样.我的应用程序没有其他任何内容可以大声说出来.

当相同的应用程序在iOS中使用VoiceOver运行时,一切都运行良好.它读取所有"标题"属性就好了.

android accessibility cordova

11
推荐指数
1
解决办法
2014
查看次数

在AccessibilityNodeInfo中设置文本

我正在开发Android辅助功能服务.我有一个表示EditText 的AccessibilityNodeInfo.有可能编辑包含的文本吗?

我尝试过,mynode.setText("aaa")但我得到IllegalStateException官方文档中描述的http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html

有任何想法吗?谢谢

android accessibility

11
推荐指数
1
解决办法
6509
查看次数

在屏幕阅读器上工作的空闲超时警告模式

我需要帮助一个在用户空闲时触发的模态.它运行良好,直到我在运行NVDA的Firefox上进行测试.使用箭头键时以及在移动设备上滑动时会出现焦点问题.当模态出现并且用户使用箭头或滑动时,如果我等待点击它,焦点将在几秒后从"是"按钮反弹到标题.我已经装了工作示例:https://jsfiddle.net/ncanqaam/

我将空闲时间段更改为一分钟,并删除了调用服务器以扩展用户会话的部分.

var state ="L";
var timeoutPeriod = 540000;
var oneMinute = 60000;
var sevenMinutes = 60000;

var lastActivity = new Date();

function getIdleTime() {
    return new Date().getTime() - lastActivity.getTime();
}

//Add Movement Detection
function addMovementListener() {
    $(document).on('mousemove',  onMovementHandler);
    $(document).on('keypress',  onMovementHandler);
    $(document).on('touchstart touchend',  onMovementHandler);
}
//Remove Movement Detection
function removeMovementListener() {
    $(document).off('mousemove', onMovementHandler);
    $(document).off('keypress',  onMovementHandler);
    $(document).off('touchstart touchend',  onMovementHandler);
}

//Create Movement Handler
function onMovementHandler(ev) {
    lastActivity = new Date();
    console.log("Something moved, idle time = " + lastActivity.getTime());
}

function …
Run Code Online (Sandbox Code Playgroud)

javascript jquery accessibility screen-readers

11
推荐指数
1
解决办法
458
查看次数

为任何聚焦的元素触发按键点击事件

是否有一种默认方式可以在任何时候在焦点元素上按下 enter 时触发点击事件?

我所指的是在专注于 a 时<button>按 Enter 与在专注于 a<div> <li> <span>等时按 Enter 的区别。<button>按键enter按预期触发。但是,<div>按键enter没有任何作用。我相信您必须专门为该按键编写事件。

$('li').click(function() {  
    //toggles something 
});

$("li").keydown(function(e){
    if(e.which === 13){
        $(this).click();
    }
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery accessibility

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

如何在 React Native 中访问嵌套文本元素中的链接?

问题:我正在尝试使用 React Native 在 Android 和 iOS 上创建一个可访问的链接。使用 VoiceOver 时,iOS 有一个转子,可以选择在屏幕上的链接之间切换,这对以下元素不起作用:

<Text>
Here is some text <Text accessible={true} accessibilityRole="link" onPress={() => Linking.openURL("https://www.google.com")}> Here is a link</Text>
</Text> 
Run Code Online (Sandbox Code Playgroud)

在 Android 上使用链接选项在启用 TalkBack 的情况下搜索屏幕上的链接时会发生同样的事情。在上面的代码示例中,在 Android 中双击打开 TalkBack 时不会打开链接,但在 iOS 中双击打开 VoiceOver 的句子可以打开链接。

我试过的事情:我试过像这样拆分 Text 元素:

<View>
  <Text> Here is some text</Text>
  <Text accessible={true} accessibilityRole="link" onPress={() => Linking.openURL("https://www.google.com")}> Here is a link </Text>
</View>
Run Code Online (Sandbox Code Playgroud)

这确实解决了 Android 上的问题,我可以双击链接并打开网页,当我打开 TalkBack 的链接选项时,它还允许我将其作为链接轻弹,但这不是最佳策略,因为它扰乱了我对视力正常的用户的句子格式。这也不会将链接项添加到 iOS 转子。鉴于这是一个可访问性问题,我还没有找到很多关于如何解决此问题的资源。

结论:我希望能够在链接位于 Android 上的嵌套文本元素中时单击该链接,并且我希望 TalkBack 上的链接控件能够正常工作。我还想在 iOS 上为转子添加链接选项。对于那些不熟悉 iOS 辅助功能转子的人,这里是 …

android accessibility ios react-native

11
推荐指数
1
解决办法
912
查看次数

Google Play 应用程序被拒绝的原因是: 突出的披露 不合规的政策设计:辅助功能 API

我们的应用程序因违反相关政策而被 Play 商店拒绝

突出披露 不合规设计

对于政策:辅助功能 API

在此输入图像描述

最初我们使用第 3 方库 cobrowse,他们使用

android.permission.BIND_ACCESSIBILITY_SERVICE

我们的应用程序被拒绝了,之后我们删除了库本身,现在我们的清单中不再要求任何可访问权限,为了遵守显着的披露,我们采取了以下步骤:

  1. 为所有用户添加了条款和条件屏幕。
  2. 添加了 UI,以便在请求所有权限时显着披露。

在此输入图像描述在此输入图像描述

注意:即使我们没有使用可访问性 API,我们也保留了其内容,因为即使在删除服务和库之后,我们的拒绝原因仍然是可访问性 API。

目标SDK:31

我们尝试更新内容并添加突出的披露用户界面,但该应用程序尚未被接受。

已经过去 5 周了,Google Play 商店仍然没有任何更新,他们也不回复电子邮件、聊天。

android accessibility flutter

11
推荐指数
0
解决办法
2650
查看次数

StackOverflowError:来自 Compose 的可访问性的堆栈大小 8MB

从四月份开始,我们遇到了来自 compose 的 StackOverflowError 错误。我们没有 compose 或 Kotlin 版本更新。

该问题仅发生在 Android 8 上。

我们无法在本地重现,并且根据我们的日志,当打开不同的片段时会发生崩溃。我们有一个包含多个片段的活动,并且没有任何日志来指出根本原因。

我们如何减轻崩溃,这是 compose 内部的事情?

崩溃的根本原因可能是什么?

Fatal Exception: java.lang.StackOverflowError: stack size 8MB
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1827)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.transformMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1822)
   at androidx.compose.ui.platform.CalculateMatrixToWindowApi21.calculateMatrixToWindow-EL8BTi8(AndroidComposeView.android.kt:1816)
   at androidx.compose.ui.platform.AndroidComposeView.recalculateWindowViewTransforms(AndroidComposeView.android.kt:1446)
   at androidx.compose.ui.platform.AndroidComposeView.recalculateWindowPosition(AndroidComposeView.android.kt:1410)
   at androidx.compose.ui.platform.AndroidComposeView.localToScreen-MK-Hz9U(AndroidComposeView.android.kt:1390)
   at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.createNodeInfo(AndroidComposeViewAccessibilityDelegateCompat.android.kt:366)
   at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.access$sendScrollEventIfNeeded(AndroidComposeViewAccessibilityDelegateCompat.android.kt)
   at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.access$createNodeInfo(AndroidComposeViewAccessibilityDelegateCompat.android.kt)
   at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat$MyNodeProvider.createAccessibilityNodeInfo(AndroidComposeViewAccessibilityDelegateCompat.android.kt:2424)
   at android.view.View.populateVirtualStructure(View.java:8103)
   at android.view.View.populateVirtualStructure(View.java:8106)
   at android.view.View.populateVirtualStructure(View.java:8106)
   at android.view.View.populateVirtualStructure(View.java:8106)
   at android.view.View.populateVirtualStructure(View.java:8106)
   at android.view.View.populateVirtualStructure(View.java:8106)
   at android.view.View.populateVirtualStructure(View.java:8106)
   at android.view.View.populateVirtualStructure(View.java:8106)
   at android.view.View.populateVirtualStructure(View.java:8106) …
Run Code Online (Sandbox Code Playgroud)

android accessibility android-jetpack-compose

11
推荐指数
0
解决办法
336
查看次数

如何更改双击和长按的Android对讲说明

我有一个有长按动作处理程序的视图.我使用内容描述来设置消息,当视图获得焦点时,Talkback会说话.

目前它在获得焦点后立即说出了我的内容描述,并在短暂停顿后说:

双击激活,双击并按住长按

我想将此消息更改为类似的内容

双击"动作1",双击并按住"动作2"

有办法吗?

我调查了onPopulateAccessibilityEvent(),它得到了TYPE_VIEW_ACCESSIBILITY_FOCUSED事件,但我无法更改所需的消息.

我错过了一些简单的事吗?

android accessibility talkback android-a11y

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

Android AutoCompleteTextView onItemSelectedListener未使用蓝牙键盘触发

我有一个简单的应用程序,只包含一个AutoCompleteTextView(下面的代码).我有OnItemClickListenerOnItemSelectedListener定义.单击下拉建议中的各个项目会触发该onItemClick事件.但是,使用蓝牙键盘时,使用箭头键导航到给定项目似乎不会触发onItemSelected事件(此事件不会显示日志).

什么触发了这个onItemSelected事件?我的印象是highlight,其中一个下拉项目就是这样,但情况似乎并非如此.

如果OnItemSelectedListener不是突出显示项目的正确事件侦听器,是否满足此要求?

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

public class MainActivity extends Activity {

    String[] options = {"a1", "a2", "a3", "b1", "b2", "b3", "b4", "b5"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // An adapter object
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_item, options);

        AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
        autoCompleteTextView.setAdapter(adapter);
        autoCompleteTextView.setThreshold(1);

        // Set …
Run Code Online (Sandbox Code Playgroud)

android accessibility autocompletetextview

10
推荐指数
1
解决办法
550
查看次数

使用键盘焦点在沙盒上获取NSScreen

我想知道的是哪个NSScreen具有键盘焦点.

首先,我添加了观察者,NSScreen并且每当NSWorkspace.didActiveApplicationNotification调用方法时,我需要确定哪个foo具有键盘焦点.

NSWorkspace.shared.notificationCenter.addObserver(self, selector: #selector(foo), name: NSWorkspace.didActivateApplicationNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)

我从这个通知中得到的只是NSScreen对象,但它没有告诉我哪个屏幕是关注的.

NSScreen文档中,我找到了NSScreen的主要属性和描述

返回包含具有键盘焦点的窗口的屏幕对象.

这是我想要的,但它并没有像我想象的那样奏效.它返回错误的屏幕.在头文件中我找到了这个信息

//缓存的值,可能是陈旧的

我尝试过Accessibility,一切都很好,但是当启用Sandbox时它不起作用,所以我无法使用它.

有没有人知道如何通过键盘焦点获取NSScreen对象?

macos cocoa accessibility appstore-sandbox swift

10
推荐指数
0
解决办法
182
查看次数