From fa65c3f2128c58ea88729f24cdc2352810cb4e10 Mon Sep 17 00:00:00 2001 From: bot-backend Date: Sat, 20 Jun 2026 10:14:58 +0300 Subject: [PATCH] =?UTF-8?q?fix(scrapers/ui):=20=D0=B4=D0=B5=D0=B4=D1=83?= =?UTF-8?q?=D0=BF=20queryKey=20cian=20test-auth=20+=20a11y=20(th=20scope,?= =?UTF-8?q?=20=D1=82=D0=B0=D0=B1=D1=8B=20ARIA,=20=D1=81=D1=82=D0=B0=D1=82?= =?UTF-8?q?=D1=83=D1=81-=D1=82=D0=BE=D1=87=D0=BA=D0=B8=20aria-label)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - cian/page.tsx: отдельный queryKey ["cian-test-auth", "manual"] для ручного testAuthQuery в CianCookiesSection — устраняет кросс-контаминацию с автопуллингом useTestAuth() (refetchInterval:60s) и ручной кнопкой "Test Current Session" - RunsTable.tsx, ScraperPage.tsx (RunsLogSection), ProxyHealthCard.tsx: scope="col" на все в thead — соответствие WCAG SC 1.3.1 (Info and Relationships) - Topbar.tsx: aria-current="page" на активный nav-link вместо tablist/tabpanel — корректный паттерн для link-based навигации между отдельными страницами - ProxyHealthCard.tsx: role="img" + aria-label на цветовые dot-индикаторы статуса browser-инстансов — цвет больше не единственный носитель смысла (WCAG 1.4.1) --- .../app/scrapers/_components/ScraperPage.tsx | 20 +++++++++---------- .../frontend/src/app/scrapers/cian/page.tsx | 2 +- .../components/scrapers/ProxyHealthCard.tsx | 12 ++++++----- .../src/components/scrapers/RunsTable.tsx | 14 ++++++------- .../src/components/trade-in/Topbar.tsx | 1 + 5 files changed, 26 insertions(+), 23 deletions(-) diff --git a/tradein-mvp/frontend/src/app/scrapers/_components/ScraperPage.tsx b/tradein-mvp/frontend/src/app/scrapers/_components/ScraperPage.tsx index 544087bb..2e0e683e 100644 --- a/tradein-mvp/frontend/src/app/scrapers/_components/ScraperPage.tsx +++ b/tradein-mvp/frontend/src/app/scrapers/_components/ScraperPage.tsx @@ -325,16 +325,16 @@ function RunsLogSection({ source }: RunsLogSectionProps) { - - - - - - - - - - + + + + + + + + + + diff --git a/tradein-mvp/frontend/src/app/scrapers/cian/page.tsx b/tradein-mvp/frontend/src/app/scrapers/cian/page.tsx index 87d9531c..d27905b8 100644 --- a/tradein-mvp/frontend/src/app/scrapers/cian/page.tsx +++ b/tradein-mvp/frontend/src/app/scrapers/cian/page.tsx @@ -238,7 +238,7 @@ function CianCookiesSection() { }); const testAuthQuery = useQuery({ - queryKey: ["cian-test-auth"], + queryKey: ["cian-test-auth", "manual"], queryFn: () => apiFetch("/api/v1/admin/scrape/cian/test-auth"), enabled: false, diff --git a/tradein-mvp/frontend/src/components/scrapers/ProxyHealthCard.tsx b/tradein-mvp/frontend/src/components/scrapers/ProxyHealthCard.tsx index a12479d3..9b5c52dd 100644 --- a/tradein-mvp/frontend/src/components/scrapers/ProxyHealthCard.tsx +++ b/tradein-mvp/frontend/src/components/scrapers/ProxyHealthCard.tsx @@ -279,6 +279,8 @@ export function SystemHealthSection() { {name}: - - - - - + + + + + diff --git a/tradein-mvp/frontend/src/components/scrapers/RunsTable.tsx b/tradein-mvp/frontend/src/components/scrapers/RunsTable.tsx index 503265ff..45d89acc 100644 --- a/tradein-mvp/frontend/src/components/scrapers/RunsTable.tsx +++ b/tradein-mvp/frontend/src/components/scrapers/RunsTable.tsx @@ -238,13 +238,13 @@ export function RunsTable({ source }: RunsTableProps) {
#СтатусСтартHeartbeatAnchorsLotsHousesDetailErrorsДействие#СтатусСтартHeartbeatAnchorsLotsHousesDetailErrorsДействие
ПровайдерПрокси (host:port)Текущий IPРежимДействиеПровайдерПрокси (host:port)Текущий IPРежимДействие
- - - - - - - + + + + + + + diff --git a/tradein-mvp/frontend/src/components/trade-in/Topbar.tsx b/tradein-mvp/frontend/src/components/trade-in/Topbar.tsx index 679a5e70..5297db70 100644 --- a/tradein-mvp/frontend/src/components/trade-in/Topbar.tsx +++ b/tradein-mvp/frontend/src/components/trade-in/Topbar.tsx @@ -140,6 +140,7 @@ export function Topbar({ active }: TopbarProps) { key={item.key} href={`${API_BASE_URL}${item.href}`} className={item.key === active ? "is-active" : undefined} + aria-current={item.key === active ? "page" : undefined} > {item.label}
#ТипСтатусСтартФинишЛоты / ОшибкиДействие#ТипСтатусСтартФинишЛоты / ОшибкиДействие