标签: accessibility

为了一个卑鄙的目的打破CAPTCHAs

要求用户阅读扭曲文本的CAPTCHA对于有视力的人来说是好的,但对于那些失明或有其他残疾的人来说是一个可怕的障碍.音频备选方案偶尔可用,但仍然无法帮助那些聋哑人和盲人,并且很难使用屏幕阅读器(已经在向您朗读文字).

存在一对夫妇使用人类解决代表用户,如的CAPTCHA解决方案的WebVisiumSolona,但这些依靠志愿者运营商的可用性(例如,Solona显然只有一个志愿,所以你必须希望他当你需要帮助时醒着).

在我看来,盲人所需的CAPTCHA解决方案的数量非常低 - 我猜想在像英国这样的人口稠密的国家每天不到几百个.这意味着,与想要在短时间内多次执行动作的坏人不同,为盲人提供的CAPTCHA援助服务可以承担相当大的计算资源 - 例如,亚马逊EC2中的计算机云- 来识别所呈现的文本.

我的问题是:假设你不太关心速度,并且你有很多可用的计算机,是否有算法可以让你解决今天常见的文本失真CAPTCHA,比如reCaptcha使用的那些?或者即使有大量的资源和时间,这些问题是否真的难以解决?

几点说明:

  1. 在这一点上,我的问题只是理论上的,但显然任何此类服务都必须谨慎控制访问以防止垃圾邮件发送者.也许只有注册的盲人才会被允许使用它.

  2. 我知道几年前使用一台算法在一台计算机上运行几秒钟就破坏旧的Yahoo CAPTCHA.我在问现代CAPTCHA是否可以打破,可能更慢,资源更多.

  3. 我知道会出现一些新的CAPTCHA类型,要求用户识别小猫定位图片.这些还没有普及,所以我现在只是询问文本失真.

captcha accessibility blind

12
推荐指数
1
解决办法
2773
查看次数

在uitableview中将画外音的焦点设置在特定的表格单元格上(UIAccessibility)

我有一个UITableView,只要用户向其添加另一个元素/表格单元格,我就会滚动到底部.对于屏幕,这可以正常工作,因为用户可以看到他们刚刚在表格底部添加的单元格.但是当使用VoiceOver运行我的应用程序时,第一个聚焦和读取的UITableCell是屏幕上可见的顶部单元格.

我想设置它,以便聚焦然后在UITableView出现时立即读取的单元格是表格中的最后一个单元格.我该怎么做呢?看起来它很简单,但我无法弄明白.

这是我到目前为止所尝试的(在cellForRowAtIndexPath中):

if (cellJustAdded && indexPath.row == [array count]-1) {
    cell.accessibilityElementIsFocused = YES; //obviously this does not work
}
Run Code Online (Sandbox Code Playgroud)

但我不认为你可以像这样使用accessibilityElementIsFocused.

iphone accessibility uitableview voiceover

12
推荐指数
1
解决办法
4971
查看次数

建立无href可访问的链接

我正在使用的网站上使用了第三方脚本,用于替换<a href="">简单的几个实例<a>.由于脚本的另一部分,链接仍然有效.但它们不再被用户代理视为链接.

我可以通过添加将它们恢复到选项卡式导航顺序,tabindex="0"但是如何让辅助技术将它们声明为链接或将它们包含在页面上所有链接的列表中?

会添加role="link"帮助吗?

我正在推动第三方改进他们的脚本,以便href保持不变.但与此同时,我如何才能最好地修复正在进行的损坏?

更新:我无法将原始内容href或类似内容添加href="#"回链接,因为第三方代码将不再执行其操作.我希望他们能够改进他们的代码,但是现在我需要在不使用'href'的情况下访问链接.

html javascript accessibility wai-aria wai

12
推荐指数
1
解决办法
5426
查看次数

如何拦截所有键盘事件并防止在WinForms应用程序中失去焦点?

我的一个朋友是盲人,我有一个想法是开发一个程序,让他在盲人打字方法和听力反馈的帮助下使用PC.如果我的应用程序可以在启动后立即强制完全控制整个键盘输入,那么体验会更加丰富(使用更多按键来执行特定功能)和完美无缺(如防止偶尔的焦点丢失)(我会把它放在一边)在他的启动).我是WinForms C#.Net开发人员,所以我想在使用这种特定框架和语言的应用程序中实现它(不过不介意包装WinAPI调用).

PS:我不介意系统保持对Ctrl + Ald + Del组合的控制,但我想控制所有其他键和组合,包括Windows徽标和标准应用程序启动器按钮.

.net c# keyboard accessibility winforms

12
推荐指数
2
解决办法
6998
查看次数

我需要<button>上的role ="button"吗?

我在Bootstrap的所有示例中都注意到了使用button元素,它们包括role="button"(和type="button"),例如:

<div class="dropdown">
    <button id="dLabel" type="button" role="button" data-toggle="dropdown" 
     aria-haspopup="true" aria-expanded="false">
        Dropdown trigger <span class="caret"></span>
    </button>
    <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
    ...
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

无法访问的软件是否已经知道某个button元素是否可以充当按钮?有什么理由我应该包含role="button"和/或type="button"在我的代码中?

html5 accessibility wai-aria twitter-bootstrap

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

UITableView子类中的KVC导致崩溃并启用了辅助功能

我有一个自定义UITableView子类,我在其中重写+accessInstanceVariablesDirectly以返回NO以确保无法使用KVC设置没有setter的属性.

