European Accessibility Act — ликбез: что это и почему это важно

 Публичный пост
28 июня 2025  1527

28 июня 2025 года вступил в силу European Accessibility Act (EAA). Я делаю аудиты для компаний, которые хотят соответствовать требованиям этого акта, и подумала, что можно провести краткий (и поверхностный) ликбез на эту тему здесь и дать практические советы, с чего начать.

Что это за акт?

Документ, который обязывает компании производить доступные продукты и обеспечивать доступные сервисы. Доступные - то есть те, которыми смогут пользоваться люди с любым состоянием здоровья, скажем так. Кто не видит, или не слышит, или не может пользоваться мышкой, клавиатурой и т.п.
Этот акт охватывает разные области, вплоть до киосков по продаже билетов, но ниже будем говорить только о веб-сайтах (возможно, о мобилках в другой раз).

Почему этот акт важен?

Это первый общий европейский закон, который обязывает быть доступным коммерческий сектор в Европе. Сюда относятся как сами европейские продукты и сервисы, так и их закупки. То есть условное приложение для детского рисования из Беларуси должно быть доступным, чтобы его купила школа в Германии. Исключение делается для совсем маленьких европейских компаний, где меньше 10 человек и оборот меньше 2 миллионов евро.

Как эту доступность обеспечить?

В двух словах - веб-сайты должны соответствовать WCAG 2.1, это стандарт цифровой доступности. В EAA добавлены свои нюансы, связанные с трансляциями, звонками и прочим, но 99% требований это соответствие WCAG 2.1.

Сложно ли это сделать?

В целом, сама доступность это не rocket science, но там есть довольно много мелких нюансов. Хорошая новость в том, что 90% проблем это не мелкие нюансы (о них ниже). Плохая - если продукт проблемный и кривой, временами его проще сжечь и сделать новый, чем поправить.

Кто этим должен заниматься?

мем со спайдерменами, которые показывают друг на друга
мем со спайдерменами, которые показывают друг на друга

(почему на вастрике альты пишутся под картинкой? это странно)

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

С чего начать?

Контраст.

Пройдите по элементам сайта с помощью инспектора в devtools, обратите внимание на строчку contrast.

Автоматические инструменты не умеют пока что измерять контраст на градиентах, изображениях, это нужно сделать руками. Скачайте Color Contrast Analyser, он бесплатный, и состоит из двух пипеток, которыми вам нужно выбрать цвета. Вот Юникло нам предлагает разглядеть красную цену на фоне красной машины.

Клавиатура

Поставьте курсор в адресную строку и уберите мышку. Используя клавиши Tab, Shift и Enter, попробуйте проделать все стандартные сценарии вашего продукта только с клавиатурой.

Например, попробуем купить футболку в Юникло. Поставили курсор в адресную строку, нажали Tab, видим синюю рамку вокруг логотипа, уже неплохо (хотя бы есть рамка).

Доходим до поиска, открываем его, пишем t-shirt. Спускаемся табом до нужной категории, нажимаем Enter… И всё, на этом в Юникло ваш шоппинг завершился, дальше без мышки не пройти.

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

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

Скринридер

Уровень Pro - запустить скринридер. Это программа, которая зачитывает все с экрана (или передает шрифтом брайля, но так глубоко нам погружаться не нужно). На маке он встроенный, ищите в настройках VoiceOver. На винду скачайте NVDA.

Запустите скринридер, пройдите обучение. Запомните, как выключить скринридер! Потом включите отладку для разработчиков (вывод текста на экран) и вернитесь к своему продукту.

Задача такая же, как с клавиатурой, но теперь вам нужно ориентироваться только на то, что говорит скринридер. При желании упороться можно выключить монитор, но я так не делаю :)

Пытаемся выбрать цвет футболки. Вот Юникло вместо черного цвета говорит “69”.

Включите в экспериментальных функциях Хрома Accessibility Tree и смотрите, как видят ваш код ассистивные технологии (скринридеры и прочее). Вот, к примеру, та футболка (имя, цвета, добавление в избранное).

На этом этапе вы увидите уже 90% проблем, уже есть чем заняться :) Не забывайте, что каждая новая фича несет с собой новые проблемы, так что проверки нужно делать регулярно. А по-хорошему внедрить на начальных этапах разработки и дизайна, когда переделывать еще не так много.

P.S. А что с автоматические тестами? Как любую тулзу, их нужно использовать, хорошо понимая, что и зачем ты делаешь. А главное, для новичка они не дают понимания, что это за проблема и почему она важна. Гораздо нагляднее пытаться угадать на слух, что значит "69" у футболки в своем продукте (и автотесты это не найдут). Поэтому я бы отложила автоматику на потом.

