Webアクセシビリティ勉強会

キーボード操作の基本操作

キーボードで操作できることは、アクセシビリティを担保する上で非常に重要

GUIにおいて、悪い例

「キーボードとマウスの持ち替え」の負担は、支援技術ユーザーにとっては、辛い

支援技術などでは、画面上の特定の位置をクリックするよりもキーボードの操作をエミュレートしたほうが容易な場合がある

また手や指先が正確に動かせない場合、入力候補をクリックするよりも、キーボードで対象を選んで実行するほうが正確に操作ができる。

結論

テキスト入力とUI操作の切り替えがしばしば発生するアプリケーション(経理の帳簿入力やテキストエディタ)においても、キーボードで操作が完結できることは非常に有用でしょう。

よくある事例から見る課題一覧

ここからは、よくあるアクセシブルでない事例をもとに、アクセシブルでなくなってしまう原因とそのチェック方法、そして改善の仕方を解説していきます。

事例1. キーボードで操作できない--インタラクティブ要素を用いていない

これらの原因

適切なHTMLの要素を使用していないことによって生み出されます

事例1の解決策

事例2. キーボードで操作できない──インタラクティブ要素を隠している

たとえば見た目を変更するためにinput要素をdisplay:noneで隠してCSSや画像でチェックボックスを描画している場合、マウスではlabel要素をクリックすれば、関連付けられたinput要素を操作できます。一見問題ないように見えますが、display:noneで隠した要素はフォーカスを受け取ることができないため、キーボードでは操作できません。

原因例

CSSのdisplay: noneで非表示にしている場合

事例2の解決策

見た目のためにインタラクティブ要素を隠す場合は、フォーカスをあてられる隠し方を選択しましょう。キーボード操作ができない例では、display:noneで隠していました。display:noneで要素が隠されると、キーボードで操作できません。visibilityプロパティでも同様です。

事例3. キーボードで操作できない──マウスでしか表示されないUI

マウス操作のみで表示できる領域内にUIがある場合も、そのUIをキーボードで操作することはできません。

<div class="VideoPlayer">
    <video src="/movie/sample.mp4">
    </video>
    <div class="VideoPlayer__controls" role="group">
        <button type="button">
        一時停止</button>
        <button type="button">
        再生</button>
    </div>
</div>
>
    

事例3の解決策

マウスでしか表示されないUIを改善するには、マウス操作をトリガーするイベントとキーボードイベントを併用します。

事例4. キーボード操作の現在位置がわからない

キーボードで操作するためには、フォーカスがどの要素にあたっているかわかることが重要です。

現在選択しているものがわからなければ、ユーザーは何が起こるかわからないので実行はできません。

デフォルトでは、要素にフォーカスするとそれを示すフォーカスインジケーターが表示されます

事例4の解決策

まとめ

キーボードで操作することを前提に考える

create by naruogram