【发布时间】:2013-09-06 02:23:24
【问题描述】:
我有一个单页网站,向用户展示了一排显示新内容的标签(照片是按钮)。强>
考虑到可访问性和搜索引擎友好性,
从语义上来说,最佳实践是什么?
这是我的想法:
<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的文章。
确切地说,我的问题是:
我应该使用带有内部
<a>元素的<nav>元素吗?在这种情况下将
<a>s 包装在<ul>/<li>结构中是否多余?有没有更好的方法在语义上表示导航和此类部分的文章之间的关系?
更新:
@AlastairC 的信息丰富的回答让我朝着正确的方向前进。不过,他提出了一种更语义化的嵌套格式,不幸的是,这与我想要的这个选项卡单元的基于 display:table-cell; 的布局不兼容。
根据 Alastair 的建议,我使用 ARIA 标准修改了社区 wiki 答案中的标记(将选项卡与它们控制的内容相关联)。我想我会选择 Alastair 的答案,但如果有人可以使用备用标记评论或改进社区 wiki 答案,我将非常感激。
【问题讨论】:
标签: html seo accessibility nav