27 комментариев 👇
Egor Suvorov Программист/преподаватель C++ 28 июня в 13:01

попробуйте проделать все стандартные сценарии вашего продукта только с клавиатурой.

Сразу вспоминаются сайты для бронирования слотов на подачу на шенген. Смешно. Там не дай бог Enter нажал после ввода пароля вместо клика мышкой — в лучшем случае надо открывать сайт заново и проходить по всем кнопкам, а в худшем просто банят на денёк-другой.

  Развернуть 1 комментарий
Вастрик Блогер, погромист, мизантроп 28 июня в 13:11

Раз уж такая тема горячая, напоминаю, что мы специально делали, что Вастрик Клубом можно пользоваться только с клавиатуры без всяких плагинов!

В остальном наш accessibility конечно так себе

  Развернуть 1 комментарий

@vas3k, а как с клавиатуры отправить сообщение? у меня застревает фокус на textarea

  Развернуть 1 комментарий

@ashegol, Должно было быть Cmd+Enter. Сломалось?

  Развернуть 1 комментарий

@vas3k, ща проверим) а как пройти дальше кнопки в футер, например?

  Развернуть 1 комментарий

@ashegol, так можно же открыть на гитхабе и глянуть, не?

  Развернуть 1 комментарий

@cc00ffee, ну, я не разработчик) вижу, что не могу табом пройти дальше - пишу фейл :) про cmd+enter не уверена, что это можно использовать как единственное решение, думаю, только как аналог.
и в любом случае остаётся кейс, когда отправить не нужно, а нужно пройти в футер, например. Я не поняла, как это сделать в текущей реализации.

  Развернуть 1 комментарий

Горячая тема, спасибо. Позволю себе некоторые дополнения с т.з. разработчика:

  • Автоматические тесты (например, axe+cypress) - полностью согласен. Можно внедрять, но это формальное тестирование, не покрывает настоящее a11y. Настоящее тестирование только руками, не верьте если кто-то предлагает 100% автоматическое a11y тестирование, т.к. даже с AI покрытие будет не полным. авто a11y тесты покажут ошибки, только если вы совсем забыли про a11y в каком-то месте, так что ценность в них есть.

  • Скринридеры. Скринридеры это обычные программы, а значит в них есть баги. И с этим придется жить - делать костыли под разные скринридеры/браузеры (как раньше под IE). Обычно не требуется идеальной работы во всех скринридерах+браузерах, но полезно хотя бы раз пройтись по всей матрице:

    • MacOS - Voice Over ведет себя немного по разному в Chrome, Safari и Firefox, поэтому полезно тестировать в разных браузерах.
    • Windows - дополню, что кроме NVDA есть еще JAWS - он популярен в Северной Америке. В нём тоже полезно тестировать потому что поведение у них разное. NVDA бесплатный, JAWS сильно платный (но есть 40 минут бесплатных, сбрасывается рестартом системы). В разных браузерах они ведут себя стабильнее, чем Voice Over. Поэтому я обычно просто тестирую NVDA+Chrome, JAWS+Chrome.
    • IOS - тут он тоже называется VoiceOver. Как сказала Ася, сначала "Запомните, как выключить скринридер!". Здесь всё просто - тестируем в VoiceOver+Safari, но учтите что баги меняется в разных версиях IOS (по разному обрабатываются диалоги, descriptions итд). Последние версии более стабильные, если что.
    • Android: здесь это TalkBack. Можно вывести кнопку включения/выключения поверх экрана, удобно, не нужно запоминать как выключать. TalkBack+Chrome субъективно доставляет меньше всех проблем - работает почти всегда по стандартам, костылей требует минимум.
  Развернуть 1 комментарий

@mubinov, спасибо за дополнения, про рестарт jaws очень ценно :D это скринридер, который дают бесплатно в Штатах людям с disabilites, поэтому там много пользователей.

  Развернуть 1 комментарий

@ashegol, не знал что jaws бесплатно раздают! всегда удивлялся его популярности)

  Развернуть 1 комментарий

@mubinov, на самом деле не могу сейчас нагуглить источник этой информации, возможно, это уже в прошлом. но мне тоже казалось это логичным объяснением)

  Развернуть 1 комментарий

Мы в Вольво потратили последние 3 месяца, причесывая мобильные приложения под аксесибилити. Я лично узнал очень много всякого интересного про доступность, варианты disabilities и прочее. Для андроида есть офигенный плагин Ally, который позволяет сделать ручное тестирование менее болезненным.
Недавно провели пробный аудит, нашли ещё узких мест, будем продолжать улучшать.

  Развернуть 1 комментарий

@Stenopolz, расскажи плиз про плагин, мы без него - правда хорош?

  Развернуть 1 комментарий

