feat: polish search review interface #33
Reference in New Issue
Block a user
Delete Branch "feature/polish-review-interface"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что изменено
/review;Проверки
python3 -m unittest discover -s backend -v— 28 tests passed, 1 skipped;/reviewwith HTTP 200 and is healthy.PR #33 review: BLOCK —
backend/search/review.html:72,74,162: tutorial usesdialog.showModal()while its highlighted targets remain in the ordinary DOM; the modal backdrop covers them, so the promised visual spotlight is not reliable. Other findings: MEDIUMreview.html:54-57hidden 1px radios have no visible keyboard focus; MEDIUMreview.html:20,88-91mobile fixed save bar can cover the last rating; MEDIUMreview.html:161,168unguarded localStorage can prevent tutorial close/auto-open when storage is blocked; LOW stale Backend 0.9.1 inREADME.md:62,backend/README.md:3,243,docs/README.md:42. Checks: backend unittest 28 passed, 1 skipped; diff check clean. Browser/AT verification not run (no browser runtime).Повторный полный review PR #33 после
503cb1f.Blocking finding:
backend/search/review.html:86-87,127-130,164: на ширине <=800px.review__document(targetdocument-panel) имеетdisplay: none, но шаг 3 tutorial всё равно измеряет и подсвечивает этот элемент. У скрытого элементаgetBoundingClientRect()даёт нулевой размер, поэтому spotlight оказывается пустым прямоугольником у верхнего края; при этом реальный mobile-сценарий открывает документ вdocument-dialogтолько после выбора результата. На мобильном ключевая подсказка фактически не указывает, куда нажать. Нужен отдельный mobile target/текст или адаптация шага под dialog после поиска.Проверка прежних findings:
Checks:
git diff --check: clean;Итог: BLOCK до исправления mobile tutorial step 3.
Независимый полный review PR #33 на head
503cb1f(base main).BLOCKING FINDING — HIGH:
backend/search/review.html:86-87,127-130,164. На ширине<=800px.review__document/#document-panelскрыт черезdisplay:none, но шаг 3 tutorial всё равно вызываетgetBoundingClientRect()для этого target и строит spotlight. Размер скрытого элемента нулевой, поэтому на мобильном ключевая подсказка не указывает, куда нажать; фактический документ открывается в другом#document-dialogпосле выбора результата. Нужен мобильный target/текст либо адаптация шага к mobile-сценарию.Проверено заново: backend unittest — 28 passed, 1 skipped; embedded JS syntax — OK;
git diff --check— clean. Accessibility/UI: focus у radio предусмотрен, localStorage и версии синхронизированы; браузерная/AT-проверка недоступна. Тесты проверяют только наличие tutorial-разметки и не ловят responsive-регрессию. Итог: BLOCK — до исправления mobile tutorial step 3.Финальный полный read-only review PR #33 после
90298fa(head90298fa6cce6ffb4b9b889548f1fec854eb91f46, basemain).Итог: APPROVE — blocking findings отсутствуют.
Проверка предыдущего mobile HIGH: исправлено. На ширине
<=800pxшаг 3 tutorial временно добавляетreview__document--tour-visible, поэтому#document-panelбольше не измеряется как скрытый элемент; при закрытии tutorial класс удаляется. Desktop spotlight и прежние исправления focus/localStorage/mobile save-bar/версий сохранены.Проверено: полный diff
main...90298fa; backend unittest — 28 passed, 1 skipped (OpenSearch integration безAKYLDASH_OPENSEARCH_URL); embedded JS syntax — OK;git diff --check— clean. Проверены корректность, регрессии, UI polish, keyboard/a11y markup, security-sensitive DOM paths, тесты и версии. Browser visual/AT прогон не выполнен: browser runtime недоступен; тесты tutorial остаются статическими и не проверяют responsive DOM-поведение. Это ограничение проверки, но не blocking finding.Финальный независимый review строго текущего head
90298fa6cce6ffb4b9b889548f1fec854eb91f46(старые комментарии не учитывал).Mobile tutorial step 3:
.review__document--tour-visible { display: block; }действительно делает скрытый#document-panelвидимым на mobile, поэтому прежний блокер устранён. После открытия tutorial backdrop у него прозрачный, spotlight остаётся видимым. На mobile фактическое открытие документа идёт вdocument-dialog, что соответствует текущему responsive flow.Проверил весь diff на regressions: blocking-проблем не обнаружено.
28 passed, 1 skipped; embedded JS syntax OK;git diff --checkчистый.Итог: no blocking findings.
APPROVE
Проверен head
6a18776(base main). /search реально отвечает 200 OK на локальном индексе akyldash-fragments-v2 и возвращает результаты; пустой q корректно даёт 400. Ошибка поиска теперь использует единый #status с role=status/alert и aria-live=polite/assertive. Actions идут перед footer в DOM, label/input имеют gap и отступы, mobile layout проверен по CSS. UI diff просмотрен: native dialog, focus-visible, keyboard labels, reduced-motion, localStorage try/catch, контент документов проходит sanitizer до innerHTML. Тесты: 28 passed, 1 skipped; JS syntax OK; git diff --check чистый. Browser/AT audit не выполнен: browser runtime недоступен. Blocking findings: none.