HIF / Документация / Нормативный контракт

Конституция интерфейса

Версия: 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 фиксировать исходные данные, полученные значения, семантические соответствия, обязательные пары, результаты автоматических проверок, проверку готового представления и проверку с участием людей, исключения, остаточные риски, ответственного и версию. Одобрения на основании вкуса или листа с образцами палитры недостаточно.