我可以在其中没有链接的导航元素吗?

时间:2016-02-15 04:14:29

标签: html semantic-markup

<nav>内部通常包含<a>个元素,但是它是必需的吗?我有一个单选按钮表单,其目的类似于导航。它不会导航到Internet上的其他页面,而是更改HTML文档正文中元素的可见性(如轮播)。

谢谢!我今晚一直在与语义标记搏斗!

2 个答案:

答案 0 :(得分:2)

tl; dr :不,nav元素需要链接(但不一定是a个元素。)

W3C的HTML5定义了这样的nav element

  

nav元素表示链接到其他页面或页面中部分内容的页面部分:带导航链接的部分。

默认情况下,单选按钮不会链接到页面中的某个部分。在您的情况下,它会更改页面上元素的可见性。因此,为了这个目的,使用nav元素是合适的(除非,更改单选按钮可以聚焦已更改的元素;但是这种行为可能对可用性不利)。

答案 1 :(得分:1)

语义的全部意义在于,从完全不同的角度来看,它仍然很清楚如何从内容中推导出意义和关系语境。

每次加载或更改后,Web浏览器都会将您的HTML解析出来,并根据内容构建一个意见。浏览器将在内部保留这个方便的内容,以备日后需要它时,如果要求它执行看似复杂的操作,可以帮助它进行困难的判断调用。

例如,视力极差的人可能会在他们的移动设备上启用可访问性功能,该功能可以处理各种不同的视觉样式,并根据交互的类型为他们可以触摸的可交互元素添加大量视觉强调。 。这可能类似于元素顶部的明亮颜色涂层和轮廓叠加,可能类似于多媒体控件的青色,表单元素的黄色和导航点的洋红色。此功能必须处理浏览器将呈现的任何和所有可能的内容,因此您所拥有的是隐藏在引擎盖运行时脚本下的浏览器用于动态解析它所加载的内容以构建某种意见,它可以依靠驱除有希望成为良好判断的东西。所以无论你的导航在视觉上看起来多么清晰,对于视力很好的人来说,这就是为什么语义是如此重要以及为什么它如此重要以至于我们继续努力正确地使用它们,因为在这里你有一台机器或者解析你的来源代码,因为它无法理解它的视觉上下文。

在可访问性方面,浏览器在形成他们的意见方面比仅仅解析Dom更复杂。在此示例的场景中,以及您要编写的代码,将导航元素包装在导航标记中应该可以正确地帮助浏览器进行正确的调用。即使它们不是链接标记,浏览器也会记录导航标记内的任何元素,因为活动事件监听器会处理点击和类似的项目。

正如另一位用户所提到的,语义就是关于判断。无数其他方式,良好的语义在良好的开发中起作用,干代码和更易于维护是我的两个最爱。 “可以做”和“不能做”没有强硬路线,但是无论如何,练习好的语义仍然很容易。只是不断问自己关于核心内容的几个问题 -

•如果某人或某事试图以我没有明确建立目标功能的方式使用此功能,我认为它能够理解哪些内容是什么以及相关的意图是否足够成功永远都在尝试?

•如果我稍后要对其进行重构或重新调整,那么内容,逻辑和风格是否明确分离?我的内容干净,有意义吗?它是如此干净和准备好,我可以把它撕掉并放入新的东西,几乎没有变化?从本质上讲,这些内容的可移植性如何?即插即用级便携式吗?如果没有,是否可以通过更好的语义使其更具可移植性?

使用这些核心指南练习使用适当的语义进行开发,你几乎总是完全没问题。

只是为了确保我直接解决了你的问题 - 是的。你所做的是“好”,“语义合法”