jquery - 打开Fancybox-2后,将焦点发送到fancybox窗口

标签 jquery focus fancybox-2 wai-aria accessibility

为了便于访问,我尝试在 Fancybox 窗口打开后将焦点发送到该窗口中。

我在 Fancybox 的容器上添加了一个 tabindex 为 0 的值,并将焦点发送到它上面。这不起作用。

afterLoad: function() {
    this.group[this.index].content.attr('tabindex','0');
    this.group[this.index].content.focus();
}

我使用 NVDA(非可视化桌面访问)http://www.nvaccess.org/用于测试,但 Chrome 也可以显示焦点。

感谢您的帮助。

最佳答案

这很大程度上取决于内容类型,但这应该可以解决问题(使用内联ajax > 或 html 内容)

$(".fancybox").fancybox({
    afterShow: function () {
        $(this.content).attr("tabindex",1).focus()
    }
});

它对于单个或画廊元素应该同样有效。

参见JSFIDDLE (使用 Chrome 使其显而易见)

注意:我建议您使用 tabindex > 0 以避免 IE 出现问题(如果您关心跨浏览器兼容性)

编辑:这里有一个不同类型内容的示例: JSFIDDLE 其中焦点图像iframe

上不太明显

编辑2:更一般的做法是关注.fancybox-inner选择器,无论内容类型如何

$(".fancybox-inner").attr("tabindex",1).focus();

查看更新 JSFIDDLE 但想知道这是否适合您的目的

关于jquery - 打开Fancybox-2后,将焦点发送到fancybox窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19022658/

相关文章:

javascript - 循环遍历动态添加的元素

android - 单击操作栏按钮时失去焦点

java - 带有可编辑 JComboBoxes 的奇怪 Tab 键顺序

android - 暂时禁用 EditText

javascript - 根据选项重定向提交按钮

javascript - highcharts- php/mysql 数据获取

jquery - 使用 jquery 切换

jquery - WebForms 中的 fancybox2 不会触发按钮单击

javascript - 如何在移动设备上禁用fancybox并直接显示大图

javascript - Fancybox 中没有显示图像