Подменю. Есть вложенный список с заголовком.
<nav><ul><li>
<a href="#">эл-2</a>
<nav class="">
<ul> ++ЗАГОЛОВОК++
<li></li>
</ul>
</nav>
</li></ul></nav>
как будет семантично-правильно задать заголовок подменю? просто в ul первым элементом (пред li) сделать h3, например (<ul><h3>++ЗАГОЛОВОК++</h3><li>) ?
Вкладывать элемент навигации nav в другой элемент навигации nav - уже не семантично. Также, в элементе ul каждый элемент списка должен начинаться с тега <li> - иначе это тоже не семантично.
Вам нужно в первом элементе списка (не перед тегом li, а внутри него) указать заголовок, а если вам необходимо еще визуально выделить этот элемент, то просто добавьте элементу с заголовком класс и стилизуйте его. А после элемента с заголовком должен идти основной список. Примерно так:
<nav>
<ul>
<li>
<a href="#">эл-2</a>
<ul>
<li class="caption"><h3>++ЗАГОЛОВОК++</h3></li>
<li>...</li>
</ul>
</li>
</ul>
</nav>
Другой вариант, если вам не нужно визуально показывать заголовок у подменю, вы можете вынести заголовок из списка и стилями визуально скрыть его, но при этом, необходимо чтобы заголовок оставался на странице.
HTML:
<nav>
<ul>
<li>
<h3 class="hidden">++ЗАГОЛОВОК++</h3>
<a href="#">эл-2</a>
<ul>
<li>...</li>
</ul>
</li>
</ul>
</nav>
CSS:
.hidden {
display: inline-block;
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
visibility: hidden;
}
Все верно, на досуг почитать - хороший ресурс по сематике:
https://html5book.ru/html5-semantic-elements/
P.S. Пишу тут, пока закрыты коментарии.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей