Сделать финансовое приложение доступным
или умереть блин я не знаю сложно очень все ей богу
@GlafiraZhur для TradingView
Апрель 2023
Глафира Жур
Twitter: @glafirazhur

Accessibility Team Lead
GDE for Web
Accessibility Club Minsk
Курс про цифровую доступность

Вхожу в программный коммитет




TradingView Supercharts
Процесс аудита

Что нужно сделать
- провести аудит всего приложения
- посчитать, сколько времени надо на доработки
- доработать

Что нужно сделать НА САМОМ ДЕЛЕ
- определить команду аудиторов
- проэстимировать аудит (включая создание бэклога)
- провести аудит
- определить приоритетность
- определить команду для доработок
- создать бэклог на доработки с учетом приоритетов
- провести эстимейт бэклога
- провести ревью сделанной работы
- составить отчет для контроля процесса

Как эстимировать аудит?

Тройная оценка
E = (O + 4M + P) / 6
E - эстимейт
O - оптимистичная оценка
M - реальная оценка
P - пессимистичная оценка
Тройная оценка
E = (O + 4M + P) / 6
(5 + 4*7 + 14) / 6 = 8
O = 5
M = 7
P = 14
Как проводить аудит?
VPAT report
Как проводить аудит? Первые идеи
- за основу взять отчет VPAT
- пройтись по каждому пункту
- написать все задачи в соответствии с пунктом

Пример работы по VPAT
Как (НЕ) проводить аудит? Первые идеи
- за основу взять отчет VPAT
- пройтись по каждому пункту
- написать все задачи в соответствии с пунктом
Как НА САМОМ ДЕЛЕ проводить аудит?
WCAG и платформы
- определить версию WCAG и требуемый уровень
- определить платформы, браузеры, скринридеры



Компонентный подход
Доступность кирпичиков системы
- обеспечить доступность дизайн-системы
- обеспечить доступность библиотеки компонентов

Доступность в
дизайн-системе
Использование только цвета
для передачи информации

Контраст

Визуализация фокуса


Состояние компонентов
Работа с клавиатуры

Порядок фокуса (дизайн)

Порядок фокуса (разработка)

Аннотации к дизайну


Text
Пример переработки паттернов

Пример переработки паттернов


Библиотека компонентов
Доступность библиотеки компонентов
- Завести сторибук
- Добавить в него плагин проверки доступности
- Привести компоненты в соответствие с W3C
Storybook + Accessibility plugin
W3C Patterns
Проблемы использования библиотеки компонентов
Исходный вариант

<div class="field-wrapper">
<span>Symbol</label>
<input>
</div>Рекомендация
<div class="field-wrapper">
<label for="inputID">Symbol</label>
<input id="inputID">
</div>Изменить код компонента в соответствии с приведенной разметкой.
Убедиться, что поле имеет лейбл в дереве доступности.
Вставляем новый компонент в приложение

Проблемы использования UI
<table>
<tr>
<td>
<span>Symbol</span>
</td>
<td>
<span>Symbol</span>
</td>
<td>
<span>Symbol</span>
</td>
</tr>
<tr>
<td>
<input id="symbolID">
</td>
<td>
<input id="qtyID">
</td>
<td>
<input id="priceID">
</td>
</tr>
</table>

Проблемы использования UI
<table>
<tr>
<td>
<span id="symbolLabelID">Symbol</span>
</td>
<td>
<span id="qtyLabelID">Qty</span>
</td>
<td>
<span id="priceLabelID">Price</span>
</td>
</tr>
<tr>
<td>
<input id="symbolID" aria-labelledby="symbolLabelID">
</td>
<td>
<input id="qtyID" aria-labelledby="qtyLabelID">
</td>
<td>
<input id="priceID" aria-labelledby="priceLabelID">
</td>
</tr>
</table>

Что сделать после
проверки компонентов?

Проверяем блоки интерфейсов
Проверяем структуру страницы

Структура страницы в скринридере

Составляем пользовательские сценарии
Тип пользователя: зрячий пользователь с клавиатурой
Сценарий 2: изменить текущий выбранный символ
Сценарий 1: изучить инструкции по работе с клавиатурой
Сценарий 1: изучить инструкции по работе с клавиатурой


Сценарий 2: изменить текущий выбранный символ
Сценарии в chatGPT

Создание задач, ревью, отчетность
Создание задач
- в задаче указать лейблы доступности (wcag111, wcag412)
- указать приоритеты (blocker, critical, major, minor, best practice)
- добавить ожидаемую разметку
- обязательные чеклисты по выполнению задачи


Лейблы и чек-листы
Ревью
- a11y-специалисты присутствуют на этапе дизайна
- добавляются в любую задачу, где есть UI
- до прохождения a11y-ревью задача не должна попасть в мастер

Составление отчета
- создать список критериев и указать критичность (как в задачах)
- к каждому критерию вывести список задач по лейблу
- трекать прогресс выполнения в %

Пример отчета в Excel

Пример отчета в Confluence
Что проверять в первую очередь
- доступность с клавиатуры
- наличие лейблов
- структуру страницы (для удобного перемещения СР)
- сломанную семантику
- убрать лишние aria, особенно aria-hidden
Полезные материалы
Глафира Жур
Twitter: @glafirazhur
Спасибо за внимание!

Доступность финансового приложения
By Glafira Zhur
Доступность финансового приложения
- 346






