您好合规专家!
我的任务是使我们的网络应用程序符合第 508 节和 wcag 2.0 指南。对于大多数事情,这并不太棘手,但我遇到了一些障碍。
我在应用程序中使用了很多 qtip,它通常是符合 b/c 的,它使用 wai-aria 角色和 describe-by 属性。但是,我添加工具提示的方式使其在第一次鼠标悬停之前不会放在文本上。这显然不会发生在键盘导航中,我也不确定屏幕阅读器将如何处理它!
我在这里做了一个小提琴:http: //jsfiddle.net/patriciavandermeer/xkhy6/2/ ,它演示了我在说什么。工具提示是最终用户可以在其他地方设置的 html,它们列出的项目可能有也可能没有工具提示。
我正在考虑应用工具提示并显示在 :focus 上(并在失去焦点时隐藏),但是我需要给跨度一个 tabindex 并且我不确定它的支持程度如何,都可以主要浏览器处理好吗?
还是我应该咬紧牙关,准备好文档中的工具提示?当我以这种方式设置它时,我在一些繁忙的页面上遇到了一些严重的性能问题。
编辑:这是将使用的 html 示例,以及我用来将工具提示附加到跨度的 jquery/javascript。
示例 HTML:
<li >
<span class="InteractiveToolTipMe">Administration</span>
<div class="InteractiveToolTip NoDisplay"><p>This is a description</p>
<p> </p>
<p>For administration.....</p></div>
</li>
<li >
Board and Committees
</li>
<li >
Community Outreach
</li>
<li >
<span class="InteractiveToolTipMe">Fundraising</span>
<div class="InteractiveToolTip NoDisplay"><p><strong>test</strong></p>
<p> </p>
<ul>
<li><strong>test</strong></li>
<li>test</li>
<li>test</li>
</ul>
</div>
</li>
<li style="padding:2px;">
Physics
</li>
<li style="padding:2px;">
Public Speaking
</li>
<li style="padding:2px;">
Special Events
</li>
</ul>
用于附加工具提示的 Javascript:
$('span.InteractiveToolTipMe').live("mouseover", function () {
var $this = $(this);
if (!$this.data("toolTipAttached")) {
var content = $(this).parent().find('.InteractiveToolTip').html();
$this.qtip({
content: {
text: content
},
position: {
target: 'mouse',
adjust: {
mouse: false
},
viewport: $(window)
},
hide: {
fixed: true,
delay:350,
when: 'mouseout'
},
show: {
solo: true,
delay: 350,
ready: true
},
style: {
widget: true,
tip:false,
classes: "LegendTip"
}
});
$this.data("toolTipAttached", true);
//$this.trigger("mouseover");
}
});