Друкарня від WE.UA

Про доступність та UI на прикладі мого особистого сайту

Знайомтесь це мій особистий сайт. Перший знімок те яким він був ДО другий - ПІСЛЯ сьогоднішнього патчу. І в цій короткій статті я хочу зробити маленьке ревью та розказати на прикладах ЧОМУ я реалізував деякі дивні речі.

Зображення
Старий варіант
Зображення
Оновлений варіант

Про Header

Почну з самого низу - header.

Зображення

Так, хоч цей елемент візуально виглядає як типовий футер сайту, технічно це хедер. В розмітці він знаходиться найвище та саме з нього починається навігація скрінрідера.

Чому він внизу? Все просто - для зручнішої навігації з мобільного пристрою. Оскільки нижня зона дисплею зазвичай доступніша за верхню.

Зображення

Звісно, якщо у користувача немає попсокета. Тоді активна зона зміщується вище.

З цієї ж причини головні елементи розміщуються приблизно між центром та нижньою частиною дисплею. Так, за моїм задумом, вони будуть легкодоступні переважній кількості користувачів.

Зображення

В останньому патчі я поміням меню та перемикач мови місцями.

Зображення
  1. Для користувача смартфоном (правші) він має стати ще доступніший.

  2. Для користувачів скрінрідера, найперше що буде озвучено на сайті - це пропозиція змінити мову.

Сам перемикач мови теж зазнав змін. Раніше я додавав лейбл до іконки перекладу, розраховуючи що вона буде зачитуватись як звичайний текст.

<a href="...">
  <svg aria-label="Switch language">...</svg>
  English
</a>

Однак це не надто добре працювало. Іконка могла не озвучуватись або ж озвучуватись як Посилання «Українська» .

Тому в новій версії, я повністю переніс лейбл для скрінрідерів на саме посилання переписавши вміст який тепер працює виключно для візуального сприйняття.

<a
  href="..."
  aria-label="Switch language to English"
  lang="en"
>
  <svg>...</svg>
  English
</a>

Також я додав атрибут lang. Фактично перемикач мови має протилежну мову до решти сторінки. Тому важливо підказати скрінрідеру, що в цьому елементі мова відрізняється та як саме її інтерпретувати.

І поки ми не пішли далі. Мій футер порушує одне з вагомих правил - візуальне розміщення елементів та їх порядок табуляції повинні співпадати. В моєму випадку це не так — меню табулюється першим проте візуально в самому кінці сторінки. Але я готовий на це піти розуміючи ризики.

Про іменування секцій

Рухаємось далі і поговоримо про блок з посиланнями на соціальні мережі.

Зображення

Зізнаюсь, я до кінця не визначився які посилання я хочу мати, тому періодично щось додаю, щось видаляю. Але зараз їх стало надто багато, тому довелось візуально та семантично розбити цей блок на два.

В старій версії не було нічого цікавого. Це був нудний і не найкраще зроблений div з посиланнями. 🤢

<div>
  <a>Eмeйл</a>
  <a>Kyпити Kaви</a>
  <a>Teлerpam</a>
  <a>Твіттер</a>
  <a>Ютуб</a> 
  <a>Інстаграм</a>
</div>

CSS я опускаю, оскільки він не важливий для UI та семантики.

В новій версії, по перше я використовую section щоб логічно згрупувати елементи.

<section aria-label="Основні контакти">
  <a>Eмeйл</a>
  <a>Kyпити Kaви</a>
</section>

<section aria-labeledby="secondary">
  <h2 id="secondary">Інші соц.мережі</h2>
  <a>Teлerpam</a>
  <a>Твіттер</a>
  <a>Ютуб</a> 
  <a>Інстаграм</a>
</section>

А по друге, обом секціям я додав лейбли. Завдяки цьому при навігації скрінрідером, коли фокус провалюється в середину буде зачитано як лейбд секції так і посилання Основні контакти. Емейл. Або Інші соціальні мережі. Твіттер. Чи навіть Основні контакти. Регіон. 2 елементи. Емейл. Посилання.

Аналогічно додав лейбл для контейнера банера вгорі сайта. Таким чином при потраплянні фокусу на посилання в середині, скрінрідер озвучить назву банера надавши контекст посиланню.

