【发布时间】:2020-04-18 02:15:05
【问题描述】:
对锚链接使用alt标签是否正确,比如
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
【问题讨论】:
对锚链接使用alt标签是否正确,比如
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
【问题讨论】:
这些问题最好通过查看官方规范来回答:
搜索“a元素”:https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element
选中“内容属性”,其中列出了a 元素的所有允许属性:
- 全局属性
hreftargetdownloadrelhreflangtype
检查链接的“全局属性”:https://www.w3.org/TR/html5/dom.html#global-attributes
如您所见,a 元素上不允许使用 alt 属性。
此外,您还会注意到 src 属性也是不允许的。
validating your HTML 已向您报告此类错误。
请注意,以上是针对 HTML5 的,即W3C’s HTML standard from 2014。 2016 年,HTML 5.1 变为 the next HTML standard。以相同的方式查找允许的属性。您会看到a 元素在 HTML 5.1 中可以有另一个属性:rev。
您可以在W3C’s HTML Current Status 上找到所有 HTML 规范(包括最新标准)。
【讨论】:
a全局属性中没有看到title属性在a中使用这样的title属性是否正确?
title。
对于锚点,您应该改用标题。 alt 不是 a 的有效属性。见http://w3schools.com/tags/tag_a.asp
【讨论】:
“title”在浏览器中被广泛实现。试试:
<a href="#" title="hello">asf</a>
【讨论】:
title 根据 HTML5 规范是不正确的(即使大多数浏览器都会实现它)。
如果您希望像应用 alt 属性一样应用描述性信息,则应该为锚标记使用 title 属性。 title 属性在锚标签上有效,除了提供有关链接页面的信息外,没有其他用途。
W3C 建议 title 属性的值应与链接文档的标题值匹配,但这不是强制性的。
http://www.w3.org/MarkUp/1995-archive/Elements/A.html
另外,可能更有益的是,您可以使用 ARIA 可访问性属性aria-label(不要与aria-labeledby 混淆)。 aria-label 与 alt 属性对图像的作用相同,但对非图像元素的作用相同,并且包括一些优化措施,因为您针对屏幕阅读器进行了优化。
http://www.w3.org/WAI/GL/wiki/Using_aria-label_to_provide_labels_for_objects
如果你想描述一个锚标签,通常使用 rel 或 rev 标签是合适的,但你仅限于特定的值,它们不应该用于人类可读的描述。
Rel 用于描述链接页面与当前页面的关系。 (例如,如果链接页面是逻辑系列中的下一个,则为 rel=next)
rev属性本质上是rel属性的反向关系。 Rev 描述了当前页面与链接页面的关系。
您可以在此处找到有效值列表:http://microformats.org/wiki/existing-rel-values
【讨论】:
不,任何 HTML 规范或草案中的 a 元素都不允许使用 alt 属性(它将是属性,而不是标签)。而且它似乎也不被任何浏览器识别为具有任何意义。
那么,人们为什么要尝试使用它有点神秘,但可能的解释是,他们使用 alt 属性来模拟 img 元素这样做,期望在鼠标悬停时看到“工具提示”。这有两个问题。首先,每个元素都有自己的属性,在每个元素的规范中定义。其次,在一些古老的浏览器中alt属性的“工具提示”渲染是/曾经是一个怪癖甚至是一个错误,而不是可以预料的事情; alt 属性应该被呈现给用户当且仅当图像本身没有呈现时,无论出于何种原因。
要创建“工具提示”,请改用title 属性,或者更好的是,谷歌搜索“CSS 工具提示”并使用您喜欢的基于 CSS 的工具提示(它们可以被描述为隐藏的“层”,变得可见鼠标悬停时)。
【讨论】:
我用了title,它成功了!
title 属性给出了链接的标题。除了一个例外,它纯粹是建议性的。值为文本。样式表链接例外,其中 title 属性定义了替代样式表集。
<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito dell'Istituto Ancel Keys">A.K.</a>
【讨论】:
我很惊讶地看到所有答案都说明在a 标签中使用alt 属性是无效。这是绝对错误的。
Html 不会阻止您使用任何属性:
<a your-custom-attribute="value">Any attribute can be used</a>
如果你问在a 中使用alt 属性在语义上是否正确,那么我会说:
没有。用于设置图片描述<img alt="image description" />。
这取决于您如何处理这些属性。这是一个例子:
a::after {
content: attr(color); /* attr can be used as content */
display: block;
color: white;
background-color: blue;
background-color: attr(color); /* This won't work */
display: none;
}
a:hover::after {
display: block;
}
[hidden] {
display: none;
}
<a href="#" color="red">Hover me!</a>
<a href="#" color="red" hidden>In some cases, it can be used to hide it!</a>
再次,如果你问使用自定义属性在语义上是否正确,那么我会说:
没有。将data-* 属性用于其语义用途。
糟糕,问题是在 2013 年提出的。
【讨论】: