TL;DR

  • Автоматизированные инструменты обнаруживают 30-40% проблем доступности — вам нужны как автоматизированные, так и ручные тесты со вспомогательными технологиями
  • Структурируйте отчеты по принципам POUR WCAG (Воспринимаемый, Управляемый, Понятный, Надежный) с четкими уровнями серьезности
  • Включайте шаги воспроизведения, затронутые группы пользователей и код исправления для каждой проблемы для быстрого устранения

Лучше всего для: QA-команд, проводящих аудиты доступности, специалистов по соответствию, документирующих конформность WCAG Пропустить если: Вам нужно только быстрое автоматическое сканирование — используйте axe DevTools напрямую вместо построения полных отчетов Время чтения: 15 минут

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

Это руководство предоставляет всесторонние фреймворки для документирования результатов тестирования доступности, обеспечения соответствия WCAG 2.2 и создания инклюзивного цифрового опыта.

Когда Создавать Полные Отчеты о Доступности

Создавать полный отчет когда:

  • Подготовка к аудитам соответствия WCAG/ADA
  • Запуск или значительное обновление публичного приложения
  • Реагирование на жалобы о доступности или юридические вопросы
  • Установление базовых метрик доступности для отслеживания улучшений
  • Работа с внешними командами по исправлению, которым нужны детальные инструкции

Использовать более легкую документацию когда:

  • Запуск автоматических проверок в CI/CD (логировать нарушения, фейлить билды)
  • Быстрые ручные проверки во время разработки
  • Уже есть устоявшийся процесс тестирования доступности

Уровни Соответствия WCAG 2.2

Понимание Уровней Соответствия

УровеньОписаниеТребованияТипичный Случай Использования
AМинимальный уровеньОсновные функции доступностиБазовое соответствие, минимальное юридическое требование
AAСредний уровеньРекомендуемый стандартБольшинство веб-сайтов, отраслевой стандарт, юридическое требование во многих странах
AAAВысший уровеньУлучшенная доступностьПравительственные сайты, специализированные приложения с фокусом на доступность

Дополнения WCAG 2.2 (выпущено октябрь 2023): Внешний вид фокуса, движения перетаскивания, размер цели, постоянная помощь, избыточный ввод и критерии успеха доступной аутентификации.

Принципы WCAG (POUR)

Воспринимаемый: Информация должна быть представимой способами, которые пользователи могут воспринять

  • Текстовые альтернативы для нетекстового контента
  • Субтитры и транскрипты для мультимедиа
  • Адаптируемая структура контента
  • Различимый визуальный и аудио контент

Управляемый: Пользовательский интерфейс должен быть управляемым

  • Доступность с клавиатуры
  • Достаточно времени для чтения и использования контента
  • Нет контента, вызывающего судороги
  • Навигируемый и находимый контент

Понятный: Интерфейс должен быть понятным

  • Читаемое текстовое содержимое
  • Предсказуемая функциональность
  • Помощь при вводе и предотвращение ошибок

Надежный: Контент должен работать с текущими и будущими вспомогательными технологиями

  • Валидный, семантический HTML
  • Правильное использование ARIA
  • Совместимость со скринридерами и другими инструментами

Шаблон Отчета о Тестировании Доступности

Раздел Резюме

# ОТЧЕТ О ТЕСТИРОВАНИИ ДОСТУПНОСТИ

## Резюме

**Приложение**: Веб-Платформа E-Commerce v3.2
**Дата Тестирования**: 12 января 2026
**Тестер**: Алекс Родригес (Сертифицированный IAAP WAS)
**Целевое Соответствие**: WCAG 2.2 Уровень AA
**Общий Результат**: 78% Соответствие (Требуется Улучшение)

### Сводка Ключевых Находок
| Серьезность | Количество | Заблокированные Пользователи |
|-------------|------------|------------------------------|
| Критическая | 12 | ~20% пользователей с инвалидностью заблокированы |
| Высокая | 23 | Значительные затруднения |
| Средняя | 45 | Ухудшенный опыт |
| Низкая | 18 | Незначительные проблемы |

### Соответствие по Принципу POUR
| Принцип | Уровень A | Уровень AA | Уровень AAA |
|---------|-----------|------------|-------------|
| Воспринимаемый | 85% | 72% | 45% |
| Управляемый | 90% | 78% | 52% |
| Понятный | 88% | 81% | 60% |
| Надежный | 82% | 75% | N/A |

### Требуемые Немедленные Действия
1. Добавить alt текст ко всем изображениям продуктов (12 страниц затронуто)
2. Исправить ловушки клавиатуры в модальных диалогах (блокирует 15% пользователей с моторными нарушениями)
3. Обновить коэффициенты контрастности цвета (не проходит минимум 4.5:1)

