June 7, 2022

Семантика

Почему семантика важна

  1. Чтобы сделать сайт доступным.
    По разным данным от 8% до 15% имеют физические отклонения и используют скрин ридер. Так же есть часть пользователь, что используют клавиатуру для навигации по сайту. Ещё вариант apple watch, там явно нет верстки и все делается через семантику.
  2. Чтобы сайт был выше в поисковиках.
    Предположительно влияет ранжирование сайта в поисковой выдаче. Классический пример — расписание поезда «Сапсан» в выдаче Google. Разработчики tutu.ru сверстали таблицу тегом table вместо div и их сниппет оказался в выдаче Google по важному коммерческому запросу.
  3. Семантика прописана в стандартах.
  4. Легче разобрать код.

Почему не стоит использовать семантику

  1. Это запарно, надо прочитать спек.
  2. Лучше не использовать теги, если не уверен в их использовании. Т.к. это может привести к путанице пользователя.

Основанная часть

Главный принцип - удобство UX\UI стоит выше семантики.

  1. Теги заголовков h1-h6 нужны для выстраивания структуры страницы, с их помощью можно сформировать иерархическое дерево документа с разделами и подразделами.
    h1 один на странице и должен быть на каждой странице.
    Важно, чтобы заголовки шли последовательно, т.е. не должно быть ситуации когда идет h2 > h4 > h3. Нужно h2 > h3 > h4
  2. У всех img на странице должен быть указан атрибут alt: его могут прочитать скринридеры, его увидят пользователи с отключенными или не загрузившимися картинками. Иначе скринридеры читают его название.
    Альтернативный вариант это делать картинки через background.
    http://prgssr.ru/development/alternativnyj-tekst-dlya-izobrazhenij.html
  3. nav должен быть один на странице, т.к. это удобнее
  4. main может быть несколько на странице

Ссылки

  1. https://developer.mozilla.org/ru/docs/Web/HTML/Element
  2. https://www.youtube.com/watch?v=W5DgVWtitjQ - маст ватч
  3. https://web-standards.ru/articles/tags/a11y/ - от маст ватч
  4. http://prgssr.ru/development/alternativnyj-tekst-dlya-izobrazhenij.html - про изображения
  5. http://css.yoksel.ru/inaccessibility/ - про скринридеры
  6. https://html.spec.whatwg.org/multipage/
  7. https://yoksel.github.io/bad-practices/
  8. https://niktariy.medium.com/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%81%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D0%BA%D1%83-c6c20f26b776
  9. https://developer.mozilla.org/ru/docs/Learn/Accessibility/WAI-ARIA_basics - про aria
  10. https://www.w3.org/WAI/standards-guidelines/aria/