diff --git a/docs/product/search-relevance-review-interface-plan.md b/docs/product/search-relevance-review-interface-plan.md index a045398..b754e85 100644 --- a/docs/product/search-relevance-review-interface-plan.md +++ b/docs/product/search-relevance-review-interface-plan.md @@ -54,6 +54,31 @@ Правая панель предпочтительнее popup: она не блокируется браузером, сохраняет контекст выдачи и работает на одном экране с оценкой. +### Доступность оценки и документа + +Оценка реализуется нативной группой `radio` внутри `fieldset` с `legend` +«Оценка результата». У каждого значения есть видимая подпись: «0 — +нерелевантен», «1 — косвенно полезен», «2 — частично полезен», «3 — прямо +отвечает». Нельзя передавать смысл оценки только цветом. Все элементы управления +доступны с клавиатуры, имеют видимый `:focus-visible`; выбранный результат +обозначается текстом и визуальным состоянием. + +На узком экране список результатов занимает всю страницу. Кнопка «Открыть +документ» открывает полноэкранный нативный `` с явной кнопкой +«Закрыть». При закрытии фокус возвращается на исходную карточку результата. + +### Состояния + +- Во время поиска и сохранения показывается состояние загрузки; повторная + отправка на это время недоступна. +- Пустая выдача сообщает: «По запросу „…“ ничего не найдено» и предлагает + «Изменить запрос» или «Очистить фильтры». +- Ошибка поиска сообщает причину и предлагает «Повторить поиск». +- Ошибка сохранения сообщает: «Не удалось сохранить. Проверьте подключение и + повторите». Черновик остаётся в браузере. +- После сохранения выводится: «Оценка сохранена · № … · дата и время» в + стабильном `role="status"`. + До сохранения черновик хранится в `localStorage`. После успешного сохранения интерфейс показывает ID записи и время сохранения. @@ -105,6 +130,9 @@ Python, данные переживают перезапуск и легко в подпись и срок, самостоятельно формирует `results_json` и отклоняет оценки для отсутствующих либо подменённых позиций и документов. - Нельзя передавать персональные данные или закрытые материалы в комментариях. +- Кнопка «Сохранить оценку» остаётся доступной до отправки: отсутствующие + обязательные поля проверяются после нажатия, ошибка показана рядом с полем и + фокус переводится на первое некорректное поле. ## Анализ данных @@ -127,7 +155,8 @@ Python, данные переживают перезапуск и легко в 2. Добавить SQLite-хранилище, валидацию, сохранение и JSON-экспорт. 3. Добавить статическую внутреннюю страницу в существующий Python-сервер, без Next.js и отдельного публичного приложения. -4. Подключить поиск, правую панель документа, черновик и сохранение. +4. Подключить поиск, правую панель документа, черновик, адаптивный режим и + сохранение в закреплённой панели действий на широком экране. 5. Добавить минимальные backend-проверки сохранения, повторного запуска, экспорта и недопустимых оценок. 6. Провести ручный прогон на десяти русскоязычных практических запросах с