### Рекомендация по Срокам
- P0 Критические: Исправить в течение 7 дней
- P1 Высокие: Исправить в течение 30 дней
- P2/P3: Включить в следующий цикл спринта

Раздел Области Тестирования

## Область Тестирования

### Протестированные Страницы
1. Главная страница (/)
2. Список Продуктов (/products)
3. Детали Продукта (/products/[id])
4. Корзина Покупок (/cart)
5. Оформление Заказа (/checkout)
6. Аккаунт Пользователя (/account)
7. Результаты Поиска (/search)
8. Центр Помощи (/help)

### Использованные Инструменты Тестирования
**Автоматизированные:**
- axe DevTools 4.8
- WAVE (WebAIM)
- Lighthouse (Chrome DevTools)
- IBM Equal Access Checker

**Ручные:**
- NVDA 2025.1 (Windows)
- JAWS 2025 (Windows)
- VoiceOver (macOS Sonoma, iOS 18)
- TalkBack (Android 15)
- Dragon NaturallySpeaking 16

### Матрица Покрытия Тестами
| Область | Автомат. | NVDA | VoiceOver | Клавиатура | Когнитив. |
|---------|----------|------|-----------|------------|-----------|
| Главная | ✓ | ✓ | ✓ | ✓ | ✓ |
| Продукты | ✓ | ✓ | ✓ | ✓ | ✓ |
| Оформление | ✓ | ✓ | ✓ | ✓ | ✓ |
| Аккаунт | ✓ | ✓ | Частично | ✓ | - |

Детальная Документация Проблем

Шаблон Критической Проблемы

### Проблема #1: Отсутствие Alt Текста для Изображений Продуктов

**Критерий WCAG**: 1.1.1 Нетекстовый Контент (Уровень A)
**Серьезность**: Критическая
**Затронутые Пользователи**: Пользователи скринридеров, пользователи с отключенными изображениями
**Бизнес-воздействие**: Не могут завершить основной процесс покупки

**Местоположение**: Страница `/products`, все карточки продуктов

**Текущее Состояние (Не соответствует)**:
```html
<img src="/images/product-123.jpg" />

Ожидаемое Состояние (Соответствует):

<img src="/images/product-123.jpg"
     alt="Синяя хлопковая футболка с круглым вырезом, размер M, $29.99" />

Шаги Воспроизведения:

  1. Перейти на /products используя NVDA + Firefox
  2. Нажать B для навигации по изображениям
  3. NVDA объявляет: “графика” (без описания)

Воздействие на Пользователя:

  • Пользователи скринридеров: Не могут идентифицировать продукты
  • Пользователи с отключенными изображениями: Нет информации о продукте
  • Воздействие на SEO: Снижение видимости в поиске

Руководство по Исправлению:

  1. Добавить описательный alt текст включая: название продукта, ключевые визуальные характеристики, цена
  2. Для декоративных изображений использовать alt=""
  3. Для сложных изображений использовать aria-describedby для расширенных описаний

Тест Проверки:

// Проверка правила axe-core
const results = await axe.run(document, {
  rules: ['image-alt']
});
expect(results.violations).toHaveLength(0);

Приоритет: P0 - Критический Оценка Трудозатрат: 2-3 дня (300+ изображений) Назначено: Фронтенд-команда


### Шаблон Проблемы Высокого Приоритета

```markdown
### Проблема #2: Ловушка Клавиатуры в Модальных Диалогах

**Критерий WCAG**: 2.1.2 Без Ловушки Клавиатуры (Уровень A)
**Серьезность**: Критическая
**Затронутые Пользователи**: Пользователи только клавиатуры, моторные нарушения (~15% пользователей с инвалидностью)

**Местоположение**: Модальное окно Добавить в Корзину, Всплывающее окно Входа

**Описание**:
Фокус захватывается внутри модальных диалогов. Нажатие Escape или Tab не закрывает модальное окно и не позволяет навигацию наружу.

**Видео-доказательство**: [Ссылка на запись экрана, показывающую ловушку клавиатуры]

**Шаги Воспроизведения**:
1. Перейти на страницу продукта используя клавишу Tab
2. Нажать Enter на кнопке "Добавить в Корзину"
3. Модальное окно открывается, фокус перемещается внутрь
4. Нажать клавишу Escape → СБОЙ (модальное окно остается открытым)
5. Нажать Tab повторно → СБОЙ (фокус циклится внутри модального окна)

