ユーザインタフェース

**ユーザインタフェース**（、 **UI**）または**使用者インタフェース**は、機械、特にコンピュータとその機械の利用者（通常は人間）の間での情報をやりとりするためのインタフェースである。これには長音符の有無などによる表記ゆれが見られるが、本記事では「ユーザインタフェース」で統一する。ユーザインタフェースは以下の手段を提供する。
* 入力 - ユーザーがシステムを操作する手段
* 出力 - ユーザーが操作した結果システムが生成したものを提示する手段

## 概要
システムを使う場合、ユーザーはそのシステムを制御でき、システムの状態を知ることができる必要がある。例えば、自動車を運転する際、運転手はハンドルを操作して進行方向を制御し、アクセルとブレーキとシフトレバーで速度を制御する。運転手は窓を通して外界を見ることで自動車の位置を把握し、速度計で正確な速度を知ることができる。自動車のユーザインタフェースは以上のような機器群で構成されており、全体として自動車の運転に必要なものを全て提供している。

ユーザインタフェースという語は、機械類等とそれの利用者、という関係を前提としている所がある。利用者という立場よりもより一般的に人間をとらえ、またそれと対峙するのが機械であることを意識・強調した語としてはヒューマンマシンインタフェース（HMI）がある。

ユーザーの種類によって異なるユーザインタフェースが用意されることも多い。例えば、図書館のシステムは、一般利用者向けの「とっつきやすさ」を重視したユーザインタフェースと、館員のための熟練を前提としたユーザインタフェースを持っているであろう。
 	
場合によっては、コンピュータはユーザの振る舞いを観察し、特定のコマンドを入力しなくても何らかの反応を返すことがある。肉体の各部分の動きを追う手段が必要とされ、頭部の位置を把握するセンサーや視線の方向を把握するセンサーが実験的に使われている。これらは没入型インタフェースと呼ばれるものと深く関係している。

## ユーザビリティ
ユーザインタフェースのデザインは、ユーザーの入力に要する労力の量や出力を解釈するのに要する労力の量、さらには使い方の学習にかかる労力に深く関わっている。**[[ユーザビリティ]]** (usability) とは、特定のユーザインタフェース設計でユーザーの心理学的側面や生理学的側面をどの程度考慮しているかを測り、またそれによってそのシステムを利用する際の効率/効果/満足度を測る尺度である。

ユーザビリティは主にユーザインタフェースの特性だが、製品の機能そのものとも関係している。それは、ある製品が意図された目的に対して対象ユーザーによってどの程度効率よく、効果的かつ満足して使われるかを示すと同時に、利用時の状況から生じる要求を考慮しているかどうかにも関係する。これらの機能や特徴は常にユーザインタフェースの一部とは限らないが、製品のユーザビリティの重要な要素である。

UIデザインのための原則の中でも、ベン・シュナイダーマンや、ヤコブ・ニールセンによるものは最も著名である。国家試験である情報処理技術者試験でも、2010年に「ヤコブニールセンのユーザーインターフェースに関する10か条のヒューリスティックス」として出題されている。シュナイダーマン、ニールセン共にその原則に「一貫性の保持」や「エラーの防止」が含まれ、同じでなくとも類似したものも含まれている。

## コンピュータ

コンピュータプログラムのユーザインタフェースとは、プログラムがユーザーに提示するグラフィカルな情報、テキストによる情報、音声による情報と、ユーザーがプログラムを操作 (operate) するときに使う制御シーケンス（キーボードによるキー押下、マウスの動き、タッチパネルにおける選択など）を指す。以下ではプログラム（ソフトウェア）についての他、デバイス（ハードウェア）等についても触れる。

### 分類
2008年現在、ユーザインタフェースには主に以下のような種類がある。
;グラフィカルユーザインタフェース (GUI)
:入力としてキーボードやマウスといったデバイスを用い、ディスプレイ上にグラフィカルな出力を提示する方式。

