用于定义空锚的语义正确方法

时间:2014-12-11 18:10:31

标签: javascript html semantics

我想知道以下结构的哪种形式是语义正确的,如果我想使用触发javascript回调但不会使窗口导航到另一个地方的achor:

javascript:

window.addEventListener('load', function() {
    document.getElementById('AuxAnchor').addEventListener('click', function(e) {
        // Do something
        e.preventDefault(); // Don't navigate to anywhere
    }, false)
}, false);

HTML:

使用空白值定义href属性:

<a id="AuxAnchor" href="">Click me</a>

定义的href属性缺少文档内ID:

<a id="AuxAnchor" href="#">Click me</a>

未定义的href属性:

<a id="AuxAnchor">Click me</a>

请注意,在后者(未定义的href属性)中,我必须使用样式模拟超链接外观,但这基本上只是一个整容问题,而且它根本不会打扰我如此。

3 个答案:

答案 0 :(得分:0)

从语义上讲,只需定义一个没有属性的<a></a>即可。 引用HTML 4.01 spec

  

作者也可以创建一个A元素,指定没有锚点,即,   没有指定hrefnameid

答案 1 :(得分:0)

HTML5中的所有选项均正确无误:http://www.w3.org/TR/html-markup/a.html

如果您想涵盖问题的不同角度,请检查一下辅助功能(残障人士)指南:

http://www.w3.org/TR/WCAG20-TECHS/SCR35.html

答案 2 :(得分:0)

  

在HTML 4.01中,标记可以是超链接或锚点。在   HTML5,标签始终是超链接,但如果它没有href   属性,它只是超链接的占位符。

     

HTML5有一些新属性,有些HTML 4.01属性没有   更长时间的支持。