**Анализ Корневой Причины**:
Компонент модального окна без:
- Обработчика клавиши Escape
- Ловушки фокуса с механизмом выхода
- Возврата фокуса к элементу-триггеру при закрытии

**Код Исправления**:
```javascript
class AccessibleModal {
  constructor(modalElement, triggerElement) {
    this.modal = modalElement;
    this.trigger = triggerElement;
    this.focusableElements = this.getFocusableElements();
    this.firstFocusable = this.focusableElements[0];
    this.lastFocusable = this.focusableElements[this.focusableElements.length - 1];
  }

  open() {
    this.modal.setAttribute('aria-hidden', 'false');
    this.modal.style.display = 'block';
    this.firstFocusable.focus();
    this.addEventListeners();
  }

  close() {
    this.modal.setAttribute('aria-hidden', 'true');
    this.modal.style.display = 'none';
    this.trigger.focus(); // Вернуть фокус
    this.removeEventListeners();
  }

  handleKeydown = (e) => {
    if (e.key === 'Escape') {
      this.close();
      return;
    }

    if (e.key === 'Tab') {
      if (e.shiftKey && document.activeElement === this.firstFocusable) {
        e.preventDefault();
        this.lastFocusable.focus();
      } else if (!e.shiftKey && document.activeElement === this.lastFocusable) {
        e.preventDefault();
        this.firstFocusable.focus();
      }
    }
  }
}

Приоритет: P0 - Критический Оценка Трудозатрат: 1 день


### Шаблон Проблемы Контрастности Цвета

```markdown
### Проблема #3: Недостаточный Контраст Цвета

**Критерий WCAG**: 1.4.3 Контраст (Минимум) (Уровень AA)
**Серьезность**: Высокая
**Затронутые Пользователи**: Слабое зрение, дальтонизм, пожилые пользователи, мобильные пользователи на улице

**Элементы с Нарушениями**:
| Элемент | Передний план | Фон | Фактический | Требуемый | Разница |
|---------|--------------|-----|-------------|-----------|---------|
| Вторичная кнопка | #999999 | #FFFFFF | 2.8:1 | 4.5:1 | -1.7 |
| Метка формы | #AAAAAA | #FFFFFF | 2.3:1 | 4.5:1 | -2.2 |
| Ссылка подвала | #888888 | #F5F5F5 | 3.2:1 | 4.5:1 | -1.3 |
| Текст placeholder | #CCCCCC | #FFFFFF | 1.6:1 | 4.5:1 | -2.9 |

**Исправление - Обновленная Цветовая Палитра**:
```css
:root {
  /* Старый → Новый (с коэффициентом контрастности) */
  --text-secondary: #595959;  /* Было #999999 → 7.0:1 ✓ */
  --text-label: #4A4A4A;      /* Было #AAAAAA → 9.7:1 ✓ */
  --text-footer: #545454;     /* Было #888888 → 7.5:1 ✓ */
  --text-placeholder: #767676; /* Было #CCCCCC → 4.5:1 ✓ */
}

Инструмент Тестирования: Использовать WebAIM Contrast Checker или DevTools браузера Приоритет: P1 - Высокий Оценка Трудозатрат: 3 дня (обзор дизайна + реализация + QA)


## Методология Тестирования

### Интеграция Автоматизированного Тестирования

```javascript
// accessibility-tests.js - интеграция CI/CD
const { AxePuppeteer } = require('@axe-core/puppeteer');
const puppeteer = require('puppeteer');

const WCAG_TAGS = ['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa', 'wcag22aa'];

async function runAccessibilityAudit(urls) {
  const browser = await puppeteer.launch();
  const results = [];

  for (const url of urls) {
    const page = await browser.newPage();
    await page.goto(url, { waitUntil: 'networkidle0' });

    const axeResults = await new AxePuppeteer(page)
      .withTags(WCAG_TAGS)
      .analyze();

    results.push({
      url,
      violations: axeResults.violations,
      passes: axeResults.passes.length,
      timestamp: new Date().toISOString()
    });

    // Фейлить CI если найдены критические нарушения
    const critical = axeResults.violations.filter(v => v.impact === 'critical');
    if (critical.length > 0) {
      console.error(`КРИТИЧНО: ${url} имеет ${critical.length} критических нарушений`);
      process.exitCode = 1;
    }
  }

  await browser.close();
  return results;
}

// Интеграция с GitHub Actions
// .github/workflows/accessibility.yml

Чек-лист Ручного Тестирования

## Чек-лист Ручного Тестирования Доступности

