Macをトラックパッドやマウスを使わずに操作してみた

## これは何

Macをキーボードのみで操作してみたので、個人的な気づきをまとめてみました。

### 注意点

日常的にキーボードのみの操作をしているわけではないので、慣れない故の不便さや知らない操作方法が多分にあると思います。
また、操作を試した内容も限られています。

飽くまで一個人としての感想なので、ここに書かれている「これが不便」「これが便利」は参考程度にしてください。

### 主な操作内容

記事を書きながら操作をしていたので、Webページの閲覧がメインの操作です。
複雑な操作を必要とするアプリケーションの操作はしていません。
アクセシビリティの設定をいじりながら試していたので、システム設定は触っています。

### 環境

- バージョン : MacOS Big Sur 11.7.10
- キーボード ： MacBookのキーボード
- VoiceOver : 一部あり
    - 読み上げ&字幕を表示してくれる機能です
    - 頭痛持ちなのでOFFにしてたのですが、音量をOFFにできることに気づき途中から使い始めました
    - [MacでVoiceOverを使ってテキストを読み上げる - Apple サポート (日本)](https://support.apple.com/ja-jp/guide/voiceover/vo2706/mac)
- 音声コントロール : 一部あり
    - 音声入力で操作ができる機能です
    - 途中から存在に気づいて使い始めました
    - [Mac で音声コントロールを使う - Apple サポート (日本)](https://support.apple.com/ja-jp/HT210539)
- ヘッドポインタ：なし
    - 頭の動きでカーソルを移動できる機能です
    - 頭痛持ち&寝違えで操作がきつかったので使いませんでした..
    - 少しだけ試してみた感想としては、細かい操作や画面の端から端までの移動が難しかったです
    - [Macでヘッドポインタを使ってポインタを動かす - Apple サポート (日本)](https://support.apple.com/ja-jp/guide/mac-help/mchlb2d4782b/mac)
- マウスキー：なし
    - キー操作でカーソルを移動できる機能です
    - 記事執筆をしながらだったので、オンオフの切り替えが面倒で使っていませんでした
    - 少しだけ試してみた感想としては、カーソル移動が遅めで画面の端から端までの移動がしづらかったです
    - 細かい調整ができるので、ヘッドポインタで大まかに狙いをつけてマウスキーで細かい調整をするとかもできそうです
    - [Macでマウスキーを使用してポインタを制御する - Apple サポート (日本)](https://support.apple.com/ja-jp/guide/mac-help/mh27469/mac)

その他Macで使えるアクセシビリティ設定については以下をご覧ください。

https://support.apple.com/ja-jp/guide/mac-help/mchlp1400/mac

https://support.apple.com/ja-jp/accessibility

## 【自分で試してみたい人向け】基本のキーボード操作

:::note
自分が実際に使ったものを分類してまとめました。

覚えやすいように数を絞っているので、最新の情報や網羅された情報はApple サポートを確認してください。
[Macのキーボードショートカット | Apple サポート](https://support.apple.com/ja-jp/HT201236)
:::

### ページやアプリケーション内の操作

多分使っている人も多いと思います。
まずは今開いているタブの操作から始められるので、導入しやすいです。

操作 | コマンド
-|-
フォーカス移動 | Tab
テキストエリアにいるときにフォーカス移動|Contol + Tab
特定の操作から抜け出す | Esc
少しスクロールする | 矢印キー
スクロールする | (Shift) + Space を押しながらで戻る

### 開いているウィンドウのタブの操作

こちらも使っている人がそこそこいそう。
今開いているウィンドウのタブを操作できます。

操作 | コマンド
-|-
タブの切り替え| Command+1（タブの数字）
前のタブに移動 | Control + Shift + Tab
次のタブに移動 | Control + Tab
タブを開く | Command + T
別ウィンドウでタブを開く | Command + N
タブを（全て）閉じる | Command + (Option) + W

### ウィンドウやアプリケーションの操作

今アクティブでないウィンドウへの切り替えなどの操作ができます。

操作 | コマンド
-|-
ツールバーにフォーカス | F5 + Control
フローティングウィンドウにフォーカス | F6 + Control
ウィンドウの切り替え | Option + Tab
アプリケーションの切り替え| Command + Tab ※
Command + (Option) + H |最前面のアプリ（以外）を隠す
Command + (Option) + M | 最前面のアプリ（以外）を最小化する
Control + Command + F | フルスクリーン切り替え
Command + , | 設定を開く

※ 自分はRaycastの「Switch Windows」に変更しています。

![MacのデスクトップにRaycastのアプリウィンドウが表示されているスクリーンショット。ウィンドウにはChromeやFigmaのタブがリストで表示されている。](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577501/670b9088-4dde-9f16-881e-1dcab5c8a8a7.png)

https://qiita.com/kabechiyo13/items/544edf52f7281bf325e0

### Macのシステムの操作

Macのメニューを操作できます。
Dockは自分が使っていない（Raycastで事足りる）ので入れてません。

操作 | コマンド
-|-
Command + Space | Spotlightを開く ※

※自分はRaycastに変更しています

https://qiita.com/kabechiyo13/items/544edf52f7281bf325e0

:::note warn
システム設定は、「キーボード > ショートカット」で」で下部に表示される「コントロール間のフォーカス移動をキーボードで操作」をオンにしないとキーボード操作ができません

![Macのシステム設定のウィンドウのスクリーンショット。キーボードメニューでショートカットのタブが開かれいてる。「コントロール間のフォーカス移動をキーボードで操作」という項目にチェックが入っている。](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577501/4d351aeb-d817-9bd8-50f1-72dcc4327069.png)
:::

### ショートカットのカスタマイズ

基本的にはシステム設定の「キーボード > ショートカット」でそれぞれのショートカットの割り当てを変えられます。
自分の場合は、「Fnキー」を押すのが大変なので、以下3つを割り当て変更しています

操作 | 元のショートカット | 変更後のショートカット
-|-|-
Macのメニューバーにフォーカス | F2 + Control | Control + M
ツールバーにフォーカス | F5 + Control | Control + T
フローティングウィンドウにフォーカス | F6 + Control | Control + F

### VoiceOverをオンにする

VoiceOverは、Macで提供されているスクリーンリーダーです。
「アクセシビリティ > VoiceOver」でVoiceOverを有効にすると使えます。

ONにすると、フォーカス位置がわかりやすくなったり、フォーカスしている要素の情報を出してくれるので、捜査の役に立ちます。

自分の場合は頭痛持ちで、ずっと音声が流れているのがしんどくて音量OFFで使っています。
「アクセシビリティ > 「VoiceOver」で、「VoiceOverユーティリティ」を開き、「スピーチ消音」にチェックを入れると、音量をオフにできます。

音量をオンにする場合は、「編集」　でピッチや音量も調整できるので、聞きやすいものを選ぶのがおすすめです。

https://support.apple.com/ja-jp/guide/mac-help/mh40578/14.0/mac/14.0

### 音声コントロールをオンにする

「システム設定 > アクセシビリティ > 音声コントロール」で音声コントロールをオンにしておくと、声で操作ができるようになります。

「オーバーレイ」を「項目番号」にしておくと、操作できる要素に数字が表示され、「25 クリック」のように話すことで対象を操作できます。

![Macのシステム設定のウィンドウのスクリーンショット。音声コントロールのメニューが表示されており、UI上に22から40の数字が振られている。設定内容は上から、音声コントロールがオン、言語が日本語（日本）、マイクが自動（MacBook Proのマイク）、オーバーレイが項目番号、ヒントを表示がオン、コマンドが認識され時にサウンドを再生がオン](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577501/0842f171-1d53-b2fa-f2af-36cbcba2f782.png)

これにより、操作のコマンドを忘れたりフォーカスが遠い場合でも対象の操作ができるようになります。
ただ、環境によっては声が出せなかったり音声を100%正確に認識してくれるわけではないので、補助的に利用していました。
（自分の場合は7が聞き取ってもらえなかったです..）

https://support.apple.com/ja-jp/guide/mac-help/spc002/14.0/mac/14.0

## 実際に操作してみての感想

やっと本題です..
実際にキーボード操作を使ってみて感じたことをまとめていきます。

### 全体的に不便と感じたこと

特定のUIや挙動というよりは、普段使用しているポインティングデバイス（トラックパッド・マウス）と比べて全般的に不便と感じた部分です。

#### Tabでのフォーカス移動が面倒

割とこれに尽きます。
フォーカスできるコンテンツが充実しているほど、したいアクションまでの距離が遠くなって面倒になります。
特に、ページを跨いで共通しているナビゲーションはスキップしたいと感じます。

また、『ページをスクロールしてリンクを見つけたので「Tab」を押したら上に他にもフォーカスする要素があってそこまで戻ってしまう』というのが大分使いづらかったです。
（これはVoiceOverを有効かしたことで解決しました）

##### 「メインコンテンツにスキップ」は便利

逆に、スキップリンクは重宝しました。
支援技術によってはメインコンテンツまでスキップする機能がありますが、Macはそうしたナビゲーションの機能がなかった（あるけど見つけられなかっただけかも..）ので、特にありがたかったです。

#### 覚えなきゃいけないことが多い

前段が長かったことから察していただけると思いますが、そもそもキーボード操作できるようになるために覚えることが多いです。
とにかくコマンドを覚えないと始まりません。
一通りMacやChromeの操作を覚えても、新しいサービスに触れるとまた覚えることが増えたりして、脳がパンクしそうになります..

#### 初めて触るアプリだと、操作方法がわかりづらい

基本的なのWebサイトの閲覧は良いのですが、WebアプリケーションやAppになってくると、独特な操作があったりして慣れるまでに時間がかかります。
結果的にキーボードのみで操作している間は、新しいものを試すことが億劫になりました。

### 個別に不便に感じたこと

特定のUIごとに不便に感じた仕様や操作です。

#### フォーカス位置を見失ってしまう

もちろん`outline: none`などでフォーカス表示がそもそもないのは困るのですが、フォーカスが出ていても見失うことが割とありました。

表示順序とフォーカス順序と違ったり、フォーカスがふわっとアニメーションしたり、色が薄かったり線が細かったりすると、フォーカスを一瞬見失ってしまいやすかったです。

また、モーダルの裏側やドロップダウンの中身・アコーディオンの中身など、見えていない要素にフォーカスする時もフォーカスの位置も見失ってしまいます。

#### メインアクションのフォーカスが遠い

そのページで最もおこなわれるアクションのフォーカス順序が遅いと、アクションまで時間がかかり、不便に感じました。
特に「同じ操作を繰り返し行う」ときが大変でした。

UI上でそのアクションを行うためのショートカットが表示されていると、フォーカスをしなくて良い&ショートカットを調べたり覚えたりしなくて良いので便利でした。

#### フォーカスの順序と見えている順序が違う

見えている順番とフォーカスの順序が違うと、どちらの方向にフォーカスを移動すればいいかわからず混乱してしまいました。

#### タブ全てにフォーカスしないとコンテンツに入れない

タブのようなUIで、タブ間の移動がTabキーでコンテンツに入るのもTabキーだと、「今いるタブのコンテンツに入りたいのに、後ろのタブを全部フォーカスしないと入れない」状態になり、時間がかかってしまいました。

矢印キーでタブ移動・Tabキーでコンテンツにフォーカス移動、のようになっているとコンテンツにすぐ入れて便利でした。

#### 最前面要素のフォーカス順序が遅い

よく右下や下部に固定でポップアップが出ているUIがあります。
こうした最前面要素のフォーカス順序が最後になっていると、ページを最後まで閲覧しないとポップアップを閉じることができず、閲覧の邪魔になります。
逆に興味を持ってくれた人もアクションしづらいので、最初の方にフォーカスさせるのが良いと思います。

#### テキストエリアにフォーカスしているときに、抜けるのが面倒

テキストエリアにフォーカスしているときは、入力のために一部のショートカットが使えなくなります。
そのため、慣れるまで一度テキストエリアに入ると操作がモタつきました。

#### フォーカスできないエリアに内部スクロールがある

フォーカスできないエリアに内部スクロールがあると、キーボード操作でスクロールでき図、コンテンツを閲覧できませんでした。
（もしかしたらスクロールできる方法があるのかもですが、分かりませんでした..）

#### 「同じ見た目」で「操作が違う」と混乱する

例えばリンクは「Enter」、ボタンは「Space」で動作します。
また、「Space」を入力するとページを下にスクロールします。
そのため、ボタンだと思って「Space」を押したらリンクだったときに、画面がスクロールしてしまい不便でした。

VoiceOverを確認しながらならどのキーで操作するかある程度わかるのですが、割と直感で操作してしまうので、1/3位最初間違えます。

#### ドロップダウンを閉じられない

視覚で情報を得ている場合、ドロップダウンが開いたままだと重なっている部分の情報を得られません。
「Esc」でドロップダウンを抜けるとドロップダウンが閉じるようになっていると便利でした。

## 終わりに

実際にキーボード操作をしてみることで、操作のしづらい点やそもそも操作ができない点に気づくことができました。

もちろん今回試してたのは一時的・部分的なものなので正確さや網羅性はないですが、アクセシビリティの取り組みのとっかかりとしては役に立つと思います。
もしもっと便利なキーボード操作の方法などご存知の方いましたら、是非コメントなどで教えていただけると嬉しいです！