


Блог IT-шника
Блог IT-шника
Привіт:) Більше десятка років тому зовнішній вигляд веб-сайтів верстали як було зручно — таблицями, DIV’ами, SPAN’ами і зовсім не задумувалися про доступність. Але потім з’явився HTML5, який приніс нові стандарти та вимоги до розмітки сторінок.
Семантична верстка — підхід до розмітки, який спирається не на зміст сайту, а на значення кожного блоку та логічну структуру документа. Уявіть собі книгу із заголовками різних рівнів — це допомагає читачеві побудувати структуру документа та швидше зрозуміти про що йтиметься мова.
Для незрячих або частково незрячих все складніше. Їх основний інструмент для перегляду сайтів не браузер, який малює сторінку, а скринридер, який читає текст зі сторінки вголос. Цей інструмент "зачитує" вміст сторінки, і семантична структура допомагає йому краще визначати тип блоку, а користувачеві зрозуміти, про що у ньому йдеться. Тому семантична розмітка допомагає більшій кількості користувачів взаємодіяти з вашим сайтом. Наприклад, наявність заголовків допомагає незрячим у навігації сторінкою. У скринридерів є функція навігації за заголовками, що прискорює знайомство з інформацією на сайті.
<div id="nav">
для навігації або інших структурних елементів сторінки. У стандарті HTML5 є декілька семантичних тегів, які рекомендується використовувати для розмітки сторінок замість <div>
і <span>
. У специфікації кожного семантичного елементу описано його роль. На скільки легше буде читати <nav></nav>
замість <div class="nav"></div>
. У наступному прикладі одразу зрозуміло, що і навіщо.
<!DOCTYPE html>
<html lang="uk">
<head>
<meta charset="utf-8">
<title>Заголовок сторінки</title>
</head>
<body>
<header class="main-header">
<!-- Шапка сайту -->
</header>
<main>
<!-- Основний вміст сторінки -->
</main>
<aside>
<!-- Вміст "бічної панелі" -->
</aside>
<footer class="main-footer">
<!-- Підвал сайту -->
</footer>
</body>
</html>
до змісту ↑
Серед "старих" тегів із ранніх версій HTML теж є семантичні. Наприклад, тег <p>
, який позначає параграф. При цьому теги <i>
чи <b>
не семантичні, оскільки не додають сенсу виділеного тексту, а просто визначають його зовнішній вигляд. Але в актуальній версії стандарту HTML Living Standard є семантичні теги майже для всіх основних частин сайту і краще користуватися ними. Ось декілька прикладів.
<section>
та <div>
.<article>
.<article>
та <div>
.<aside>
всередині блоку <main>
.<nav>
. У підвалі зазвичай з'являється короткий список посилань (наприклад, посилання на головну, копірайт та умови) - це не є основною навігацією. Семантично для такої інформації призначений <footer>
.<nav>
може бути лише список навігаційних посилань. Але згідно зі специфікацією, там може бути навігація у будь-якій формі.<footer>
не повинен перебувати лише в кінці розділу.Процес розмітки можна розділити на декілька кроків.
<header>
, <main>
, <footer>
.<nav>
, <section>
, <article>
, <aside>
.<h1>
-<h6>
.