从视图层次结构中删除此表视图时,应用程序崩溃 - 有时 - 现在是奇怪的部分:仅当启用了辅助功能时!(即,可访问性检查器可见,或者您在物理设备上启用了辅助功能)

如果我不覆盖+accessInstanceVariablesDirectly,一切正常.我想可能UITableView依赖于直接访问一些实例变量 - 但是如果我可以通过使用它来破坏超类,那么这个方法有什么意义呢?有没有办法指定每个属性的这种行为,比如+automaticallyNotifiesObserversForKey:?但是,只有在启用"辅助功能"时才会出现此问题,我感到困惑.

我尝试用各种仪器分析项目,但没有成功.

你可以在这里找到一个复制问题的最小项目.我非常感谢有关为什么会发生这种情况或如何实现我想要的东西的任何指示.

accessibility objective-c key-value-coding uitableview ios

12
推荐指数
1
解决办法
244
查看次数

在Swift/Objective-C中监听window resize事件

是否可以迭代OSX中任何应用程序的所有打开窗口并在Swift中监听它们的resize事件?我想创建自定义窗口管理器,根据用户行为移动和调整事件大小 - 因此,如果用户调整窗口大小,其他窗口将自动重新排列.

我是Haskell,而不是Swift开发人员,因此我非常重视任何代码片段/示例,展示如何实现此效果.(事实上​​我将它用作一种Haskell - > Cocoa绑定.)

编辑: 我也非常有兴趣在Objective-C中找到解决方案,但Swift对我来说更重要.

macos cocoa accessibility objective-c swift

12
推荐指数
1
解决办法
4140
查看次数

在我的选项卡标记中放置aria-controls属性的位置

我正在使用遵循以下语法的脚本在我的页面中设置选项卡式内容部分:

<!-- Clickable tab links -->
<ul class="js-tablist">
    <li id="tab1" class="js-tab active"><a href="#tabpanel1">Tab 1</a></li>
    <li id="tab2" class="js-tab"><a href="#tabpanel2">Tab 2</a></li>
    <li id="tab3" class="js-tab"><a href="#tabpanel3">Tab 3</a></li>
</ul>

<!-- Tab panels -->
<div id="tab-set" class="js-tabpanel-group">
    <section id="tabpanel1" class="js-tabpanel">__CONTENT__</section>
    <section id="tabpanel2" class="js-tabpanel">__CONTENT__</section>
    <section id="tabpanel3" class="js-tabpanel">__CONTENT__</section>
</div>
Run Code Online (Sandbox Code Playgroud)

我会设置各种ARIA角色(role="tablist",role="tab",role="tabpanel"在这种结构性标记通过JavaScript等)(因为如果没有脚本则没有标签),但我不确定相当哪里把我的"咏叹调-控制"的属性.他们应该继续 <li>元素还是<a>子元素?或者没关系?事实上,同样的问题可以问role="tab"tabindex="0"-应这些东西在列表项或锚去?

html tabs accessibility wai-aria

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

选择一个选项可以使VoiceOver跳转到页面顶部

iOS9,启用了VoiceOver的Safari.

不是100%可重复,但只是选择一个选项将使VoiceOver焦点跳转到页面顶部的按钮.

现在可以监听被选中的选项,然后在几秒钟内强制关注元素,但这会导致不受欢迎的UX.

  :focus {
    background-color: pink;
  }
Run Code Online (Sandbox Code Playgroud)
<div>
  <button tabindex="-1">close</button><br/><br/><br/><br/><br/><br/><br/><br/>
  <select>
    <option>Email</option>
    <option>Tobias</option>
    <option>Linus</option>
  </select>

</div>

<p>This example shows how to fill a dropdown list</p>
Run Code Online (Sandbox Code Playgroud)

在生产代码(使用AngularJS)中,在2秒超时后明确设置焦点,修复了问题,但这并不理想!谢谢.

html accessibility voiceover

12
推荐指数
1
解决办法
726
查看次数

使用AccessibilityService从(Facebook)RecyclerView中读取文本

如何查看非聚焦的RecyclerView子项(项目)的文本?

我的辅助功能服务应该从屏幕上读出包含关键字的文本.这在大多数情况下效果很好,除非我处理RecyclerViews,特别是那些在Facebook应用程序中的.

Facebook提要和评论屏幕都基于RecyclerView,似乎都不能让我从他们的辅助功能事件中访问我需要的文本.

我尝试过的:

public void onAccessibilityEvent(AccessibilityEvent event) {

    //I've tried looping through event.getText() and it does not contain the text entries

    //I've also tried the following (with various null checks)
    AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event);
    AccessibilityNodeInfoCompat source = record.getSource();
    List<AccessibilityNodeInfoCompat> nodes = source.findAccessibilityNodeInfosByText("...");
    //(and loop through the entries)

    //I've also tried limiting to the class name "android.support.v7.widget.RecyclerView"
    //and looking at parcelableData

    //In the facebook app, the following is always null too
    source.findFocus(AccessibilityNodeInfoCompat.FOCUS_ACCESSIBILITY);

}
Run Code Online (Sandbox Code Playgroud)

似乎没有地方包含我需要的数据.作为从帖子打开评论屏幕/叠加层的示例,我可以看到所有文本内容,除了评论本身(在回收者视图中)

我可以看到的事件详细信息的日志:

以下是我在帖子中看到的评论叠加在一个帖子上的评论

Event: EventType: TYPE_WINDOW_CONTENT_CHANGED; PackageName: …
Run Code Online (Sandbox Code Playgroud)

android facebook accessibility android-recyclerview android-accessibility

12
推荐指数
1
解决办法
730
查看次数