### Навигация с Клавиатуры
- [ ] Все интерактивные элементы доступны через клавишу Tab
- [ ] Логичный порядок табуляции следует визуальной компоновке
- [ ] Индикаторы фокуса видны (минимальный контраст 3:1)
- [ ] Нет ловушек клавиатуры
- [ ] Ссылки пропуска присутствуют и функциональны
- [ ] Модальные диалоги захватывают и возвращают фокус корректно

### Тестирование со Скринридером
- [ ] Все изображения имеют соответствующий alt текст
- [ ] Метки форм правильно ассоциированы (`for`/`id` или обертка)
- [ ] Сообщения об ошибках объявляются с `role="alert"`
- [ ] Динамический контент объявляется с ARIA live регионами
- [ ] ARIA landmarks присутствуют (banner, main, navigation, contentinfo)
- [ ] Заголовки создают логическую структуру документа

### Визуальное Тестирование
- [ ] Контраст цвета соответствует 4.5:1 для обычного текста, 3:1 для крупного
- [ ] Текст остается читаемым при 200% масштабе
- [ ] Нет информации, передаваемой только цветом
- [ ] Контент перестраивается при ширине 320px без горизонтальной прокрутки
- [ ] Фокус виден на всех интерактивных элементах

### Формы
- [ ] Все поля имеют видимые ассоциированные метки
- [ ] Обязательные поля помечены (не только цветом звездочки)
- [ ] Сообщения об ошибках конкретны и полезны
- [ ] Атрибуты autocomplete присутствуют где применимо

### Мультимедиа
- [ ] Видео имеют точные субтитры
- [ ] Аудио контент имеет транскрипты
- [ ] Автовоспроизведение может быть приостановлено в течение 3 секунд
- [ ] Нет мигающего контента >3 раз в секунду

Измерение Успеха

МетрикаДоПослеКак Отслеживать
Автоматические нарушения980 критическихaxe-core в CI
Соответствие WCAG AA65%95%+Ежемесячные аудиты
Завершение задач скринридером45%90%Пользовательское тестирование
Время навигации клавиатурой3x мыши1.5x мышиХронометраж задач
Жалобы на доступность12/мес<1/месТикеты поддержки

Предупреждающие знаки что не работает:

  • Автоматическое сканирование показывает 0 проблем, но жалобы пользователей продолжаются (отсутствует ручное тестирование)
  • Процент соответствия застопорился (команда не приоритизирует исправления доступности)
  • Новые функции постоянно вводят нарушения (отсутствует доступность в процессе дизайна/разработки)

Подходы с Использованием ИИ

Инструменты ИИ трансформировали тестирование доступности, но с четкими ограничениями. Текущие показатели обнаружения ИИ по типу проблемы:

  • Отсутствующий alt текст: 95%+
  • Контраст цвета: 90%+
  • Отсутствующие метки форм: 90%+
  • Иерархия заголовков: 85%+
  • Доступность клавиатуры: 70%+
  • Корректность ARIA: 60-80%
  • Оценка качества контента: 30-50%

Что ИИ делает хорошо:

  • Быстрое сканирование больших сайтов на распространенные нарушения
  • Обнаружение отсутствующих атрибутов (alt, метки, ARIA)
  • Математическая проверка коэффициентов контрастности
  • Идентификация структурных проблем (уровни заголовков, landmarks)
  • Генерация предложений кода исправления

Что все еще требует людей:

  • Оценка точности описания изображений alt текстом
  • Тестирование реального потока навигации клавиатурой
  • Оценка когнитивной нагрузки и понятности
  • Проверка качества объявлений скринридера
  • Тестирование с реальными комбинациями вспомогательных технологий

Полезный промпт для анализа доступности:

Проанализируй этот HTML на проблемы соответствия WCAG 2.2 AA:
[вставить HTML]

Для каждой найденной проблемы:
1. Указать конкретный критерий успеха WCAG
2. Объяснить воздействие на пользователя
3. Предоставить пример соответствующего кода
4. Оценить серьезность (Критическая/Высокая/Средняя/Низкая)

Чек-лист Лучших Практик

ПрактикаПочему Важно
Тестировать с реальными вспомогательными технологиямиАвтоматические инструменты пропускают 60-70% проблем реального пользовательского опыта
Включать шаги воспроизведенияРазработчики не могут исправить то, что не могут воспроизвести
Предоставлять код исправленияУменьшает переписку и ускоряет исправления
Документировать затронутые группы пользователейСоздает эмпатию и ясность приоритизации
Интегрировать в CI/CDПредотвращает регрессию, ловит проблемы рано
Тестировать после каждого крупного релизаФункции меняются, доступность может сломаться
Включать бизнес-влияниеСвязывает доступность с доходом и рисками

Заключение

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

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

Связанные статьи: