У меня есть одностраничный веб-сайт, на котором пользователю представлены ряды вкладок (фотографии, являющиеся кнопками), открывающие новый контент.
Имея в виду доступность и удобство для поисковых систем,
Какую практику можно считать наилучшей с точки зрения семантики?
Вот что я понял:
<section class="fruits">
<h1>Fruits</h1>
<nav>
<a data-article-class="banana">
<p>Learn about <strong>Bananas</strong></p> </a>
<a data-article-class="apple" class="is-selected">
<p>Learn about <strong>Apples</strong></p> </a>
<a data-article-class="pear">
<p>Learn about <strong>Pears</strong></p> </a>
</nav>
<div>
<article class="banana">
<h1>The Banana</h1>
<p>A long yellow fruit...</p>
</article>
<article class="apple is-selected">
<h1>The Apple</h1>
<p>A round red fruit...</p>
</article>
<article class="pear">
<h1>The Pear</h1>
<p>A funny-shaped green fruit...</p>
</article>
</div>
</section>
- Когда пользователь щелкает один из тегов
<a>
, JavaScript помещает классis-selected
в<a>
и соответствующий ему<article>
. - Теги
<a>
будут оформлены с помощью CSS, чтобы они выглядели как интерактивные изображения с видимым текстом внутри. - Класс
is-selected
представляет, какая ссылка и соответствующая статья выбраны в данный момент — CSS будетdisplay:none;
всех статей, а затемdisplay:block;
статьи, имеющейis-selected
.
Если быть точным, мои вопросы таковы:
Должен ли я использовать элемент
<nav>
с внутренними элементами<a>
?Является ли излишним оборачивать
<a>
s в структуру<ul>
/<li>
в этом контексте?Есть ли лучший способ семантически представить взаимосвязь между навигацией и статьями для таких разделов?
Обновлять:
Информативный ответ @AlastairC направил меня в правильном направлении. Тем не менее, он предложил более семантический формат вложения, который, к сожалению, несовместим с макетом на основе display:table-cell;
для этой единицы табуляции, которую я желаю.
По совету Аластера я пересмотрел разметку в вики-ответе сообщества, используя стандарты ARIA (чтобы соотнести вкладки с контентом, которым они управляют). Я думаю, что выберу ответ Аластера, но если кто-нибудь может прокомментировать или улучшить ответ вики сообщества с помощью альтернативной разметки, я был бы очень признателен.