<article aria-labelledby="banner-title">
  <p>
    <strong id="banner-title">Дякую за підтримку України!</strong>
  </p>

  <p>
    Оскільки росія веде геноцидну війну проти моєї країни, 
    я вдячний усім, хто продовжує підтримувати Україну
    в нашій боротьбі за свободу.
  </p>
  <p>
    <a href="...">Подивіться, як ви можете допомогти</a>
  </p>
</article>

Домашнє завдання

І на останок, питання на домашнє завдання, раз ви дочитали аж сюди: Хто пояснить, чому для групування соц.іконок я використав <section> а для групування банера <article>?

Статті про вітчизняний бізнес та цікавих людей:

  • CRM keyCRM: зручне рішення для продажів, комунікацій і керування командою

    Успіх компанії залежить від того, наскільки швидко вона здатна опрацьовувати вхідні запити. Коли дані про клієнтів розпорошені між різними месенджерами, виникає хаос. CRM keyCRM пропонує вихід із цієї ситуації, об’єднуючи всі робочі процеси в єдиному зручному інтерфейсі.

    Теми цього довгочиту:

    Crm
  • Різниця між UX і UI, яку варто зрозуміти ще до першого заняття

    Більшість людей, які обирають професію UX чи UI, довго вважають це одним і тим самим. Насправді це два різних підходи до роботи над продуктом, і плутанина між ними гальмує розвиток ще на старті.

    Теми цього довгочиту:

    Ui-ux
  • Логіка змін: як SEO оптимізація прибирає бар’єри до зростання

    Багато компаній приходять у SEO з очікуванням швидкого ривка, але дійсний ефект починається там, де сайт перестають латати точково. Тому в центрі роботи стоїть не окрема дія, а послідовні зміни. Оптимізація сайту має прибирати системні перешкоди, а не маскувати їх новими текстами

    Теми цього довгочиту:

    Seo
  • Музичний футуризм: неймовірні інструменти XXI століття

    Еволюція музичних інструментів це один із найкрутіших проявів потужності людської уяви і потреби виразити себе через мистецтво. І хоча багато традиційних інструментів майже не змінилися за століття існування, інновації і пошук не зупиняються.

    Теми цього довгочиту:

    Музичні Інструменти
  • Стіл – всьому голова? Так, якщо його правильно підібрати

    Коли починаєш вивчати пропозицію меблевих фабрик щодо столів, дивуєшся кількості варіантів, адже вони пропонують різні розміри, різні матеріали, різноманітні форми та дизайни. Скористайтесь нашим каталогом MebelOK, щоб Ви могли підібрати найкращу модель для Вашого приміщення

    Теми цього довгочиту:

    Столи
Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Олександр Козак
Олександр Козак@kozack

16Довгочити
10KПерегляди
69Підписники
Підтримати
На Друкарні з 14 квітня 2023

Більше від автора

  • Детальний огляд семантики HTML теґів. Різниця між <section> та <article>

    Огляд семантики HTML: розрізнення між <section> та <article>, значення правильного використання тегів та їх роль у структурі вебсторінки. Дослідження важливості семантики для SEO та доступності, а також рекомендації щодо використання HTML-елементів та ролей

    Теми цього довгочиту:

    Html
  • Як зробити нескінченну прокрутку на сайті. Або 10 недоліків та одна перевага Infinity Scroll

    В цій статті я хочу описати 10 поширених проблем, пов’язаних з нескінченною прокруткою, які розробнику доведеться вирішувати при реалізації Infinity Scroll. Та про єдину причину, чому попри всі недоліки нескінченну прокрутку активно використовують.

    Теми цього довгочиту:

    Ui-ux
  • Чому ви повинні забути про rgb() та hex кольори при роботі з вебсайтами

    Формат задання кольорів функцією rgb() було представлено ще у 1996 році. Очевидно, що CSS далеко розвинувся з тих часів. Попри це, чомусь, багато веброзробників та вебдизайнерів вперто продовжують використовувати цей застарілий, обмежений та нелюдський формат кольору по цей день.

    Теми цього довгочиту:

    Css

Це також може зацікавити:

Коментарі (4)

Article індексується як більш важливий елемент, яким і являється банер

Це також може зацікавити: