Осторожно! Слово «доступность» встречается в этой статье 15 раз.
Последнее время я наблюдаю раскол фронтенд-сообщества на два лагеря: одни активно продвигают доступность, а другие искренне не понимают, зачем им тратить на неё время. Вместо диалога между этими двумя лагерями складывается только неприятие друг друга, сарказм в обе стороны, оскорбления и прочие сопутствующие нашему токсичному сообществу прелести.
Тема доступности отчасти перекликается и с темой быстродействия. Здесь сообщество тоже делится на два лагеря: первые продвигают оптимизацию быстродействия, а вторые задаются вопросом, зачем им это, ведь у них ничего не тормозит и загружается быстро (ох уж эти программисты, которые открывают локалхост на топовом макбуке).
К текущей ситуации привели разные проблемы:
- противоречия в статьях (сегодня мы делаем на
<details>
семантичные и доступные аккордеоны, а завтра оказывается, что<details>
не подходит для аккордеонов); - отсутствие единой терминологии для описании UI-компонентов и их свойств;
- отсутствие необходимых примитивов в веб-платформе или хотя бы в NPM (чёрт возьми, в каждом проекте приходится подключать жирные библиотеки или писать с нуля дейтпикеры, тултипы, комбобоксы и другие сложные компоненты).
Но есть, как мне кажется, более глобальная проблема.
Искажённое восприятие
У Сбербанка есть руководство по разработке доступных цифровых продуктов для дизайнеров, разработчиков и менеджеров. Начинание отличное, но встречает нас оно следующей фразой:
Доступность — качество цифровой среды, характеризующее степень её приспособленности для людей с инвалидностью.
Эта фраза подкрепляет и так распространённое убеждение о том, что доступность — исключительно про инвалидов. Более того, во многих статьях и руководствах делается акцент на поддержке скринридеров, чтобы интерфейсом могли пользоваться слепые и слабовидящие люди. Из-за этого доступность часто ассоциируется со скринридерами.
Разработчики обычно либо не обладают статистикой применения скринридеров в их продукте, либо знают, что их продуктом не пользуются через скринридеры.
Здесь кроется большая проблема коммуникации между евангелистами доступности и разработчиками. Мне кажется, на слова доступность и скринридер в нашем сообществе уже распространился феномен баннерной слепоты. И я понимаю, почему: когда тебе часто говорят о том, что ты должен поддерживать скринридеры, а в твоём случае это попросту нецелесообразно, ты поначалу злишься, а затем просто забиваешь.
Что на самом деле значит «доступность»
Мне нравится определение доступности из статьи Unexpected accessibility tips (вольный перевод):
Доступность — не только про инвалидов. [...] Это забота об удобстве использования продукта в любых обстоятельствах, с которыми сталкиваются пользователи, и в любой среде (например, на разных устройствах).
Статья немного в другом контексте, но она наводит на отличные примеры ситуаций и ограничений, с которыми должны справляться наши интерфейсы:
- поездки в метро (телефон держат одной рукой, координация усложнена из-за движения поезда, интернет нестабильный и медленный);
- демонстрации через проектор (контрастность снижена, расстояние до картинки сильно больше, чем за монитором);
- потерялись очки (увеличилась нагрузка на зрение, стало сложнее читать текст);
- беспроводная мышь разрядилась (остаётся только пользоваться интерфейсом с клавиатуры).
Все эти примеры ни разу не про инвалидность или скринридеры, а про нашу с вами жизнь. И, честно говоря, называть это доступностью я бы перестал — ведь есть более знакомые всем понятия UX и юзабилити.
Заключение
Чтобы никто не истолковал вышесказанное превратно, подведу итог. В моей картине мира доступность — синоним UX и юзабилити. Отсутствие статистики по использованию скринридеров не означает того, что можно отказываться от нативной семантики (заголовки, секционные элементы, ссылки, кнопки, etc) и всё верстать дивами — нативная семантика облегчает жизнь не только скринридерам, но и обычным пользователям (кнопка-div с клавиатуры не нажмётся, ссылка-div не скопируется и не откроется в новой вкладке). А главное, помните, что нам платят деньги не за двигание пикселей по экрану, а за разработку удобных и решающих свои задачи интерфейсов.