Доступність згоди на файли cookie: відповідність WCAG 2.2 для банерів згоди

Банер файлів cookie, який користувачі клавіатури не можуть закрити, зчитувачі екрана не можуть оголосити, або відвідувачі з порушенням кольорового зору не можуть прочитати, — це не просто поганий UX, це невідповідність одразу у двох аспектах. Відтоді як Європейський закон про доступність набрав чинності у червні 2025 року, інтерфейси згоди на комерційних веб-сайтах, що обслуговують користувачів ЄС, мають відповідати WCAG 2.1 рівня AA, а WCAG 2.2 настійно рекомендується для 2026 року. У поєднанні з вимогою GDPR про те, що згода має бути «добровільною, конкретною, поінформованою та однозначною», недоступні банери тепер несуть подвійний правовий ризик. Цей посібник точно пояснює, як виглядає банер файлів cookie, що відповідає WCAG, у 2026 році.

Чому доступність і згода тепер перетинаються

GDPR вимагає, щоб згоду можна було отримати від кожного користувача, а не лише від тих, хто може бачити і натискати банер. Європейська рада з захисту даних роз'яснила, що якщо суб'єкт даних не може повноцінно взаємодіяти з інтерфейсом згоди — через інвалідність, яка не була врахована на сайті, — згода не є дійсно отриманою. Це означає, що файли cookie взагалі не мали завантажуватися.

З боку доступності Європейський закон про доступність (EAA), впроваджений у національне законодавство держав-членів ЄС, встановлює WCAG 2.1 AA як мінімум для веб-сайтів і додатків приватного сектору, що надають споживчі послуги. Режим санкцій варіюється залежно від країни, але зазвичай становить від €50 000 до €500 000 за порушення, плюс накази про виведення з ринку при стійкій невідповідності.

Основні вимоги WCAG для банерів файлів cookie

Керованість за допомогою клавіатури

Кожен елемент управління банером — Прийняти, Відхилити, Керувати налаштуваннями, закрити — має бути доступним і керованим лише за допомогою клавіатури. Користувачі мають змогу переміщатися між кнопками клавішею Tab у логічному порядку та активувати їх клавішею Enter або Space. Фокус має бути видимим із мінімальним коефіцієнтом контрасту 3:1 відносно фону.

Утримання фокусу в модальних банерах

Якщо банер блокує взаємодію з рештою сторінки, фокус клавіатури має бути утриманий усередині банера, доки користувач не зробить вибір. Користувачі не повинні мати змогу виходити Tab за межі банера, щоб прокручувати підлеглу сторінку. Коли фокус був утриманий і банер закривається, фокус має повернутися до елемента, що викликав банер, або до розумного значення за замовчуванням.

Оголошення зчитувачів екрана

Банер має бути оголошений як діалог із доступною назвою і роллю. Використовуйте role="dialog" або role="alertdialog" з aria-labelledby, що вказує на заголовок банера, і aria-describedby, що вказує на пояснювальний текст.

Колірний контраст

Основний текст має забезпечувати контраст 4,5:1 відносно фону; великий текст (18pt+ або 14pt жирний) потребує 3:1. Текст кнопок, іконки та індикатори фокусу мають власні мінімальні значення контрасту. Світло-сіра кнопка «Відхилити» на білому фоні — поширена помилка WCAG, яку ми бачимо на аудитах.

Без підказок лише за кольором

Не покладайтеся виключно на колір для розрізнення «Прийняти» та «Відхилити». Використовуйте різні мітки, іконки або форми, щоб користувачі з порушенням кольорового зору могли розрізнити кнопки.

Темні патерни і доступність

WCAG 2.2 запроваджує нові критерії, що безпосередньо спрямовані проти темних патернів — особливо актуальних для згоди:

RTL та інтернаціоналізація

Доступність поширюється на мови з написанням справа наліво (арабська, іврит, перська, урду) та на вимову зчитувача екрана:

Тестування банера на відповідність WCAG

Не покладайтеся на єдиний інструмент. Поєднуйте автоматизоване сканування з реальним тестуванням допоміжних технологій:

Поширені помилки доступності, які ми бачимо

Як FlexyConsent забезпечує доступність

FlexyConsent відповідає WCAG 2.2 AA «з коробки»:

  • Усі елементи управління керовані з клавіатури з видимими індикаторами фокусу 3:1.
  • Правильний role="dialog" з aria-labelledby та aria-describedby.
  • Утримання фокусу з Escape для закриття необов'язкових банерів.
  • Контраст 4,5:1+ для кожного текстового елемента, включаючи «Відхилити».
  • Автоматичне перемикання RTL для арабської, іврит, перської та урду локалей.
  • Атрибут lang встановлено для кожного перекладу для правильної вимови зчитувача екрана.
  • Масштабостійке компонування, придатне для використання при 400%.
← Блaderegistrdelays delays Читати все →