自作ウィジェットをアクセシブルにせよ!

2008年9月25日(木)
志田 裕樹

タブとして読み上げ可能なタブウィジェットの解説

 次に、先ほど紹介したサンプルをWAI-ARIAに対応させて、「タブ」として正しく読み上げできるようにしていきます。まずはじめに、図2を確認してください。このサンプルでは、「野菜、タブ」などと読み上げられるようになっています。

 では変更点を解説していきましょう。

 まず、



 「tabpanel」ロールの要素は、対応するタブのID値を「labelledby」プロパティで指定することが推奨されます。「labelledby」プロパティは、現在の要素をラベル付けしている要素を明示するプロパティです(参考:labelledbyの解説(http://www.hitachi.co.jp/universaldesign/wai-aria/ED_20080514/#tabpanel))。

 ここまでのソースコード全体をダウンロードしたファイル「tab-2.html」で確認してみましょう。

Hotkeysプラグインによるキーボードショートカットの設定

 ここまでで、サンプルはタブとして読み上げが可能な状態になりました。

 ここからは、サンプルをキーボードで操作可能にしていきます。WAI-ARIA Best Practices(http://www.w3.org/TR/wai-aria-practices)という開発者向けドキュメントがありますが、この中の「タブ」の実装の手引き(http://www.w3.org/TR/wai-aria-practices/#TabPanel)の部分に、どのようにして、キーボードで操作できるようにべきかが記述されています。これを参考にして仕様を決定します。

 今回は、下記のキーボード操作を実現しました。

・TABキー:タブからタブ内コンテンツにフォーカスをうつす
・左矢印キー:現在のタブの左隣のタブをアクティブにする
・右矢印キー:現在のタブの右隣のタブをアクティブにする

 ただし、もっとも左のタブがアクティブな時に、左矢印キーを押すと、もっとも右のタブがアクティブになります。右矢印キーの動作はその逆です。

 jQueryのHotkeysプラグイン(http://code.google.com/p/js-hotkeys/)を利用すると、キーボード操作を簡単に処理することができます。

 Hotkeysプラグインを使用することで、次のような簡単な記述で、特定の要素に対する、特定のキーの、キーダウンイベントを処理することができるようになります。

$(document).bind('keydown', 'Ctrl+c', fn);

 Hotkeysプラグインのサイト上のサンプル(http://jshotkeys.googlepages.com/test-static-01.html)を見ると、非常にさまざまなキーの組み合わせが設定可能なことが確認できます。

 次のページでは、キーボード操作の具体的な実装方法を見ていきます。

株式会社アークウェブ
取締役 CTO。2004年1月より株式会社アークウェブの創業スタッフとして勤務。SEとしてさまざまなWebシステムの構築に従事。オープンソースコミュニティーZen Cart.JPにてコミッターの役割を務め、Zen Cart、Ajax、Ruby on Railsなどの記事執筆も行っている。http://www.ark-web.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています