锚链接使用alt标记是否正确,例如
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
pftdvrlh1#
这些问题最好通过查看官方规范来回答:1.转到规范:https://www.w3.org/TR/html5/1.搜索“a元素”:https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element
a
href
target
download
rel
hreflang
type
正如您将看到的,alt属性在a元素上是不允许的。您还会注意到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规范(包括最新标准)。
alt
src
rev
klh5stk12#
对于锚点,应该使用 title 代替。alt不是a的有效属性。请参见http://w3schools.com/tags/tag_a.asp
yhqotfr83#
“title”在浏览器中广泛应用。
<a href="#" title="hello">asf</a>
w80xi6nr4#
如果您希望应用描述性信息,就应该对锚标记使用title属性,就像对alt属性一样。title属性在anchor标记上有效,除了提供有关链接页的信息外,没有其他用途。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
aria-label
aria-labeledby
s3fp2yjn5#
我用了标题,它的工作!title属性给出了链接的标题。有一个例外,它是纯建议性的。值是文本。样式表链接是个例外,title属性定义了可选的样式表集。
<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito dell'Istituto Ancel Keys">A.K.</a>
holgip5t6#
不,alt属性(它是一个属性,而不是标签)在任何HTML规范或草案中都不允许用于a元素,而且它似乎也没有被任何浏览器识别为具有任何意义。人们为什么要使用它有点神秘,但可能的解释是,他们这样做是为了模拟img元素的alt属性,期望在鼠标悬停时看到“工具提示”。这有两个问题。首先,每个元素都有自己的属性,在每个元素的规范中定义。其次,alt属性的“工具提示”呈现在一些古老的浏览器中是一个怪癖甚至是一个bug,而不是预期的东西;当且仅当图像本身由于任何原因而不被呈现时,假定向用户呈现X1 M5 N1 X属性。要创建一个“工具提示”,可以使用title属性,或者更好的是,使用Google的“CSS工具提示”,并使用您喜欢的基于CSS的工具提示(它们可以被描述为隐藏的“层”,鼠标悬停时可以看到)。
img
title
tct7dpnv7#
我很惊讶地看到所有的答案都说在a标签中使用alt属性是无效的。这是绝对错误的。Html不会阻止您使用任何属性:
<a your-custom-attribute="value">Any attribute can be used</a>
如果你问在a中使用alt属性在语义上是否正确,那么我会说:否,用于设置图像描述<img alt="image description" />。这是一个如何处理属性的问题,下面是一个例子:x一个一个一个一个x一个一个二个x同样,如果您问使用自定义属性在语义上是否正确,那么我会说:不可以。使用data-*属性进行语义使用。
<img alt="image description" />
data-*
7条答案
按热度按时间pftdvrlh1#
这些问题最好通过查看官方规范来回答:
1.转到规范:https://www.w3.org/TR/html5/
1.搜索“
a
元素”:https://www.w3.org/TR/html5/text-level-semantics.html#the-a-elementa
元素的所有允许属性:href
target
download
rel
hreflang
type
正如您将看到的,
alt
属性在a
元素上是不允许的。您还会注意到
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规范(包括最新标准)。
klh5stk12#
对于锚点,应该使用 title 代替。alt不是a的有效属性。请参见http://w3schools.com/tags/tag_a.asp
yhqotfr83#
“title”在浏览器中广泛应用。
w80xi6nr4#
如果您希望应用描述性信息,就应该对锚标记使用title属性,就像对alt属性一样。title属性在anchor标记上有效,除了提供有关链接页的信息外,没有其他用途。
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
s3fp2yjn5#
我用了标题,它的工作!
title属性给出了链接的标题。有一个例外,它是纯建议性的。值是文本。样式表链接是个例外,title属性定义了可选的样式表集。
holgip5t6#
不,
alt
属性(它是一个属性,而不是标签)在任何HTML规范或草案中都不允许用于a
元素,而且它似乎也没有被任何浏览器识别为具有任何意义。人们为什么要使用它有点神秘,但可能的解释是,他们这样做是为了模拟
img
元素的alt
属性,期望在鼠标悬停时看到“工具提示”。这有两个问题。首先,每个元素都有自己的属性,在每个元素的规范中定义。其次,alt
属性的“工具提示”呈现在一些古老的浏览器中是一个怪癖甚至是一个bug,而不是预期的东西;当且仅当图像本身由于任何原因而不被呈现时,假定向用户呈现X1 M5 N1 X属性。要创建一个“工具提示”,可以使用
title
属性,或者更好的是,使用Google的“CSS工具提示”,并使用您喜欢的基于CSS的工具提示(它们可以被描述为隐藏的“层”,鼠标悬停时可以看到)。tct7dpnv7#
我很惊讶地看到所有的答案都说在
a
标签中使用alt
属性是无效的。这是绝对错误的。Html不会阻止您使用任何属性:
如果你问在
a
中使用alt
属性在语义上是否正确,那么我会说:否,用于设置图像描述
<img alt="image description" />
。这是一个如何处理属性的问题,下面是一个例子:
x一个一个一个一个x一个一个二个x
同样,如果您问使用自定义属性在语义上是否正确,那么我会说:
不可以。使用
data-*
属性进行语义使用。