UX design 是一个用于 Windows 应用单个功能的 UX 设计流程技能。它强调“功能能用”不等于“用户不困惑”,因此在写任何代码之前先确定:事物叫什么、人如何走完流程、功能在哪里打开、提示与错误说什么。
用途 每新增一个界面、动作或文案的故事运行一次。产出是写入 docs/STORIES.md 中该故事下的 UX: 区块,以及 docs/GLOSSARY.md 中新增的术语。如果要审查已经做好的界面,则对它的快照(tools/snap.ps1)执行相同步骤,并按严重程度从高到低列出失败项。
主要能力 流程分为 8 个步骤: 0. 阅读:阅读 docs/BRIEF.md、docs/GLOSSARY.md(缺失则创建)、故事本身及其参考截图。
- 命名:应用中的每个事物只有一个名字,且每个名字都进入术语表;先命名名词再命名动作;使用用户的语言而非代码语言;系统操作沿用 Windows 的用词(Settings、Exit、Close、Undo、Delete、Permanently delete);同一概念在按钮、菜单、标题、工具提示和错误中只用一个词;功能名按对用户的作用命名而非技术。
- 绘制流程:用一行写出从所有入口到明确终点的流程,列出所有入口(键盘快捷键、命令栏、菜单、上下文菜单、拖放、托盘图标),削减步骤、提供合理默认值,每步都有退路(Esc 取消、Ctrl+Z 撤销),终点可见。
- 选择承载方式:按从轻到重的列表选择第一个合适的——内联、详情窗格、浮出、教学提示、侧窗格、内容对话框、新窗口、导航页、托盘图标浮出、确认、问题提示、InfoBar。同一时间只显示一个对话框,不在浮出中打开浮出、不在对话框中打开对话框;对话框标题命名任务,Enter 确认、Esc 取消,主按钮写明动作。
- 覆盖状态:每个视图都要有空、加载、错误、内容过多、完成状态的文案与外观;加载仅在可能超过半秒时出现,先显示缓存内容;长名称用省略号并在工具提示显示全文;列表需虚拟化以保证千行滚动流畅。
- 撰写文案:按钮和菜单项以动词开头;需要更多输入时加省略号;全站使用句子式大小写;错误说明发生了什么和如何修复,不归咎用户;确认重复动作本身(如“Delete 3 tasks?”配“Delete”和“Cancel”);使用 AI 的功能还需遵循 ai-features.md。
- 添加工具提示:每个纯图标按钮都要有工具提示,格式为“动作(快捷键)”;带 KeyboardAccelerator 且未自设工具提示的按钮会自动显示“Label (Ctrl+N)”,自设则需自行写入快捷键;悬停反馈立即显示且不改变布局,悬停只增加细节,必要信息始终可见。
- 检查无障碍:整个流程可仅用键盘完成,焦点顺序合理、焦点矩形可见;讲述人朗读用词与屏幕一致;含义不单独依赖颜色;文字不小于 12 epx 并使用字体样式梯度;关闭动画效果时改为淡入或无动画;自定义控件具备名称、值、键盘操作与反馈;使用 Accessibility Insights for Windows(FastPass)检查无失败项。
- 编写 UX 区块:在故事的验收行下方添加结果,包含 Flow、Surface、States、Words、Access 五部分,完成条件是故事有 UX: 区块、所用术语都在 docs/GLOSSARY.md 中,且步骤 1 至 7 在其快照上通过。
使用方式 按步骤顺序执行;每个步骤末尾都有检查项。输出写入指定文档,审查时对快照运行同样步骤。
适用场景 面向 Windows 应用(文中提及 WinUI)的功能级 UX 设计与审查,尤其适合需要统一术语、明确交互承载方式、规范文案与工具提示、检查键盘与讲述人无障碍的团队流程。
限制 资料面向 Windows 应用与 WinUI,未说明适用于其他平台;部分细节指向外部参考文件(writing.md、presentation.md、ai-features.md、accessibility.md),其内容暂未提供;工具脚本(tools/snap.ps1、build.ps1)与 SeedData.cs 的具体实现暂未提供。