什么是hyperlink annotation?创建与标注超链接的区别及示例
根据HTML规范,链接类型分为两类:超链接标注(hyperlink annotation) 和 超链接创建型关键字,具体定义与区别如下:
一、什么是超链接标注(hyperlink annotation)
超链接标注是一类特殊的rel属性值,它本身不会创建超链接,仅对已存在的超链接(包括元素默认隐含的超链接,或其他创建型关键字生成的超链接)进行语义标注或行为修改,用来调整浏览器、搜索引擎等对该超链接的处理逻辑。
这类链接类型包括:external、nofollow、noopener、noreferrer、opener。
规范相关描述:
该关键字不会创建超链接,而是标注元素创建的其他超链接(若没有其他关键字创建超链接,则标注隐含的超链接)。
一个超链接可带有一个或多个hyperlink annotation,用于修改该超链接的处理语义。
二、创建超链接与标注超链接的核心区别
核心作用不同
- 创建型关键字:负责生成超链接本身,没有它(或元素默认的超链接功能),就不存在可点击跳转的链接。
- 标注型关键字:仅对已存在的超链接做补充,不能独立生成超链接,必须依附于已有的超链接(比如
<a>标签默认的超链接,或创建型关键字生成的链接)。
存在意义不同
- 创建型关键字:定义链接的核心关系(比如替代版本、版权声明、帮助页面等),明确链接的用途。
- 标注型关键字:修改链接的行为规则(比如是否传递权重给搜索引擎、打开新页面时的安全限制、标记为外部链接等)。
三、示例说明
1. 创建超链接的例子
利用
<a>标签默认创建超链接(隐含超链接):<a href="/about">关于我们</a>这里未指定
rel,但<a>标签本身已创建指向"/about"的超链接,用户点击可直接跳转。使用创建型
rel关键字定义链接关系:<a rel="alternate" href="/zh-CN">中文版本</a>rel="alternate"是创建型关键字,它明确这是当前页面的替代语言版本,同时创建了指向中文页面的超链接。
2. 标注超链接的例子
给已有超链接添加语义标注:
<a href="https://example.com" rel="external nofollow">外部站点</a>这里
<a>标签已创建超链接,rel中的external标注该链接指向外部站点,nofollow告知搜索引擎不要将当前页面的权重传递给目标站点——二者均为标注型,未创建超链接,仅修改了链接的语义和处理逻辑。修改超链接的安全行为:
<a href="/new-page" target="_blank" rel="noopener">新页面</a>noopener是标注型关键字,它修改了超链接的打开行为:当用户点击在新标签页打开时,新页面无法获取当前页面的window.opener对象,提升了安全性,而超链接本身是由<a>标签创建的。
内容的提问来源于stack exchange,提问作者hrdom

