Чому ми зробили це саме зараз
Кілька вчителів написали нам, запитуючи, чи можна використовувати якісь із симуляцій на уроках зі слабозорими учнями. Чесна відповідь була: ми не знали. Цього було достатньо соромно, щоб мотивувати аудит. Ми використали Lighthouse, axe DevTools і ручні перевірки виключно клавіатурою на кожній сторінці сайту.
Підсумкові показники (до)
Що ми знайшли
tabindex="0" до обгортки canvas,
а також обробник клавіші Escape, що знімає фокус із canvas і
повертає його на сторінку.
<label> на всіх елементах керування
<input type="range"> без пов'язаної мітки —
лише візуальний текст поруч. Програми зчитування з екрана
оголошували «повзунок» без жодного контексту.
<label>,
або додано атрибути aria-label та
aria-describedby там, де мітку потрібно було
винести окремо.
--color-muted-2 (#7a88a0) на темному тлі
(#060d1a) давав коефіцієнт контрастності 3.4:1 — нижче вимоги
WCAG AA у 4.5:1 для звичайного тексту.
--color-muted-2 освітлено до #8fa5c0
(4.6:1). Аналогічно оновлено --color-muted.
role="img" та
aria-label зі змістовним описом того, що показує
симуляція, а також посилання на текстове пояснення.
outline: none прибрав кільце
фокусу браузера з усіх інтерактивних елементів. Користувачі
клавіатури не мали жодної візуальної вказівки, де перебуває
фокус.
:focus-visible з 2px бурштиновим контуром із
відступом на всіх інтерактивних елементах.
Найскладніша проблема: рухомі симуляції
Найскладніший виклик доступності для WebGL-симуляцій — не технічний, а концептуальний. Користувач програми зчитування з екрана не може змістовно сприйняти симуляцію зграйної поведінки чи маятника. Canvas — це растрове зображення; розповідати нема про що.
Наш підхід полягав у тому, щоб відокремити інтерактивність від досвіду сприйняття:
- Усі параметри симуляції (швидкість, маса, загасання) представлені як справжні HTML-елементи введення, доступні з клавіатури
-
Ключові числові показники (енергія, кількість частинок, частота
зіткнень) розміщені в live-регіонах
(
aria-live="polite"), щоб програми зчитування з екрана оголошували зміни - Кожна симуляція тепер має текстовий підсумок, який описує, що вона показує, що користувач може змінити і що варто спостерігати
Це не робить наші симуляції повністю доступними для користувачів із порушеннями зору — для цього знадобилася б цілком інша модель взаємодії. Але це робить навколишній контекст та елементи керування повністю доступними, що є суттєвим покращенням.
Що ще залишається зробити
-
Підтримка зменшеного руху — деякі симуляції мають призупинятися
або показувати статичний кадр, коли встановлено
prefers-reduced-motion - Режим високого контрасту — наша власна темна тема конфліктує з режимом високого контрасту Windows
- Повне керування параметрами симуляції з клавіатури без миші (у розробці)