指示装置

指示装置

[1] マウスおよびそれと同等とみなされ得る装置を、 一般に指示装置 (pointing device) といいます。

具体例

[14] 指示装置には、 次のものがあります。

[13] 指示装置

[2] OS の機能あるいは独自のアプリケーションとして、 ソフトウェアによって指示装置をエミュレートするものもあります。

[3] 鍵盤矢印などによってマウス操作とみなすことがあります。

[12] WebDriver により指示装置の挙動をエミュレートすることがあります。

[15] 遠隔操作ソフトウェアを通じてネットワークから指示装置の挙動がもたらされる場合もあります。

[16] 仮想機械上で動作する場合のようにプラットフォームレベルでは物理的な装置に見えても実はそうではない場合もあります。

[10] スマートフォンの画面のように、マウス相当の機能より大幅に拡張されているものもあります。

操作と状態

[4] マウスを利用するソフトウェア (OSウィンドウシステムアプリケーションなど) は、 マウスが指す画面上の座標を保持しています。 これを表す記号をマウスポインターまたはマウスカーソルといいます。

[6] 多くの環境では、そのような座標は同時に1つだけ存在しており、 画面全体を覆う二次元 (x, y) 座標空間上のを表しています。
[11] マルチディスプレイ環境では、いずれかの画面にだけ存在します。
[17] 遠隔操作ソフトウェアや仮想機械ソフトウェアの内で別の画面上のマウスが表示される場合のように、 複数の画面を同時表示しているときはマウスカーソルが複数存在することがあります。

[5] マウスは1つ以上のボタンを持っており、それぞれ押下することができます。 押下してすぐに離す操作をクリック、押下して座標を移動させてから離す操作をドラッグ (ドラッグアンドドロップ) といいます。

[7] マウスホイールを持つことがあります。ホイールボタンの1つとして機能することもありますが、それに加えて、 一次元の移動量を指定する操作ができます。

[8] 指示装置の操作と状態に関しては、次のような概念があります。

[9] マウス操作も参照。

[18] アプリケーションによっては、 マウス鍵盤の操作を組み合わせることがあります。

[19] 例えば Shift を押しながらクリックすると通常とは異なるメニューを表示することがあります。

[21] ThinkPad鍵盤 (単体製品を含みます。) では、 中ボタンを押しながらトラックポイントを移動するとホイールの操作になります。 これはデバイスドライバーレベルの仕様とされます [要出典]。

[22] 一方で、中ボタンを押して離すとスクロールモードに入ります。 これは Windows レベルの仕様とされます [要出典]。 Windows の仕様といいつつ効くアプリケーションと効かないアプリケーションがあるので、 実はそうではなく各アプリケーションが勝手に実装している仕様なのでしょうか。 ChromeFirefox で微妙に挙動と表示が違います。

[23] さて、 >>21>>22 は必ずしも矛盾しないものの、微妙なバランスで成り立っていそうです。 実際試してみると、 Firefox では思ったように機能します。 一方で Chrome だと中ボタンを押しているときにスクロールモードに入る準備動作 (マウスポインターが変化し、どの方向にも移動しない。ボタンを離すとスクロールモードに入る。) になるときと、ホイールになるときがあります。どちらかというと準備動作の方に入ることが多い体感ですが、 どちらに行くかの条件は何かありそうでつかめません。

[24] その Chrome でも中ボタンmousedown既定動作取り消しすれば常にホイールモードに入るように見えます (が厳密にチェックはしていません)。

[25] Firefox だとその準備動作モードで固定されることがなくて、準備動作状態でトラックポイントを移動するとそのままホイールモードに移行するので、 自然な挙動になっています。

メモ

[20] Mouse back/forward buttons: page navigation or JS events? · Issue #191 · w3c/pointerevents () https://github.com/w3c/pointerevents/issues/191