system-feedback
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesesystem-feedback
系统反馈
Каждое действие пользователя должно видимо сообщать о своём исходе, и каждое
состояние экрана должно быть спроектировано.
Это не косметика и не то, что откладывают до готового дизайна. Отсутствие
обратной связи — дефект поведения: человек не знает, сработало ли, и делает
действие дважды.
用户的每一次操作都必须直观地反馈执行结果,并且每个页面状态都需要经过设计。
这并非视觉美化工作,也不是可以推迟到设计收尾阶段才处理的事情。缺乏反馈属于功能缺陷:用户不知道操作是否成功,会重复执行操作。
Где применять
适用场景
- Применять при реализации любого действия: сохранение, копирование, удаление, отправка, загрузка, синхронизация.
- Применять при проектировании экрана, который что-то грузит или может упасть.
- Применять при разборе интерфейса, который «странно себя ведёт» или «непонятный».
- Не применять для визуальной полировки, тайминга анимаций, эстетики — это другая работа.
- 适用于任何操作的实现:保存、复制、删除、发送、上传、同步。
- 适用于设计需要加载数据或可能出现故障的页面。
- 适用于分析「行为异常」或「难以理解」的界面。
- 不适用于视觉润色、动画时长调整、美学优化——这些属于其他工作范畴。
Правила
规则
- Действие без ответа — сломанное действие. Даже если внутри всё отработало.
- Ответ должен быть заметен там, куда смотрит человек, а не там, где удобно разработчику.
- Молчание читается как «не сработало». Человек повторяет действие — и получает дубль или ошибку.
- Ошибка обязана говорить, что делать дальше, а не только что случилось.
- Пустое, загрузка и ошибка — такие же состояния, как основное. Не спроектированные, они всплывут у пользователя.
- Необратимое требует подтверждения; обратимое — отмены. Подтверждение на всё подряд перестают читать.
- 无反馈的操作等同于失效的操作。即使内部逻辑已正常执行。
- 反馈必须出现在用户的视线焦点区域,而非开发者认为方便的位置。
- 无反馈会被用户解读为「操作未成功」。用户会重复操作,进而导致重复数据或错误。
- 错误提示必须告知用户后续操作方法,而非仅说明发生了什么。
- 空状态、加载状态和错误状态与主状态同等重要。若未提前设计,这些状态会突然出现在用户面前。
- 不可逆操作需要确认;可逆操作需要取消选项。对所有操作都添加确认提示会让用户忽略提示内容。
Порядок работы
工作流程
1. Для каждого действия ответить: как человек поймёт, что оно сработало?
1. 针对每个操作,思考:用户如何得知操作已成功?
Если ответ «никак» или «данные же обновятся» — обратной связи нет.
Минимальные формы, от дешёвых:
| Форма | Когда подходит |
|---|---|
| Изменение самого элемента | результат виден прямо в нём (галочка, смена подписи) |
| Короткое сообщение рядом | результат не виден на экране (скопировано, отправлено) |
| Индикатор процесса | операция дольше момента |
| Отмена | действие обратимо и могло быть случайным |
Правило выбора: ответ тем ближе к месту действия, чем оно мельче. Тост в
углу экрана на нажатие кнопки в списке — человек его не увидит.
如果答案是「无法得知」或「数据会自动更新」——说明缺乏反馈。
最低成本的反馈形式,按成本从低到高排序:
| 形式 | 适用场景 |
|---|---|
| 操作元素自身变化 | 结果可直接在元素上体现(如勾选标记、文字切换) |
| 操作旁的简短提示 | 结果无法在当前页面直观显示(如复制成功、发送成功) |
| 进度指示器 | 操作耗时超过瞬间 |
| 取消选项 | 操作可逆且可能是误操作 |
选择原则:操作越细微,反馈位置应越靠近操作区域。点击列表中的按钮后在屏幕角落弹出提示——用户很可能看不到。
2. Для операции дольше мгновения — показать, что идёт
2. 针对耗时超过瞬间的操作——展示执行状态
Если задержка становится заметной — обычно после нескольких сотен миллисекунд —
показать признак работы. Точный порог зависит от действия и платформы.
Если операция длится больше пары секунд и прогресс можно честно оценить —
показывать его. Если оценить нельзя, использовать индикатор и коротко объяснить,
что именно происходит.
当延迟变得明显时(通常为数百毫秒后),需展示正在执行的标识。具体阈值取决于操作类型和平台。
如果操作耗时超过数秒且可准确评估进度——展示进度条。如果无法评估进度,使用加载指示器并简要说明当前正在执行的内容。
3. Спроектировать все состояния экрана
3. 设计所有页面状态
Обязательный набор:
- пусто — ничего ещё нет; сказать, что сделать, а не просто «список пуст»
- загрузка — данных ещё нет, но они будут
- ошибка — что случилось и что делать
- основное — данные есть
- край — слишком много, слишком длинное имя, нет прав
Пустое состояние формулируется как действие: не «Заметок нет», а «Начни с
поля внизу». Пустой экран — это место, где человек ещё не начал, и ему нужен
следующий шаг.
必备状态集合:
- 空状态:尚无任何内容;需告知用户下一步操作,而非仅显示「列表为空」
- 加载状态:数据尚未加载完成,但即将呈现
- 错误状态:说明发生了什么以及如何解决
- 主状态:已有数据展示
- 边界状态:数据过多、名称过长、无权限等
空状态的表述应以行动为导向:不说「无笔记」,而是「从下方输入框开始创建」。空页面是用户尚未开始操作的区域,需要引导他们进行下一步。
4. Ошибки — по формуле
4. 错误提示遵循以下公式
Три части, в этом порядке:
- Что произошло — без внутренних терминов и кодов
- Что делать — конкретное действие, а не «попробуйте позже»
- Что будет дальше, если известно (данные сохранены, повтор через минуту)
Плохо: «Ошибка синхронизации (код 42)».
Хорошо: «Не удалось синхронизировать — нет сети. Изменения сохранены локально и
уйдут, когда соединение появится».
包含三个部分,顺序如下:
- 发生了什么——避免使用内部术语和错误代码
- 如何解决——给出具体操作,而非仅说「稍后重试」
- 后续情况(若已知):如数据已保存、一分钟后自动重试等
反面示例:「同步错误(代码42)」
正面示例:「同步失败——无网络连接。修改内容已本地保存,将在恢复连接后自动同步。」
5. Для необратимого — подтверждение, для обратимого — отмена
5. 不可逆操作需确认,可逆操作需提供取消选项
Отмена лучше подтверждения почти всегда: не тормозит обычный путь и спасает от
случайности.
Подтверждение оставить для действительно необратимого — и в нём называть
последствие («будет удалено 12 записей»), а не просто «вы уверены?».
取消选项几乎总是优于确认选项:不会干扰正常操作流程,同时能避免误操作。
仅对真正不可逆的操作保留确认提示——且提示中需说明后果(如「将删除12条记录」),而非仅问「您确定吗?」
Проверка
检查方法
Пройти по экрану и для каждого элемента, который можно нажать, ответить:
- что произойдёт;
- как я об этом узнаю;
- что будет, если не получится;
- можно ли отменить.
Ответ «никак / не узнаю» на второй вопрос — дефект.
遍历页面中的每个可点击元素,回答以下问题:
- 会发生什么?
- 我如何得知操作结果?
- 如果操作失败会怎样?
- 是否可以取消操作?
若第二个问题的答案是「无法得知/不知道」——则属于缺陷。
Подробнее
更多详情
- — эвристики, которые чаще всего нарушают
references/01-heuristics.md - — чеклист по типам действий
references/02-checklist.md
- ——最常被违反的设计原则
references/01-heuristics.md - ——按操作类型分类的检查清单
references/02-checklist.md