人机交互

AI WARNING

未进行对照审核。

人机交互设计导论

人机交互设计(HCI Design)

人机交互设计(Human-Computer Interaction Design)旨在探索和实现人与计算机界面之间最高效、可用且有效的交互体验。其核心是设计出能够让用户轻松、自然、愉悦地与系统互动的界面。

用户通常通过界面而非功能来评价一个系统。糟糕的界面设计不仅会导致用户沮丧,还可能引发严重的操作失误,甚至导致软件系统被弃用。

什么是好的人机交互设计?

  • 易用、自然、吸引人:鼓励用户与系统进行流畅的交互。
  • 符合用户预期:如 Joel Spolsky 所言:「一个用户界面设计良好,当程序行为完全符合用户预期时。」
  • 任务导向:让用户能够顺利完成他们的目标任务。
  • 透明性:优秀的用户界面应该是透明的,让用户专注于任务本身,忘记他们正在使用计算机。

评价标准:可用性

可用性是衡量人机交互设计好坏的关键多维度属性,它并非单一指标。

可用性五要素

  1. 易学性:用户能多快地学会使用系统完成基本任务?
  2. 效率性:熟练用户能多快地通过界面完成任务?
  3. 易记性:用户在一段时间未使用后,重新使用时是否容易记起如何操作?是否需要从头学起?
  4. 出错率:用户在使用过程中出错的频率和严重程度如何?能否轻松地从错误中恢复?
  5. 主观满意度:用户在使用系统时是否感到愉悦和满意?

易学性效率性之间常常存在冲突。简单的界面易于上手(对新手友好),但可能缺乏高级功能或快捷方式,导致专家用户效率不高。复杂的界面可能学习曲线陡峭,但一旦掌握,效率极高。

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 最相关,关注感知、记忆、推理等心理过程,应用于认知负荷、决策、人机交互、可靠性等方面。
  • 人因研究三要素
    1. 使用者:年龄、职业、使用姿态、视力、认知负荷等。
    2. 设备:尺寸、显示能力(分辨率、色彩)、交互方式(触摸、语音)、交互时长等。
    3. 使用环境:物理环境(光线、噪音、距离)、社会环境(私人、公共)等。

计算机

指用户与之交互的软硬件系统。

人机交互设备

  • 输入设备:键盘、鼠标、触控板、手写笔、麦克风、摄像头(用于手势识别等)。
  • 输出设备:显示屏、扬声器、打印机、投影仪。
  • 交互方式:隔空手势、眼动追踪等新兴技术也在不断发展。

可视化设计

将软件功能和数据通过图形化方式呈现给用户。

  • 核心工作:布局和组织可视化构件(如窗口、菜单、按钮、表单、列表、树形控件、输入框等)。
  • 设计要点
    1. 基于任务模型和界面隐喻:设计应反映用户的任务流程和心智模型,而不是暴露软件内部的复杂实现机制。
    2. 展现功能和任务细节:在隐喻的基础上,清晰、有效地展示用户完成任务所需的功能和信息。

常见界面类型

名称 特征 人机交互控件 适合场景
批处理 命令预设,机器一次性执行,用户不干预 无交互输入,行文本输出 无需人机交互
命令行 用户输入命令,机器执行一次 键盘输入(命令),命令行交互,行文本输出 执行固定任务的熟练用户
全屏 通过表单、菜单、导航键交互 键盘输入(命令、热键、信息),菜单/表单交互,二维全屏可视化输出 有限任务下的熟练用户
图形化 利用窗口、菜单、按钮、定位设备交互,面向对象,所见即所得(WYSIWYG) 键盘、鼠标输入,直接操纵交互,多窗口、控件可视化输出 操作技能不熟练的普通用户
多维交互 可能用到声音、视频、手势等多种机制 多维输入/输出 更易用、个性化的场景

交互

人与计算机之间的信息交流过程。

交互的本质

交互是双向的:

  1. 用户主动向系统提出请求(输入信息)。
  2. 系统给予用户响应(输出信息)。
  3. 系统也应主动告知用户相关信息(如状态变化、错误提示)并等待用户响应。

交互的分类(基于输入方式)

  • 基于触控:平板、手机等。
  • 基于光标:鼠标、触摸板、AR/VR 手柄、隔空手势等指向设备。
  • 基于焦点:电视遥控器、键盘导航等,通过切换焦点进行交互。

交互风格

风格 主要优点 主要缺点 应用实例
直接操纵 快速直观,易学,用户有控制感,即时反馈 可能难实现,需良好视觉隐喻,复杂界面,导航可能困难 游戏,CAD 系统,图形编辑器
菜单选择 避免用户记忆命令,减少输入错误,可提供上下文帮助 对熟练用户可能较慢,菜单层级多时会变复杂 大多数通用系统
表单填写 简单数据录入,易学,可校验 占用屏幕空间,用户选项与字段不匹配时有问题 库存管理,信息录入系统
命令语言 功能强大灵活,适合复杂系统 难学难记,错误处理通常不佳,用户易出错 操作系统 Shell,专业软件
自然语言 对非专业用户友好,易扩展 需要更多输入,自然语言理解系统目前仍不可靠,可能产生歧义 信息检索,特定领域问答系统

