【问题标题】:Web Accessibility and qTipWeb 可访问性和 qTip
【发布时间】:2012-04-06 02:34:18
【问题描述】:

我最近实现了qTip jQuery 插件,我非常喜欢它。最近在与我的老板进行代码审查时,Web Accessibility 出现在讨论中,并且特别提到了 qTip。

目前我有 qTip 工作,当我将鼠标悬停在启用 qTip 的网页上的某些图标上时,将为用户显示一个工具提示。嗯,这对于使用鼠标的人来说非常有用,但对于那些只使用键盘的人来说,那是行不通的......

我已经开始对 Web Accessibility 进行一些研究,并且我主要阅读了 W3C 上的材料。

我要做的是为 qTip 启用键盘/屏幕阅读器功能。

你们中的任何人都做过使 qTip 与 Web 可访问性兼容的工作吗?

绝对不是在这里寻找“编写代码的人”。只是寻找关于使用 qTip 插件实现 Web 可访问性的小示例和任何建议。

【问题讨论】:

  • 所以,听起来你想要两件事:1)能够通过键盘焦点触发 qtips; 2) 确保屏幕阅读器可以访问 qtip 中显示的内容。那会是正确的吗?需要注意的一件事是 qtip 的默认行为是从title 属性which is not very accessible 中提取内容。如果您使用@title,您可能希望将其更改为更易于访问的其他内容。
  • @steveax - 在这两件事上都是正确的。在创建 qTip 时,title 属性是否与 qTip content 标识符对应?关于如何使屏幕阅读器可以访问content 的任何想法?谢谢。

标签: accessibility qtip


【解决方案1】:

我会按照这些思路做一些事情......

在 qTip HTML 标记中添加您想要的内容(而不是在标题属性中):

<p>
<a href="#">
  <span class="hidden">This is the qtip content</span>
  And this is the link content
</a>
</p>

使用 CSS 隐藏 qTip 内容(更好的是使用 modernizr 之类的东西来仅在用户启用 JavaScript 时隐藏内容,viz.js .hidden 用于选择器):

.hidden {
   position: absolute;
   display: block;
   top: -10000px;
   left: -10000px;
   font-size: 1px;
}

然后在包含 jQuery 和 qTip 脚本后,使用 qTip 内容的隐藏内容创建 qTips,并添加 focusinfocusout 事件以显示/隐藏 qTip:

$('a').qtip({
   content: {
      text: function(api) {
         return $(this).children('.hidden').text();
      }
   }
});

$(document).ready(function(){
   $('a').focusin(function() {
      $(this).qtip('toggle', true);
   });
   $('a').focusout(function() {
      $(this).qtip('toggle', false);
   });
});

小提琴:http://jsfiddle.net/MnB6Q/

【讨论】:

  • 很好的答案。我知道点击该项目会触发一个 focusin 事件,它也会在悬停时触发吗?
  • @stringy 是的,试试小提琴。
  • focusin 和 focusout 使用鼠标对我有用,但对键盘不起作用。我正在使用 IE 8。
  • 标签化的元素是图像,顺便说一句。我已经在它上面放了一个 0 的 tabindex,以便能够对其进行制表符。
  • @ZackMacomber 图像获得焦点了吗?
猜你喜欢
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
相关资源
最近更新 更多