Разбор

Пока у ошибки нет цены, её не чинят

Короткое чтение большой статьи об Оракуле соответствия и доступности AIFA. Вместо пересказа семи глав мы тянем одну нитку: главное изобретение здесь не сканер, а перевод технического дефекта в денежную величину. Всё остальное в архитектуре существует затем, чтобы эта величина выдерживала проверку.

Список тегов против одной суммы

Обычный отчёт о доступности выглядит как перечень: столько-то картинок без описания, столько-то полей без ярлыка. Для разработчика это работа, для руководителя — шум. Задача уезжает в бэклог с пометкой «второстепенное» и живёт там годами, потому что ни одна строчка такого списка не отвечает на единственный вопрос, который задаёт директор: чем это грозит.

Оракул отвечает на него числом. Он суммирует предельные штрафы по всем найденным уязвимостям и выводит одну величину общей финансовой угрозы. В статье приведён образец такой строки: четыре критических нарушения ADA и два GDPR складываются в потенциальный риск свыше трёхсот двадцати тысяч долларов. После этой строки приоритет задачи меняется без совещаний.

Три ценника, взятых из закона

Первый — ADA Title III: федеральный гражданский штраф Минюста США до семидесяти пяти тысяч долларов за первое нарушение и до ста пятидесяти тысяч за последующие. Оговорку источника переношу дословно, потому что она меняет смысл цифры: это верхний потолок штрафа, а не средний счёт. Второй — GDPR, где расчёт ведётся от двадцати миллионов евро либо четырёх процентов годового оборота. Третий — CCPA: две с половиной тысячи долларов за непреднамеренное нарушение и до семи с половиной тысяч за преднамеренное, причём за каждого пострадавшего пользователя.

Рядом стоит фон, из-за которого эти суммы не абстрактны. Юридические фирмы, специализирующиеся на доступности, ищут уязвимые сайты автоматическими парсерами и подают коллективные иски, требуя от пятнадцати до ста пятидесяти тысяч долларов за одну сессию нарушений. Истцу не нужно ждать жалобы живого человека: достаточно машины, которая обходит сайты подряд.

Почему alt="image" проходит проверку

Чтобы сумма была честной, её нельзя собирать из ложных срабатываний. Здесь и ломается статический анализ. Сканер, работающий по регулярным выражениям и простым селекторам, проверяет наличие атрибута, а не его пользу. Картинка графика продаж с описанием «image» тест проходит: атрибут физически на месте. Для незрячего пользователя такое описание бесполезно, и это грубое нарушение WCAG и ADA — но в отчёте нарушения нет.

Обратная ошибка того же происхождения: инструмент не отличает декоративный разделитель, который положено скрывать через aria-hidden, от функционального изображения, которое положено описывать. Отсюда сотни ложноположительных и ложноотрицательных срабатываний — и невозможность построить на таком отчёте денежную оценку.

Накладка, которая делает хуже

Второй привычный путь — виджет поверх сайта, обещающий закрыть доступность одним кликом сменой шрифтов, контраста и синтезом речи. По судебной практике США такой виджет от исков не спасает и нередко работает наоборот, привлекая внимание истцов. Хуже того, накладки ломают встроенные скринридеры, которыми пользуются незрячие, — сайт становится менее доступным, чем был.

И главное: виджет не меняет исходный код. Он правит DOM в браузере, а сканер юридической фирмы читает HTML, отданный сервером, и видит там всё то же самое. Третий пробел — отсутствие связи между областями: инструмент проверит контрастность текста и не заметит, что тот же сайт отправляет персональные данные через пиксель отслеживания до всякого согласия.

Сначала чертёж, потом рассуждение

Оракул разделяет работу на два непохожих этапа. Сначала модуль скрейпинга строит чертёж страницы, куда не попадают тяжёлые медиафайлы и лишняя разметка. В чертеже остаются метаданные — кодировка, язык, описание, параметры вьюпорта; интерактивные элементы вместе с их идентификаторами и ARIA-атрибутами; иерархия заголовков от первого до шестого уровня; изображения и содержимое их описаний; следы аналитики, пикселей и баннеров согласия; заголовки безопасности сервера — HSTS, CSP, состояние сертификата.

Затем чертёж уходит в языковую модель. Основная — Grok 4.3, при сетевых задержках или исчерпании лимитов система автоматически переключается на Gemini 2.5 Flash. Модель сверяет чертёж с матрицей из двух тысяч проверок и оценивает то, чего не видит регулярное выражение: достаточно ли описание «логотип» для логотипа, есть ли доступное имя у кнопки, внутри которой лежит одна иконка.

Что кладётся в карточку нарушения

Каждая находка оформляется одинаково: доказательство с точной формулировкой, почему это нарушение; вырезанный из страницы фрагмент виновного кода; пошаговая инструкция по исправлению на языке пользователя — русском, английском, испанском или китайском — и готовый патч, который можно скопировать. Правила разложены по семи категориям, у каждого свой вес риска — критический, серьёзный, умеренный или рекомендательный, — ссылка на документ регулятора и расчёт санкции.

