Конституция интерфейса
Версия: 0.1
Этот документ содержит универсальные требования HIF. Профиль продукта MAY делать требования строже, но MUST NOT ослаблять их без зарегистрированного исключения и оценки риска.
1. Контекст и назначение
HIF-CTX-001. Явная цель
Интерфейс MUST быть спроектирован вокруг определённых пользователей, задач и контекстов, а не вокруг доступных технологий или набора компонентов.
HIF-CTX-002. Границы продукта
Интерфейс MUST честно различать доступную функцию, прототип, демонстрацию, планируемую возможность и внешнюю зависимость.
HIF-CTX-003. Уровень риска
Для существенных действий MUST быть определён риск ошибки. Сила предупреждения, подтверждения и восстановления MUST быть соразмерна риску.
2. Объекты и идентичность
HIF-OBJ-001. Стабильная идентичность
Объект MUST сохранять идентичность при смене представления, темы, устройства и контекста, пока продуктовая модель не определяет создание нового объекта.
HIF-OBJ-002. Объект не равен представлению
Удаление, закрытие или скрытие представления MUST NOT неявно удалять объект, данные или доступ, если это разные сущности.
HIF-OBJ-003. Различимые типы
Типы сущностей с существенно разными последствиями MUST быть различимы в терминологии, состоянии и доступных командах.
HIF-OBJ-004. Происхождение
Если происхождение влияет на доверие, права или безопасность, оно MUST быть доступно человеку до существенного действия.
3. Команды и последствия
HIF-CMD-001. Семантическая команда
Значимое действие MUST быть представлено системной командой с определёнными предусловиями, эффектом, правами, обратимостью и результатом.
HIF-CMD-002. Независимость от жеста
Смысл команды MUST быть независим от конкретного pointer, touch, keyboard, voice или automation binding.
HIF-CMD-003. Правдивое имя
Название и описание команды MUST соответствовать фактическому эффекту.
HIF-CMD-004. Доступность команды
Недоступная команда MUST либо объяснять причину недоступности, либо не предлагаться, если объяснение не несёт пользы. Она MUST NOT выглядеть доступной и молча игнорировать ввод.
HIF-CMD-005. Идемпотентность
Команда SHOULD быть идемпотентной, когда повторное применение не имеет самостоятельного смысла. Система MUST защищать от непреднамеренного повторного запуска материально значимого действия.
4. Состояние
HIF-STA-001. Видимость состояния
Состояние, необходимое для принятия решения, MUST быть доступно в момент решения.
HIF-STA-002. Различимость
Active, selected, focused, checked, expanded, enabled, pending, completed и error MUST моделироваться раздельно, когда различие существует в продукте.
HIF-STA-003. Источник истины
Одно состояние MUST иметь один нормативный источник истины. Несколько представлений MAY отображать его, но не должны расходиться семантически.
HIF-STA-004. Persistence
Для изменяемого состояния MUST быть определена длительность и область хранения. Существенная временность MUST быть понятна пользователю.
HIF-STA-005. Конкурентные изменения
Если состояние может измениться другим участником, устройством или процессом, интерфейс MUST обнаруживать конфликт и не выдавать устаревшее состояние за актуальное.
5. Обратная связь
HIF-FBK-001. Принятие действия
Система MUST различимо подтвердить принятие действия либо немедленно объяснить отказ.
HIF-FBK-002. Ход операции
Операция, не завершающаяся немедленно, MUST показывать релевантное состояние выполнения. Индикатор SHOULD передавать фактический прогресс, если он известен.
HIF-FBK-003. Завершение
Результат MUST быть доступен в месте и форме, связанных с исходной задачей.
HIF-FBK-004. Фоновое изменение
Существенное изменение вне текущего focus MUST быть доступно без неоправданного прерывания.
HIF-FBK-005. Истина выше оптимизма
Optimistic UI MAY использоваться только тогда, когда интерфейс различает предполагаемый и подтверждённый результат и способен корректно восстановиться.
6. Ошибки и восстановление
HIF-ERR-001. Предотвращение
Система SHOULD предотвращать вероятные и дорогостоящие ошибки до их совершения, не блокируя безопасное исследование.
HIF-ERR-002. Ответственность системы
Сообщение MUST описывать проблему без обвинения пользователя и различать ошибку ввода, ограничение системы, отказ зависимости и недостаток прав.
HIF-ERR-003. Восстановление
Сообщение об ошибке MUST предлагать следующий шаг, если система его знает.
HIF-ERR-004. Сохранение работы
Ошибка в одной части операции SHOULD NOT уничтожать корректные данные или работу, которые возможно безопасно сохранить.
HIF-ERR-005. Undo
Безопасно обратимые действия SHOULD предоставлять Undo. Необратимые действия MUST быть явно отделены и подтверждены соразмерно последствиям.
7. Навигация и focus
HIF-NAV-001. Ориентация
Человек MUST иметь возможность понять текущее место, доступные направления и способ возврата.
HIF-NAV-002. Предсказуемость
Переход MUST соответствовать обозначению инициатора и не менять контекст неожиданно.
HIF-NAV-003. Focus
Keyboard focus MUST быть видимым, программно определимым и перемещаться предсказуемо.
HIF-NAV-004. Восстановление focus
После закрытия временного слоя focus MUST возвращаться к логически связанному инициатору или безопасной точке продолжения.
HIF-NAV-005. Escape
Временные menu, dialog, overlay, mode и captured interaction MUST иметь обнаруживаемый способ выхода, если выход не запрещён необходимым процессом безопасности.
8. Способы ввода
HIF-INP-001. Независимость основной функции
Основная функция MUST NOT зависеть только от точного pointer, drag, hover, multi-touch gesture, цвета, звука или временного паттерна ввода.
HIF-INP-002. Эквивалентность
Альтернативные способы ввода MUST приводить к одной семантической команде и одинаковым последствиям.
HIF-INP-003. Конфликты
Shortcut и gesture MUST учитывать соглашения платформы, браузера, assistive technology и пользовательские настройки.
HIF-INP-004. Видимость shortcuts
Профессиональные ускорители SHOULD быть обнаруживаемы, а не существовать только в документации.
9. Доступность и адаптация
HIF-A11Y-001. Архитектурная доступность
Роль, имя, состояние, отношения и команды компонента MUST быть частью его контракта, а не добавляться после визуальной реализации.
HIF-A11Y-002. Предпочтения человека
Пользовательские параметры размера, контраста, движения, прозрачности, языка, ввода и assistive technologies MUST иметь приоритет над декоративной темой.
HIF-A11Y-003. Reflow
Интерфейс MUST адаптироваться к поддерживаемым размерам и масштабированию без потери основной функции либо предоставлять полноценный альтернативный профиль.
HIF-A11Y-004. Отказ от исключения
Если контекст физически не поддерживается, интерфейс MUST объяснять ограничение и предоставлять следующий доступный путь, когда он существует.
10. Содержание и язык
HIF-CNT-001. Язык пользователя
Текст MUST описывать задачу и последствия на языке домена пользователя, а не внутренней реализации.
HIF-CNT-002. Конкретность
Label, instruction и error MUST быть конкретными настолько, насколько это необходимо для правильного действия.
HIF-CNT-003. Локализация
Композиция MUST учитывать изменение длины, направления письма, форматов, грамматики и культурных соглашений.
HIF-CNT-004. Машинная и человеческая форма
Технический идентификатор MAY отображаться дополнительно, но MUST NOT заменять понятное человеку имя без доменной необходимости.
11. Приватность, безопасность и доверие
HIF-TRU-001. Информированное действие
До передачи данных, изменения прав или материального обязательства человек MUST получить понятную существенную информацию.
HIF-TRU-002. Симметрия выбора
Согласие и отказ MUST быть сопоставимы по ясности и усилию, если право не требует другого процесса.
HIF-TRU-003. Least privilege
Интерфейс MUST запрашивать только необходимые права, в момент возникновения понятной потребности.
HIF-TRU-004. Деструктивные действия
Система MUST показывать объект, масштаб и обратимость разрушительного действия.
HIF-TRU-005. Отсутствие dark patterns
Интерфейс MUST NOT использовать скрытые последствия, подмену выбора, искусственную срочность, затруднённый отказ или визуальное принуждение.
12. Автоматизация и AI
HIF-AUT-001. Предложение не равно выполнению
Сгенерированное предложение, план, preview и выполненное изменение MUST быть различимы.
HIF-AUT-002. Граница полномочий
Автоматизация MUST действовать только в пределах предоставленных полномочий и показывать необходимость их расширения до действия.
HIF-AUT-003. Проверяемое намерение
Перед существенным действием система MUST представить человеку объект, ожидаемый эффект и необратимые последствия.
HIF-AUT-004. Наблюдаемость
Автоматизированные действия MUST оставлять доступную историю, достаточную для понимания результата и восстановления.
HIF-AUT-005. Исправимость
Человек MUST иметь возможность остановить, отклонить или исправить автоматизацию, кроме строго ограниченных процессов, где это создаёт больший риск и явно объяснено.
HIF-AUT-006. Неопределённость
AI-интерфейс MUST NOT выдавать предположение за подтверждённый факт. Уровень и форма раскрытия неопределённости SHOULD соответствовать риску решения.
13. Производительность и устойчивость
HIF-PERF-001. Готовность
Визуальная готовность MUST соответствовать фактической способности принять ввод.
HIF-PERF-002. Стабильность
Поздняя загрузка MUST NOT непредсказуемо перемещать активную цель или изменять эффект текущего действия.
HIF-PERF-003. Progressive enhancement
Основная информация и безопасная функция SHOULD сохраняться при отказе необязательных эффектов, медленной сети или ограниченном устройстве.
HIF-PERF-004. Сохранение результата
Разрыв соединения или перезапуск SHOULD NOT уничтожать подтверждённую работу, если продукт способен хранить её безопасно.
14. Визуальная система
HIF-VIS-001. Иерархия
Визуальная иерархия MUST соответствовать значимости, структуре и порядку действий.
HIF-VIS-002. Состояние не только цветом
Цвет MUST NOT быть единственным носителем существенного состояния.
HIF-VIS-003. Согласованность смысла
Одинаковое представление SHOULD означать одинаковую роль и эффект. Разные последствия SHOULD быть различимы.
HIF-VIS-004. Тема не меняет семантику
Тема, оформление и профиль бренда MUST NOT изменять объектную модель, права, команды или семантику доступности.
HIF-VIS-005. Сторонние материалы
Asset MUST иметь проверенные происхождение, лицензию и требования атрибуции до включения в распространяемый продукт.
15. Цветовая система
HIF-COL-001. Сначала семантика, потом образцы цвета
Информация, действие, иерархия и состояние, представленные цветовой ролью, MUST быть определены до выбора цветового значения. Фирменный исходный цвет или предпочтительный образец MUST NOT определять семантику интерфейса.
HIF-COL-002. Объявленный цветовой контракт
Каждая цветовая система MUST объявлять рабочие и выходные цветовые пространства, базовый цветовой охват, необязательные расширенные охваты, правила преобразования и приведения к цветовому охвату, точность и версии алгоритмов.
HIF-COL-003. Управляемый акцент
Каждый профиль продукта MUST определять правила площади, цветности и визуального акцента. Цвета высокой цветности MUST быть закреплены за определёнными ролями и MUST NOT заставлять несвязанные области или действия конкурировать за внимание.
HIF-COL-004. Воспроизводимое построение
Созданная палитра MUST воспроизводиться по зафиксированным исходным цветам, ограничениям, целевым значениям светлоты, правилам цветности и цветового охвата и версии алгоритма. Ручные исключения MUST быть явными, обоснованными и доступными для пересмотра.
HIF-COL-005. Граница семантических токенов
Код продукта и компонентов MUST использовать семантические или компонентные цветовые токены, а не названия исходной палитры или неуправляемые цветовые литералы. Тема MAY переназначать семантический токен, но MUST NOT менять его смысл.
HIF-COL-006. Контраст готового представления
Обязательные сочетания переднего плана, фона, границ, фокуса и состояний MUST соответствовать применимому контракту контраста во всех поддерживаемых режимах и состояниях. Расчёт образцов палитры MUST NOT подменять проверку готового представления.
HIF-COL-007. Смысл не только в цвете
Существенная информация, статус, результат проверки и инструкция MUST иметь достаточную нецветовую подсказку, чтобы смысл можно было определить, когда цвет недоступен или неразличим.
HIF-COL-008. Независимые режимы и предпочтения
Светлая и тёмная схемы, предпочтения контраста, принудительные системные цвета, варианты бренда и адаптация к среде MUST моделироваться как независимые измерения. Настройки доступности пользователя и платформы имеют приоритет над точностью фирменного оформления.
HIF-COL-009. Полная матрица состояний
Для каждой интерактивной роли MUST быть заданы и проверены обычное состояние, наведение, нажатие, видимый фокус, выбор, отключение, только чтение, ошибка, занятость и необходимые сочетания состояний. Состояния, требующие различимого смысла или контраста, MUST NOT выводиться только фиксированным изменением прозрачности.
HIF-COL-010. Безопасный резервный цветовой охват
Каждый обязательный цветовой токен MUST иметь соответствующее требованиям значение в базовом цветовом охвате. Расширенный охват MAY усиливать выразительность, но резервный вариант MUST сохранять иерархию, контраст, различимость состояний и смысл.
HIF-COL-011. Свидетельства до выпуска
Выпуск цветовой системы MUST фиксировать исходные данные, полученные значения, семантические соответствия, обязательные пары, результаты автоматических проверок, проверку готового представления и проверку с участием людей, исключения, остаточные риски, ответственного и версию. Одобрения на основании вкуса или листа с образцами палитры недостаточно.