导航

导航的目的

好的导航如同服务周到的推销员或清晰的餐厅菜单,能主动、简明地引导用户找到所需功能或信息的入口,使其符合用户的精神模型。

  • 全局结构导航:组织软件整体功能,区分重要性与主题。常用控件包括窗口、菜单、列表、快捷方式、热键等。设计依据是功能分层和任务交互过程。
  • 局部结构导航:通过界面布局细节(控件组合、按钮样式、文本颜色/大小等)制造视觉线索,引导用户在当前界面内操作。设计依据是用户关注的任务细节。

反馈

反馈的重要性

反馈是告知用户其操作结果或系统当前状态的关键机制。用户需要知道他们的操作是否被接收、是否成功、系统是否在处理等。

  • 即时性:反馈应及时。Shneiderman 的响应时间经验:
    • 打字、光标移动、鼠标定位:50 150ms\pu{50 \sim 150 ms}
    • 简单频繁任务:1 s\pu{1 s}
    • 普通任务:2 4s\pu{2 \sim 4 s}
    • 复杂任务:8 12s\pu{8 \sim 12 s}
    • 超过 15 s\pu{15 s} 的延迟具有破坏性,需要提供进度指示。
  • 明确性:反馈应清晰告知用户发生了什么。

协作式设计

核心思想是调整计算机因素以更好地适应和帮助用户(因为人的因素相对固定)。这体现了以用户为中心的设计理念。关键原则包括:

  • 简洁性:避免不必要的复杂性,界面元素应清晰、直接。
  • 一致性:在整个系统中,相似的操作和元素应具有一致的外观和行为,减少用户的学习负担和困惑。
  • 低出错率设计
    • 预防:通过设计手段避免用户犯错(如禁用无效选项、输入格式限制)。
    • 纠正:出错时提供清晰、有建设性、友好的错误信息(不用代码,语言精练,提供帮助),并引导用户修正。
    • 恢复:提供撤销等错误恢复机制。
  • 易记性设计(减轻记忆负担):
    • 减少短期记忆负担:界面直接展示所需信息,而不是让用户回忆。
    • 逐层递进展示信息:对于复杂信息,分层展示,逐步深入。
    • 使用直观快捷方式:如图标、工具栏按钮,利用识别而非回忆。
    • 设置有意义的缺省值:减少用户输入,符合常见场景。

人机交互设计过程

人机交互设计是一个迭代的过程,通常包括以下阶段:

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
  1. 需求开发:收集和分析用户需求,理解用户目标和使用场景。
  2. 软件设计
    • 导航设计:设计系统的整体信息架构和用户浏览路径。
    • 界面设计:设计具体的界面布局、控件、视觉元素等。可以使用对话结构图来规划交互流程。
    • 界面原型化:创建界面的可交互模型(低保真或高保真),用于测试和沟通。
    • 界面评估与修正:通过用户测试、专家评审等方法评估原型,根据反馈进行修改。这是一个迭代的关键环节。
  3. 构造、测试与维护:基于最终设计实现、测试和维护软件。

ISO 13407 人本设计过程

该标准强调以用户为中心的设计流程:

  1. 明确使用环境。
  2. 明确用户和组织需求(包括可衡量的可用性目标)。
  3. 产生设计解决方案。
  4. 对照用户需求评估设计。

人机交互设计的黄金原则

三条广泛认可的核心原则:

  1. 让用户掌控全局
    • 用户应感觉自己是主导者,而非被动响应者。
    • 提供灵活的交互方式(如可中断、可撤销操作)。
    • 允许用户定制界面和交互。
    • 隐藏技术细节,交互应基于用户任务模型。
  2. 减轻用户的记忆负担
    • 识别优于回忆:使用菜单、图标等可见选项,而非要求用户记住命令。
    • 提供有意义的默认值。
    • 提供视觉线索和上下文信息。
    • 界面布局和信息组织应符合逻辑。
  3. 保持界面一致性
    • 在应用程序内部及系列应用程序之间,操作、术语、布局、颜色、图标等应保持一致。
    • 一致性可减少学习成本,提高可预测性。

GUI 设计实践要点

  • 尽早并全程让用户参与:从需求到评估,用户的反馈至关重要。
  • 借鉴他人:研究竞争对手或类似产品的设计。
  • 了解并利用局限性:在技术、资源、平台规范内进行设计。
  • 确保可用性和可访问性
    • 可用性评估方法
      • 真实用户测试:观察典型用户执行任务。
      • 专家评估/启发式评估:由专家根据原则检查界面。
      • 认知走查:模拟用户思维过程检查任务流程。
      • 用户反馈收集:问卷、访谈、焦点小组。
      • 使用日志分析:分析用户实际使用数据。
    • 可访问性:确保残障人士(视觉、听觉、运动、认知障碍)也能使用产品。这通常是法律要求,也惠及所有用户(如在嘈杂环境中使用)。考虑:
      • 颜色对比度、字体大小可调。
      • 键盘可完成所有操作。
      • 为图像提供文本描述。
      • 为音视频提供字幕或文字记录。
      • 清晰的导航和指令。