Единицы измерения видны в приложениях

Оценка перестаёт быть на глаз там, где названа формула. Контраст текста к фону требуется не менее 4,5 к 1, для крупного текста от 18 пунктов или 14 полужирных допускается 3 к 1; относительная яркость считается как L = 0,2126 · R + 0,7152 · G + 0,0722 · B, а само соотношение — как (L1 + 0,05) / (L2 + 0,05).

Так же устроена и серверная часть. Заголовок принудительного HTTPS должен жить не меньше ста восьмидесяти дней — это 15768000 секунд — и нести includeSubDomains вместе с preload. Политика безопасности контента обязана ограничивать источники и не допускать небезопасные встраивания без хешей или разовых токенов. Проверяются защита от встраивания в чужой фрейм, запрет угадывания типа содержимого и файл для сообщений об уязвимостях по стандарту RFC 9116 в каталоге well-known. Отдельно смотрят дату последнего обновления политик: она не должна быть старше двенадцати месяцев.

Есть и приложение под российскую и снговскую юрисдикции, о котором обычно молчат западные сканеры. ГОСТ Р 52872-2019 требует версии для слабовидящих с переключением цветовых схем и масштабированием шрифта до двухсот процентов без горизонтальной прокрутки. ФЗ-152 требует непредзаполненного флажка согласия со ссылкой на политику. ФЗ-38 требует, чтобы согласие на рекламные рассылки стояло отдельным флажком и не объединялось с согласием на обработку данных.

Числа сравнения и их происхождение

Сравнительная таблица честна в той части, где считает: две тысячи с лишним комплексных проверок против примерно пятидесяти базовых у Lighthouse и примерно шестидесяти у расширения WAVE; обход карты сайта до трёх страниц против единственной текущей страницы у обоих; расчёт штрафа, которого нет ни у кого из перечисленных.

А дальше идут цифры, происхождение которых названо прямо, и это стоит сохранить. Глубина сканирования — до тридцати раз больше параметров по внутренним оценкам. Снижение ложных срабатываний примерно на восемьдесят пять процентов — по внутренним оценкам. Сокращение времени на исправление примерно на семьдесят процентов — по оценкам самой команды. Это оценки, а не замеры независимой стороны, и статья их так и называет.

Зачем это экономике проекта

Оракул стоит на входе воронки холодного аутрича: тридцать доменов и девяносто прогретых ящиков ежедневно рассылают персональные аудиты, в письме — реальные нарушения адресата и сумма возможного штрафа. Оффер один: закрыть критические уязвимости за сорок восемь часов силами ИИ-агентов за пятьсот долларов разово. После этого клиент переходит на хостинг AIfa Works, где проверка повторяется ежемесячно в фоне.

Оплаты идут через смарт-контракт Solana с фиксированным сплитом: пять процентов Фонду Основателя, пять в сжигание, пятнадцать, семь и три процента трём уровням амбассадоров, шестьдесят пять процентов казначейству на покупку AR. Эмиссия токена ограничена десятью миллиардами. Выплаты партнёрам названы платой за валидацию сети, а при выборе получения в токенах ставки повышаются до восьми, четырёх и двух процентов, и платформа выкупает нужный объём с открытого рынка.

Что здесь ещё не сделано

Дорожная карта состоит из трёх фаз, и ни одна не объявлена завершённой. На третий квартал 2026 года намечены GitHub Action и плагин для GitLab CI: аудит будет запускаться на каждом коммите, а сборка блокироваться, если код нарушает доступность или приватность. На четвёртый квартал — доказательства с нулевым разглашением: сайт сможет предъявить ончейн-доказательство пройденного аудита со счётом две тысячи из двух тысяч, не открывая исходники бэкенда, и зафиксировать его сжатым NFT на Solana.

На первое полугодие 2027-го запланировано расширение матрицы до пяти тысяч проверок, добавление азиатских и ближневосточных стандартов и оптимизация локальной модели под приложения больше десяти тысяч страниц. Пока это планы, и разбор не имеет права записывать их в сделанное.

Оракул не предсказывает беду. Он просто читает вслух то, что уже написано и на что никто не смотрит.— Коан №38, Максим Валентинович Галатин

В этом и весь приём. Нарушения на сайте существуют независимо от того, знает о них владелец или нет; закон и судебная практика назначили им цену задолго до первого сканирования. Оракул ничего не добавляет к риску — он делает риск видимым и переводит его в единицу, в которой бизнес умеет принимать решения.

Первоисточник

В полной статье — девять глав и четыре приложения: разбор всех шести регуляторных слоёв, примеры кода до и после исправления, сравнительная таблица с четырьмя инструментами, чек-лист проверок доступности и отдельный блок по законодательству РФ и СНГ.