Сделать финансовое приложение доступным

или умереть блин я не знаю сложно очень все ей богу

@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

Спасибо за внимание!

Made with Slides.com