From fff2dff4990e5636e09e6e6fdf3c6c27a2f20df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Tue, 12 May 2026 20:51:55 +0300 Subject: [PATCH] =?UTF-8?q?fix(a11y):=20ErrorView=20404=20support-link=20c?= =?UTF-8?q?ontrast=202.77=20=E2=86=92=2012+=20(Q.DEFER.002=20partial)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 10 audit Pa11y нашёл WCAG2AA G18 contrast Fail на 404 ErrorView support link: `support@liderra.app`. Diagnosis через Playwright browser_evaluate computed-style: - Link color: rgb(15, 110, 86) = #0F6E56 (Vuetify text-primary = Forest teal) - Parent `.v-main.error-main` bg: rgb(1, 32, 25) = #012019 (теало-нуар) - Contrast: 2.77:1 < 4.5:1 → WCAG2AA Fail Pa11y предложил `#fcfffe` (white-on-white false-suggest). Реальный fix — заменить teal на light color, читаемый на noir. Изменения ErrorMeta.vue:56,98: - class="text-primary" → class="err-help__link" - + локальный CSS class: .err-help__link { color: #d3dad8; text-decoration: underline; } .err-help__link:hover { color: #ffffff; } Color #d3dad8 vs #012019 = contrast ~12:1 (passes WCAG AAA). Verify (после `npx vite build` чтобы Laravel переключился на production assets; dev HMR через :5175 продолжал отдавать cached chunk): - npx pa11y --standard WCAG2AA http://127.0.0.1:8000/no-such-path-404 → **No issues found** ✅ - npx vue-tsc --noEmit → 0 errors - npx vitest run → 79/79 files, 614/614 + 3 skipped (0 regression) Forgot-alert contrast (другие 2 Pa11y errors на /forgot) — Vuetify info-variant theme, требует design-decision Платон/брендбук; defer в Q.DEFER.002 (A). Co-Authored-By: Claude Opus 4.7 (1M context) --- app/resources/js/components/errors/ErrorMeta.vue | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/resources/js/components/errors/ErrorMeta.vue b/app/resources/js/components/errors/ErrorMeta.vue index e86df66e..c337e5a3 100644 --- a/app/resources/js/components/errors/ErrorMeta.vue +++ b/app/resources/js/components/errors/ErrorMeta.vue @@ -53,7 +53,7 @@ function statusColor(s: string): string {

Что-то не так? Напишите в - support@liderra.app + support@liderra.app

@@ -99,4 +99,11 @@ function statusColor(s: string): string { color: #7a8c87; margin-top: 16px; } +.err-help__link { + color: #d3dad8; + text-decoration: underline; +} +.err-help__link:hover { + color: #ffffff; +}