@maria_pan, ну с ним удобнее - можно одним кликом включать/выключать TalkBack и размеры шрифтов дергать. Плюс он может делать за тебя все жесты автоматом, типа все этим секретные тройные тапы делаются просто одной кнопкой в плагине. Ну и он бесплатный, нет причин не пользоваться.

https://plugins.jetbrains.com/plugin/23902-android-ally

  Развернуть 1 комментарий

@Stenopolz, о, прикольно, спасибо. Я тестировала недавно первый раз андроид и меня что-то не впечатлили тулзы от гугла

  Развернуть 1 комментарий

@Stenopolz, спасибо, попробуем)

  Развернуть 1 комментарий

Очень крутой пост, спасибо!
Линкану, буквально недавно смотрел вот этот доклад по теме, может поможет углубить картинку в голове кому-нибудь

  Развернуть 1 комментарий

О, какая актуальная тема. Мы тоже последние полгода этим занимаемся, недавно делали аудит)

  Развернуть 1 комментарий
Миша Безверхий гений, миллиардер, плейбой, филантроп 28 июня в 13:09

А кто является надзирающим органом и какие санкции накладываются на бизнесы, не соблюдающие законы?

Просто в значимости закона ты говоришь о том, что это первый общий европейский закон — но мне действительно сложно представить себе закон, о котором смогли договориться Беларусь и Германия, например. И вот кто кого наказывать будет, если школа из Германии купила что-то неаксесибл? А если школа из Беларуси?

  Развернуть 1 комментарий

@mixbez, общий для ЕС, Беларусь пока вроде не там :)

С санкциями, если честно, не знаю. Этот закон распространялся уже ранее на государственные учреждения во многих странах (например, в Нидерландах), и в работе вижу, что они более-менее следят, можно часто увидеть, что они ежегодно проходят аудиты. Думаю, если бы над ними не висела вероятность штрафа, рвения было бы гораздо меньше.

  Развернуть 1 комментарий

@ashegol, ну просто из формулировки "общий европейский" это не следует, "общий евросоюзный" звучит более логично и вызывает меньше вопросов к тому, как это все контролируется

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@helwig, сразу скажу, я не знаю тут всех нюансов и могу что-то трактовать неверно.

Как я понимаю, аудит - это добрая воля заказчика, то есть можно своими силами составить список проблем, а можно обратиться за внешней помощью. Самый дешевый вариант - чтобы просто дали список проблем и кратко, как их можно решить (у кнопки нет имени - дайте имя). Подороже - будут встречаться с командой, проводить демо, обсуждать реализацию и тп. То есть к вопросу штрафа аудит отношения не имеет. Просто если к тебе придут с вопросом, что ты сделал для хип-хопа, ты можешь показать условный документ, что сделано, что в процессе. Но можешь и сам этот документ составить.

Акт появился в 2019 году, и июнь 2025 года это уже скорее последнее китайское предупреждение. До этого момента уже многие страны ЕС принимали свои локальные акты.

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

Как это происходит в других странах, не знаю. Недавно ездила на accessibility саммит в Германию, и у меня создалось впечатление, что там это тоже довольно прокачанная индустрия. К примеру, у них даже есть собственные общенемецкие гайды по тестированию. Но как именно они ищут нарушителей - не знаю. Конкретно у барбершопа, мне кажется, оборот не больше 2 миллионов (не владела барбершопами, не знаю), так что он может попасть под исключение.

  Развернуть 1 комментарий
Сергей Ялосоветский Senior Full Stack Python + DevOps Developer 2 июля в 14:32

😱 Комментарий удален его автором...

  Развернуть 1 комментарий
Кирилл Программист руками по клавиатуре 3 июля в 09:35

Из первых рук знаю о популярном в США методе развода людей: от имени какого-то человека с ограниченными возможностями (например слепого) подают в суд на компанию, сайт которой не соответствует подобному акту. Пугают штрафами в 10к и готовы "урегулировать" за 2к. При этом никакой автоматизированный инструмент проверки сайта на соответствие нормам не дает гарантии, что суд решит дело в пользу сайта. Печально.

  Развернуть 1 комментарий

@kurumpa, ну, никакой автоматизированный инструмент и не может показать, что незрячий может пользоваться сайтом

  Развернуть 1 комментарий

@ashegol, так а что делать в случае такого скама?

  Развернуть 1 комментарий

@kurumpa, в штатах есть VPAT отчет, думаю, заказывают его у какого-то сертифицированного аудитора. Но я, как представитель другой стороны, слышала обратные истории, что суд там прецедентный и после того, как кому-то отклонили жалобу, остальным всем отклоняют, и добиться того, чтобы компании делали доступные продукты, очень сложно.

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб