Інклюзивність в iOS: як забезпечити доступність для користувачів з обмеженими можливостями
Ласкаво просимо у світ, де висота стелі всього півтора метра, бордюри висотою метр, а сходів немає, стрибок — єдиний спосіб спуститися на кілька поверхів вниз. Це звучить незручно, правда? Так само незручно може бути користувачам з обмеженими можливостями, якщо їхні потреби не враховані у дизайні ваших застосунків.
Кожен сьомий житель планети стикається з проблемами доступності, а це приблизно 15% всіх потенційних користувачів вашого продукту. Сьогодні ми розглянемо, як розробники можуть покращити доступність своїх застосунків, які інструменти для цього знадобляться та як тестувати доступність та інклюзивність.
Основні обмеження, з якими може зіткнутися користувач
Зорові обмеження
Сліпота: користувач повністю не бачить екран.
Рішення: VoiceOver, який озвучує елементи на екрані, допомагаючи користувачам із порушеннями зору. Для ефективної роботи VoiceOver розробнику необхідно вміти використовувати такі параметри:
1. accessibilityLabel і accessibilityHint допомагають користувачам з обмеженими можливостями зрозуміти, що таке елемент інтерфейсу і як з ним взаємодіяти;
accessibilityLabel надає короткий опис елемента;
accessibilityHint дає додаткову інформацію про дію, яка відбудеться при взаємодії з елементом.
2. accessibilityTraits описують поведінку елемента та його тип. Наприклад, можна вказати, що елемент є кнопкою, заголовком або посиланням.
3. Модифікатори accessibilityValue для представлення поточного значення та accessibilityAdjustableAction для визначення дій, які можуть бути виконані за допомогою регульованих елементів інтерфейсу, як-от Slider, Stepper і PageControl. Застосування accessibilityAdjustableAction дозволяє взаємодіяти з елементом, використовуючи жести регулювання, такі як свайпи по екрану, замість прямої взаємодії з конкретним UI елементом.
Слабкий зір: користувачі можуть мати труднощі з читанням дрібного тексту або розрізненням кольорів.
Рішення: підтримка динамічної зміни розміру шрифту (Dynamic Type) для покращення читабельності тексту.
Досить часто розробники не хочуть підтримувати динамічні шрифти через можливість поломки UI при збільшенні шрифту. Але що, якщо я скажу вам, що порушення UI — це краще, ніж відсутність можливості прочитати текст взагалі?
Підписуйтеся на наші соцмережі
Так, збільшений шрифт може змістити деякі елементи на екрані та зробити додаток менш привабливим, але люди з слабким зором зможуть ним користуватися. Якщо ж текст статичний і користувач не може його розгледіти, то, на жаль, ніякої користі від красивого UI та рівної верстки немає.
Проблеми із слухом
Повна або часткова відсутність слуху, через яку користувачі не чують аудіоконтент або мають проблеми з сприйняттям звуків на певних частотах чи гучності.
Якщо у застосунку відтворюється контент, до нього можна прикріпити субтитри.
Починаючи з iOS 16, Apple додали Live Captions, які генеруються на льоту, але врахуйте, що їхня якість може бути нижчою, а генерація субтитрів іноді потребує часу. Якщо у вас якісний відеоконтент, де важливі діалоги, має сенс впровадити професійні субтитри.
У разі аудіосповіщень завжди можна відображати сповіщення, підказки, випливні вікна на екрані та підкріпити відповідний Haptic Feedback.
Обмеження моторики
Користувачі можуть мати труднощі з використанням сенсорного екрана через тремор, слабкість або інші рухові порушення, що ускладнює точно натискати на маленькі кнопки або виконувати складні жести.
Існує глобальний стандарт для доступності вебконтенту та застосунків — WCAG ? Web Content Accessibility Guidelines . Він включає рекомендації з створення контенту, який може бути сприйнятий, оброблений, інтерпретований та сумісний з різними допоміжними технологіями.
Наприклад, згідно з цим стандартом, мінімальний розмір кнопок повинен складати 24x24. Якщо у вашому додатку є кнопки менші, рекомендую переробити їх відповідно до стандарту. Збільшення розмірів кнопок та інших інтерактивних елементів значно полегшує точність натискання.
Ще один неочевидний інструмент — SiriKit, який дозволяє інтегрувати голосові команди, що надає користувачам можливість взаємодіяти з додатком за допомогою голосу.
Тестування
Розберемося, як протестувати ці рішення.
Ручне тестування
VoiceOver
Увімкніть VoiceOver на девайсі та протестуйте, як ваш застосунок взаємодіє з користувачем.
Увімкнення та вимкнення VoiceOver значно ускладнює тестування, але ви можете використовувати Accessibility Shortcut. Відмітивши кілька потрібних тобі функцій Accessibility, ти можеш швидко активувати або деактивувати їх потрійним натисканням на кнопку блокування.
Accessibility Inspector
Використовуйте Accessibility Inspector в Xcode для перевірки доступності елементів інтерфейсу.
Автоматизоване тестування
XCUI Test
Використовуйте XCUI Test для створення автоматизованих тестів доступності.
Snapshot тести
Використовуючи бібліотеку AccessibilitySnapshot, ви маєте можливість лише одним тестом перевірити доступність всього екрана.
Після виконання тесту буде згенеровано скріншот, на якому будуть зазначені всі UI елементи та їхні властивості доступності, що значно спрощує підтримку доступності на належному рівні.
Тестування при масштабуванні
Для великих проєктів, як-от банки, стримінгові платформи та інші, використовують більш комплексні рішення із вбудованими стандартами від WCAG. Такі інструменти можуть автоматизувати виявлення відсутніх traits, accessibility labels, недостатній контраст кольорів, невеликі інтерактивні елементи та інше. Один з прикладів продукт — Evinced, але існує багато альтернативних рішень з подібним функціоналом.
Висновок
Забезпечення доступності вашого мобільного застосунку є важливим кроком до створення інклюзивного продукту, яким можуть користуватися всі, незалежно від фізичних можливостей. Використовуючи інструменти та методи, описані у цій статті, ви зможете зробити ваш застосунок доступним і зручним для 100% користувачів.
Це не лише відповідає стандартам доступності, як-от WCAG, але й покращує загальний UX та підвищує лояльність ваших клієнтів. Не забувайте тестувати свій застосунок на доступність і вносити необхідні корективи для забезпечення максимальної зручності для всіх користувачів.