Upgrade to Pro — share decks privately, control downloads, hide ads and more …

キーボード操作のデザイン

Rikiya Ihara
August 17, 2019
5.8k

 キーボード操作のデザイン

Rikiya Ihara

August 17, 2019
Tweet

More Decks by Rikiya Ihara

Transcript

  1. 3

  2. 5

  3. 6

  4. 7

  5. 8

  6. 12

  7. 14

  8. 15

  9. 16

  10. 17

  11. 31

  12. ウェブでは簡単に実現できる 34 • a要素でリンクする & 標準のフォームコントロールで実装するだけ • tab と shift

    + tab でフォーカスを行き来 • checkbox, select などはカーソルキーで切り替え • space で選択、enter で実行
  13. まがい物を作ると使えなくなる 37 • リンクやボタンを、span や div や hrefなしのa で作ってしまう •

    ブラウザはそれがリンクやボタンだとわからない • フォーカスがあたらないのでキーボードで操作不能になる • リンクはhref属性ありのa要素で実装する • ボタンはbutton type="button"で実装する
  14. 49

  15. 51

  16. 52

  17. 実例集 • WAI-ARIA Authoring Practices 1.1 • Inclusive Components •

    書籍『インクルーシブHTML + CSS & JavaScript』 • 書籍『コーディングWebアクセシビリティ』 57
  18. 58

  19. 59

  20. 60

  21. 64

  22. XDをどう使う? • XDのシミュレーションは有効。実際の使用感を確かめられる • tab でグループに入る → カーソルキーで移動 → space

    で選択 → esc or tab で抜ける • これは連続して試してみないと、要不要や違和感に気づきにくい 65
  23. この掟の遵守者だけがショートカットキーを授かる 1. 先にショートカットキーで解決しようとしない 2. ショートカットキーは優先度をつけて厳選する 3. ショートカットキーはオンオフ可能にする 4. 既存のキーアサインとの衝突を避ける 5.

    ショートカットキーは上書き可能にする 6. ショートカットキーの存在を認知させる 7. ショートカットキーは覚えられるものにする 8. アクセスキー(accesskey)は使わない 68 🤯
  24. 8. アクセスキー(accesskey)は使わない • accesskey属性というグローバル属性があり alt + 記載のキーで発動する • が、ブラウザ実装が適当なので動いたり動かなかったりする •

    フォーカスが移るだけの場合もあれば、即座に実行される場合もある • 動作が保証できないので、うっかり書いてしまっていたら消すこと 76
  25. 良いショートカットキーのプラクティス • 1文字または2文字のショートカットキーを使う • 入力が簡単であり、一意である可能性が高く、意味を伝えられる • すでに使われているケースが多く、慣例もある • j, k,

    /, ?, ⌘ + enter あたりはかなり共通している • ただし入力中に1文字・2文字ショートカットは使えないので注意 • 修飾キー付きはかなり慎重に。どうしてもという時だけ 79
  26. 81

  27. 82

  28. 83

  29. 84

  30. 87

  31. 88

  32. 92 デスクトップアプリだがたまたまウェブにある説 • OSごとにショートカットキーを用意している • ブラウザのショートカットをも上書きしている • これをやっていいのは、OSやブラウザとバッティングしても なおアプリ側がメリットがあるときだけ •

    OSと地続きに感じられるように作る前提であり、 デスクトップアプリだがたまたまウェブにあると言ったほうがいい • すごい気合が必要そう。こういう案件にはまだ出会ってない • やったことある人いたら教えてください
  33. 97

  34. この掟の遵守者だけがショートカットキーを授かる 1. 先にショートカットキーで解決しようとしない 2. ショートカットキーは優先度をつけて厳選する 3. ショートカットキーはオンオフ可能にする 4. 既存のキーアサインとの衝突を避ける 5.

    ショートカットキーは上書き可能にする 6. ショートカットキーの存在を認知させる 7. ショートカットキーは覚えられるものにする 8. アクセスキー(accesskey)は使わない 99 🤯
  35. 良いショートカットキーのプラクティス • 1文字または2文字のショートカットキーを使う • 入力が簡単であり、一意である可能性が高く、意味を伝えられる • すでに使われているケースが多く、慣例もある • j, k,

    /, ?, ⌘ + enter あたりはかなり共通している • ただし入力中に1文字・2文字ショートカットは使えないので注意 • 修飾キー付きはかなり慎重に。どうしてもという時だけ 100
  36. 101

  37. 109 Thank you! Powered by freee AG部(toofu, ymrl, takumi, max,

    ouji, and more...) @magi1125 #XDUFes2019
  38. 参考資料① 110 WCAG2.1 の該当箇所 • 2.1.1 キーボード • 2.1.2 キーボードトラップなし

    • 2.1.3 キーボード (例外なし) • 2.1.4 文字キーのショートカット • 2.4.7 フォーカスの可視化 • 2.4.3 フォーカス順序
  39. 参考資料② 111 • UI Copy: UX Guidelines for Command Names

    and Keyboard Shortcuts • JavaScript のキーボードショートカットライブラリについて • Are there any guidelines concerning the use of Alt, Ctrl and Shift keys? • Windows デベロッパーセンター:キーボード操作 • Apple Human Interface Guidelines | Keyboard • Guidelines for Keyboard User Interface Design • Designing Better Keyboard Experiences