コンプライアンスのプロの皆さん、こんにちは。
私は、Webアプリをセクション508およびwcag2.0ガイドラインに準拠させるという任務を負っています。ほとんどの場合、これはそれほど難しいことではありませんが、私は少し障害にぶつかりました。
私はアプリでqtipをよく使用しますが、これはほとんどが準拠している傾向があり、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");
}
});