June 7, 2022
Семантика
Почему семантика важна
- Чтобы сделать сайт доступным.
По разным данным от 8% до 15% имеют физические отклонения и используют скрин ридер. Так же есть часть пользователь, что используют клавиатуру для навигации по сайту. Ещё вариант apple watch, там явно нет верстки и все делается через семантику. - Чтобы сайт был выше в поисковиках.
Предположительно влияет ранжирование сайта в поисковой выдаче. Классический пример — расписание поезда «Сапсан» в выдаче Google. Разработчики tutu.ru сверстали таблицу тегом table вместо div и их сниппет оказался в выдаче Google по важному коммерческому запросу. - Семантика прописана в стандартах.
- Легче разобрать код.
Почему не стоит использовать семантику
- Это запарно, надо прочитать спек.
- Лучше не использовать теги, если не уверен в их использовании. Т.к. это может привести к путанице пользователя.
Основанная часть
Главный принцип - удобство UX\UI стоит выше семантики.
- Теги заголовков h1-h6 нужны для выстраивания структуры страницы, с их помощью можно сформировать иерархическое дерево документа с разделами и подразделами.
h1 один на странице и должен быть на каждой странице.
Важно, чтобы заголовки шли последовательно, т.е. не должно быть ситуации когда идет h2 > h4 > h3. Нужно h2 > h3 > h4 - У всех img на странице должен быть указан атрибут alt: его могут прочитать скринридеры, его увидят пользователи с отключенными или не загрузившимися картинками. Иначе скринридеры читают его название.
Альтернативный вариант это делать картинки через background.
http://prgssr.ru/development/alternativnyj-tekst-dlya-izobrazhenij.html - nav должен быть один на странице, т.к. это удобнее
- main может быть несколько на странице
Ссылки
- https://developer.mozilla.org/ru/docs/Web/HTML/Element
- https://www.youtube.com/watch?v=W5DgVWtitjQ - маст ватч
- https://web-standards.ru/articles/tags/a11y/ - от маст ватч
- http://prgssr.ru/development/alternativnyj-tekst-dlya-izobrazhenij.html - про изображения
- http://css.yoksel.ru/inaccessibility/ - про скринридеры
- https://html.spec.whatwg.org/multipage/
- https://yoksel.github.io/bad-practices/
- 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
- https://developer.mozilla.org/ru/docs/Learn/Accessibility/WAI-ARIA_basics - про aria
- https://www.w3.org/WAI/standards-guidelines/aria/