:マウスを使った入力方式はWindowsやMac OSのものが一般的だが、他にも境界線と交差するマウスポインタの動作で何らかの情報を入力する方式 (Crossing Based Interface)、マウスジェスチャーで制御する方式などもある。
;ウェブユーザインタフェース (WUI)
:ウェブページ生成によって入出力を行い、それをインターネット上で転送し、ウェブブラウザでユーザーがそれを表示する。既存のHTMLベースのウェブブラウザを使うことができ、制御はJava・Ajax・Adobe Flash・Microsoft .NETといった比較的新しい技術で実装される。
; キャラクタユーザインタフェース (CUI)
:ユーザーがキーボードからコマンドを入力し、ディスプレイ上に文字を表示することで出力とする方式。マウスなどポインティングデバイスを使用しないシステム管理作業などで使われる。
;触覚インタフェース
:補助的な出力として触覚フィードバックを用いる方式。コンピュータシミュレーションやバーチャルリアリティで使われる。
;タッチインタフェース
:タッチパネルとGUIを入出力に使う方式。工業機械やセルフサービス型機械（ATMなど）またはタブレットなどでよく使われる。

その他のユーザインタフェースの種類として、以下のものがある。
;バッチインタフェース
:バッチ処理で使われる対話型でないユーザインタフェース。ユーザーはバッチジョブとして処理の詳細をまとめて入力し、全ての処理が完了した時点で出力結果を得る。処理が始まると、システムはさらなる入力を求めることはない。
;パーセプチュアルユーザインタフェース (, PUI)
:ユーザーは従来的なコマンド入力を行わず、身振り手振りや音声を使って意思を伝達し、出力は映像や音声で行われる方式。KinectやSiri/Cortanaなどが挙げられる。
;リフレクシブユーザインタフェース ()
:ユーザインタフェース全体をユーザーが再定義可能な方式。主に非常にリッチなGUIでのみ可能。
;タンジブルユーザインタフェース (, TUI)
:物理的な接触を重視したユーザインタフェース。
;テキストユーザインタフェース
:出力はテキスト形式だが、入力はコマンド入力以外の方式も可能なユーザインタフェース。テキスト方式のメニュー操作などを指す。
;
:電話において、音声で案内し、ユーザーは電話機のプッシュボタンで入力する方式。音声ガイダンス。
;ズーミングユーザインタフェース
:GUIの一種で、情報オブジェクト群が異なる詳細さレベルで表示され、ユーザーがその中からオブジェクトを選ぶとさらに詳細が表示されるという方式。Microsoft Windows 8で導入されたModern UIスタイルのアプリケーションでは、「セマンティックズーム」と呼ばれる。

### 歴史
ユーザインタフェースの歴史は、支配的なユーザインタフェースの種類によって以下のように分けることができる。
*バッチインタフェースの時代（1940年代-1960年代）
*キャラクタユーザインタフェースの時代（1960年代-1980年代）
*グラフィカルユーザインタフェースの時代（1980年代-現在）

1990年代以降に勃興したユーザインタフェースとして、以下のものがある。
* タンジブルユーザインタフェース (TUI) / パーセプチュアルユーザインタフェース (PUI)
* マルチタッチ
* 音声ユーザーインターフェース (VUI)

### モダリティとモード
ユーザインタフェースにおける**[[モダリティ]]**とは、入出力に使用されるコミュニケーションの経路である。例えば、
*入力 - キーボードによりユーザーはテキストを打ち込むことができ、ペンタブレットによりユーザーは自由に線を描くことができる。
*出力 - ディスプレイによりシステムはテキストやグラフィックスを表示でき（視覚モダリティ）、スピーカーによりシステムは音を生成することができる（聴覚モダリティ）。

ユーザインタフェースは複数の冗長なモダリティを備えることがあり、ユーザーがいずれかを選択して使うことができるようになっている。

一方、**[[モード]]**はこれとは異なる概念で、プログラムの状態が異なると同じ入力を与えても異なる結果を生じることを意味する。モードを多用するとユーザーは常に現在の状態を覚えておく必要があるため、ユーザビリティの低下を招く。

### 入力機器
*スイッチ
*キーボード
*ポインティングデバイス
**マウス
**トラックボール
**ペンタブレット
**タッチパネル
**ライトペン
**ジョイスティック
*音声
**マイクロフォン
*映像
**ビデオカメラ

### 出力機器
*ディスプレイ
**ブラウン管 (CRT)
**液晶ディスプレイ (LCD)
*点字ディスプレイ
*プリンター
**ドットインパクト
**熱転写プリンター
**インクジェットプリンター
**レーザープリンター
*音声出力
**スピーカー

## 脚注

### 注釈

### 出典

## 関連項目

## 外部リンク
*