IHOR.DEVБАЗА_ЗНАНЬ
МЕНЮ

~/blog / Якість / how-to-run-an-accessibility-audit.md

// посібник · 3 хв читання

Як провести аудит доступності вебсайту

Перевірте типові задачі клавіатурою, screen reader, zoom і автоматизацією, запишіть відтворювані бар’єри та повторно перевірте цілі процеси.

Коротка відповідь

Аудит поєднує автоматизацію й ручні задачі. Виберіть маршрути та стани; перевірте клавіатуру, names, порядок, zoom/reflow, contrast, форми й updates. Оцінка інструмента чи початковий огляд не доводять conformance. Звітуйте scope, environment та межі.

Пріоритезуйте вплив: неможливість подати форму чи вийти з dialog відрізняється від декоративного label. Кожне finding відтворюється, має repair і retest. Тут метод, не заява про повний audit продукту.

Практичні кроки реалізації

Виберіть задачі й стани

Додайте landing, navigation, details, form, modal та error/empty. Врахуйте вузьке й мови. Запишіть browser, OS, assistive technology та viewport. Лише початкова сторінка пропускає invalid-submit чи overlay.

Перевірте без pointer

Виконайте задачу Tab, Shift+Tab, Enter, Space й widget-keys. Перевірте focus, order, controls, dismissal і restore. Досяжність елементів не достатня: задачу треба завершити й зрозуміти.

Перевірте семантику й показ

Tree і screen reader перевіряють landmarks, headings, names, roles й announcements. Перевірте zoom/reflow, не масштаб screenshot. Contrast має фактичний background. Опис Native Color Picker обмежує checker двома кольорами; він не перевіряє шрифти, фони чи всю доступність.

Перетворіть findings на перевірки

Запишіть кроки, expected, barrier, task і докази. Criterion лише за підтвердження. Спільний компонент виправляє одну повторну причину. Після repair перевірте цілу задачу й детерміновані regressions без заміни ручного огляду.

Приклад реалізації

Tree-assertion захищає структуру. Playwright очікує form і button. Це вузька перевірка, не доказ клавіатури, contrast чи screen reader.

import { test, expect } from "@playwright/test";

test("contact form exposes its main controls", async ({ page }) => {
  await page.goto("/contact");
  await expect(page.getByRole("form", { name: "Contact" })).toMatchAriaSnapshot(`
    - form "Contact":
      - textbox "Email"
      - textbox "Message"
      - button "Send message"
  `);
});

Узгодьте snapshot із контрактом, не всіма wrappers. Додайте submit і error-recovery та ручні announcements і focus. Версії мають відповідати середовищу.

Компроміси та альтернативи

Tools швидко повторюють частину правил; ручні задачі знаходять сенс і поведінку. Повна conformance потребує стандарту й методики. Початковий check — пошук роботи, не сертифікат. Залучайте користувачів із disabilities за можливості.

Поширені помилки

  • Score як повний audit.
  • Лише initial-state.
  • Focusability як завершення.
  • Contrast із вгаданим background.
  • Закриття без retest.

Контрольний список перед випуском

  • Scope і environment описано.
  • Є error і dynamic.
  • Keyboard, semantics, zoom, contrast перевірено.
  • Findings відтворюються.
  • Shared-fixes звірено.
  • Claims у межах scope.

Поширені запитання

Чи tree замінює screen reader?

Ні. Він дає структуру, не timing, announcements і поведінку technology.

Чи всі defects блокують release?

Використовуйте severity й вимоги, не ховайте blocking за average. Чесно запишіть limits і пріоритезуйте основні задачі.

Висновок

Перевіряйте цілі задачі, відтворюйте barriers й repair. Поєднайте автоматичне й ручне, точно вкажіть доведене.

Первинні джерела

Пов’язані посібники та приклади

Ігор Харчишин

Незалежний full-stack інженер продуктів, який пише посібники з реалізації розширень браузера та сучасних вебпродуктів на основі першоджерел.

Потрібно реалізувати це у вашому продукті?

Пов’язана реалізація інтерфейсу, логіки застосунку, API та шару даних.