人机交互
AI WARNING
未进行对照审核。
人机交互设计导论
人机交互设计(HCI Design)
人机交互设计(Human-Computer Interaction Design)旨在探索和实现人与计算机界面之间最高效、可用且有效的交互体验。其核心是设计出能够让用户轻松、自然、愉悦地与系统互动的界面。
用户通常通过界面而非功能来评价一个系统。糟糕的界面设计不仅会导致用户沮丧,还可能引发严重的操作失误,甚至导致软件系统被弃用。
什么是好的人机交互设计?
- 易用、自然、吸引人:鼓励用户与系统进行流畅的交互。
- 符合用户预期:如 Joel Spolsky 所言:「一个用户界面设计良好,当程序行为完全符合用户预期时。」
- 任务导向:让用户能够顺利完成他们的目标任务。
- 透明性:优秀的用户界面应该是透明的,让用户专注于任务本身,忘记他们正在使用计算机。
评价标准:可用性
可用性是衡量人机交互设计好坏的关键多维度属性,它并非单一指标。
可用性五要素
- 易学性:用户能多快地学会使用系统完成基本任务?
- 效率性:熟练用户能多快地通过界面完成任务?
- 易记性:用户在一段时间未使用后,重新使用时是否容易记起如何操作?是否需要从头学起?
- 出错率:用户在使用过程中出错的频率和严重程度如何?能否轻松地从错误中恢复?
- 主观满意度:用户在使用系统时是否感到愉悦和满意?
易学性和效率性之间常常存在冲突。简单的界面易于上手(对新手友好),但可能缺乏高级功能或快捷方式,导致专家用户效率不高。复杂的界面可能学习曲线陡峭,但一旦掌握,效率极高。
graph TD
subgraph 学习曲线
direction LR
A[时间] --> B(用户熟练度/效率);
C(新手焦点: 快速上手) -- 初始阶段陡峭 --> B;
D(专家焦点: 高效操作) -- 后续持续提升 --> B;
end
style C stroke:#f9a,stroke-width:2px
style D stroke:#9cf,stroke-width:2px
人机交互的三大要素
人机交互系统涉及三个核心组成部分:人(用户)、计算机(设备)和它们之间的交互。
人
理解用户的特性是 HCI 设计的基础。
人的特性
- 有限的短期记忆:人类短期记忆容量有限,大约能同时记住 7±2 个信息块(米勒定律)。设计应避免让用户记忆过多信息。
- 启示:界面应提供必要信息,而非要求用户回忆。计算机应「记住」上下文。
- 人会犯错:错误是不可避免的。设计应预防错误发生,提供恢复机制,并在必要时提供帮助。
- 用户存在差异:用户在技能、经验、偏好上各不相同。
- 新手用户:不熟悉业务或系统,关注易学性。需要引导和清晰的导航,避免错误。
- 专家用户:长时间使用且技能熟练,关注效率性。需要快捷方式、命令行等高效操作。
- 熟练用户:介于两者之间,需要在易学性和效率性之间取得平衡。
- 交互偏好不同:有些用户偏爱图形化界面,有些则喜欢文本或命令行。
精神模型
精神模型
精神模型是用户对于一个系统(或任务)如何工作的内部认知和理解。用户基于这个模型来预测系统的行为并决定如何操作。
- 设计目标:HCI 设计应努力理解并匹配用户的精神模型。当系统行为符合用户的精神模型时,用户会觉得系统直观易用。
- 隐喻:精神模型常常包含隐喻,即用户将熟悉的现实世界概念(如桌面、文件夹、购物车)映射到软件界面上,以帮助理解和操作。设计时应谨慎选择和使用一致的隐喻。
- 例子:炉灶旋钮的布局应直观地对应加热单元的位置,否则用户需要额外记忆,容易出错(见 P19 炉灶图)。
- 发现模型:通过用户研究(访谈、观察)了解用户的目标、任务流程和现有习惯,从而推断其精神模型。避免仅因技术上容易实现而添加不符合用户任务模型的功能。
人因学/人为因素
人因学研究人与其工作环境、工具交互时的能力、局限性和其他特性,旨在优化人的福祉和整体系统性能。
- 认知人因学:与 HCI 最相关,关注感知、记忆、推理等心理过程,应用于认知负荷、决策、人机交互、可靠性等方面。
- 人因研究三要素:
- 使用者:年龄、职业、使用姿态、视力、认知负荷等。
- 设备:尺寸、显示能力(分辨率、色彩)、交互方式(触摸、语音)、交互时长等。
- 使用环境:物理环境(光线、噪音、距离)、社会环境(私人、公共)等。
计算机
指用户与之交互的软硬件系统。
人机交互设备
- 输入设备:键盘、鼠标、触控板、手写笔、麦克风、摄像头(用于手势识别等)。
- 输出设备:显示屏、扬声器、打印机、投影仪。
- 交互方式:隔空手势、眼动追踪等新兴技术也在不断发展。
可视化设计
将软件功能和数据通过图形化方式呈现给用户。
- 核心工作:布局和组织可视化构件(如窗口、菜单、按钮、表单、列表、树形控件、输入框等)。
- 设计要点:
- 基于任务模型和界面隐喻:设计应反映用户的任务流程和心智模型,而不是暴露软件内部的复杂实现机制。
- 展现功能和任务细节:在隐喻的基础上,清晰、有效地展示用户完成任务所需的功能和信息。
常见界面类型
名称 | 特征 | 人机交互控件 | 适合场景 |
---|---|---|---|
批处理 | 命令预设,机器一次性执行,用户不干预 | 无交互输入,行文本输出 | 无需人机交互 |
命令行 | 用户输入命令,机器执行一次 | 键盘输入(命令),命令行交互,行文本输出 | 执行固定任务的熟练用户 |
全屏 | 通过表单、菜单、导航键交互 | 键盘输入(命令、热键、信息),菜单/表单交互,二维全屏可视化输出 | 有限任务下的熟练用户 |
图形化 | 利用窗口、菜单、按钮、定位设备交互,面向对象,所见即所得(WYSIWYG) | 键盘、鼠标输入,直接操纵交互,多窗口、控件可视化输出 | 操作技能不熟练的普通用户 |
多维交互 | 可能用到声音、视频、手势等多种机制 | 多维输入/输出 | 更易用、个性化的场景 |
交互
人与计算机之间的信息交流过程。
交互的本质
交互是双向的:
- 用户主动向系统提出请求(输入信息)。
- 系统给予用户响应(输出信息)。
- 系统也应主动告知用户相关信息(如状态变化、错误提示)并等待用户响应。
交互的分类(基于输入方式)
- 基于触控:平板、手机等。
- 基于光标:鼠标、触摸板、AR/VR 手柄、隔空手势等指向设备。
- 基于焦点:电视遥控器、键盘导航等,通过切换焦点进行交互。
交互风格
风格 | 主要优点 | 主要缺点 | 应用实例 |
---|---|---|---|
直接操纵 | 快速直观,易学,用户有控制感,即时反馈 | 可能难实现,需良好视觉隐喻,复杂界面,导航可能困难 | 游戏,CAD 系统,图形编辑器 |
菜单选择 | 避免用户记忆命令,减少输入错误,可提供上下文帮助 | 对熟练用户可能较慢,菜单层级多时会变复杂 | 大多数通用系统 |
表单填写 | 简单数据录入,易学,可校验 | 占用屏幕空间,用户选项与字段不匹配时有问题 | 库存管理,信息录入系统 |
命令语言 | 功能强大灵活,适合复杂系统 | 难学难记,错误处理通常不佳,用户易出错 | 操作系统 Shell,专业软件 |
自然语言 | 对非专业用户友好,易扩展 | 需要更多输入,自然语言理解系统目前仍不可靠,可能产生歧义 | 信息检索,特定领域问答系统 |
导航
导航的目的
好的导航如同服务周到的推销员或清晰的餐厅菜单,能主动、简明地引导用户找到所需功能或信息的入口,使其符合用户的精神模型。
- 全局结构导航:组织软件整体功能,区分重要性与主题。常用控件包括窗口、菜单、列表、快捷方式、热键等。设计依据是功能分层和任务交互过程。
- 局部结构导航:通过界面布局细节(控件组合、按钮样式、文本颜色/大小等)制造视觉线索,引导用户在当前界面内操作。设计依据是用户关注的任务细节。
反馈
反馈的重要性
反馈是告知用户其操作结果或系统当前状态的关键机制。用户需要知道他们的操作是否被接收、是否成功、系统是否在处理等。
- 即时性:反馈应及时。Shneiderman 的响应时间经验:
- 打字、光标移动、鼠标定位:
- 简单频繁任务:
- 普通任务:
- 复杂任务:
- 超过 的延迟具有破坏性,需要提供进度指示。
- 明确性:反馈应清晰告知用户发生了什么。
协作式设计
核心思想是调整计算机因素以更好地适应和帮助用户(因为人的因素相对固定)。这体现了以用户为中心的设计理念。关键原则包括:
- 简洁性:避免不必要的复杂性,界面元素应清晰、直接。
- 一致性:在整个系统中,相似的操作和元素应具有一致的外观和行为,减少用户的学习负担和困惑。
- 低出错率设计:
- 预防:通过设计手段避免用户犯错(如禁用无效选项、输入格式限制)。
- 纠正:出错时提供清晰、有建设性、友好的错误信息(不用代码,语言精练,提供帮助),并引导用户修正。
- 恢复:提供撤销等错误恢复机制。
- 易记性设计(减轻记忆负担):
- 减少短期记忆负担:界面直接展示所需信息,而不是让用户回忆。
- 逐层递进展示信息:对于复杂信息,分层展示,逐步深入。
- 使用直观快捷方式:如图标、工具栏按钮,利用识别而非回忆。
- 设置有意义的缺省值:减少用户输入,符合常见场景。
人机交互设计过程
人机交互设计是一个迭代的过程,通常包括以下阶段:
graph LR
A[需求收集<br/>场景分析] --> 软件设计;
subgraph 软件设计
direction LR
B1[导航设计] --> B2[界面设计];
B2 --> B3[界面原型化];
B3 --> B4[界面评估与修正];
end
软件设计 --> C[构造、测试<br/>与维护];
B4 -- 反馈 --> B1;
B4 -- 反馈 --> B2;
B4 -- 反馈 --> B3;
style A fill:#f9f,stroke:#333,stroke-width:2px
style C fill:#ccf,stroke:#333,stroke-width:2px
- 需求开发:收集和分析用户需求,理解用户目标和使用场景。
- 软件设计:
- 导航设计:设计系统的整体信息架构和用户浏览路径。
- 界面设计:设计具体的界面布局、控件、视觉元素等。可以使用对话结构图来规划交互流程。
- 界面原型化:创建界面的可交互模型(低保真或高保真),用于测试和沟通。
- 界面评估与修正:通过用户测试、专家评审等方法评估原型,根据反馈进行修改。这是一个迭代的关键环节。
- 构造、测试与维护:基于最终设计实现、测试和维护软件。
ISO 13407 人本设计过程
该标准强调以用户为中心的设计流程:
- 明确使用环境。
- 明确用户和组织需求(包括可衡量的可用性目标)。
- 产生设计解决方案。
- 对照用户需求评估设计。
人机交互设计的黄金原则
三条广泛认可的核心原则:
- 让用户掌控全局:
- 用户应感觉自己是主导者,而非被动响应者。
- 提供灵活的交互方式(如可中断、可撤销操作)。
- 允许用户定制界面和交互。
- 隐藏技术细节,交互应基于用户任务模型。
- 减轻用户的记忆负担:
- 识别优于回忆:使用菜单、图标等可见选项,而非要求用户记住命令。
- 提供有意义的默认值。
- 提供视觉线索和上下文信息。
- 界面布局和信息组织应符合逻辑。
- 保持界面一致性:
- 在应用程序内部及系列应用程序之间,操作、术语、布局、颜色、图标等应保持一致。
- 一致性可减少学习成本,提高可预测性。
GUI 设计实践要点
- 尽早并全程让用户参与:从需求到评估,用户的反馈至关重要。
- 借鉴他人:研究竞争对手或类似产品的设计。
- 了解并利用局限性:在技术、资源、平台规范内进行设计。
- 确保可用性和可访问性:
- 可用性评估方法:
- 真实用户测试:观察典型用户执行任务。
- 专家评估/启发式评估:由专家根据原则检查界面。
- 认知走查:模拟用户思维过程检查任务流程。
- 用户反馈收集:问卷、访谈、焦点小组。
- 使用日志分析:分析用户实际使用数据。
- 可访问性:确保残障人士(视觉、听觉、运动、认知障碍)也能使用产品。这通常是法律要求,也惠及所有用户(如在嘈杂环境中使用)。考虑:
- 颜色对比度、字体大小可调。
- 键盘可完成所有操作。
- 为图像提供文本描述。
- 为音视频提供字幕或文字记录。
- 清晰的导航和指令。
- 可用性评估方法: