html 锚链接使用alt标签是否正确?

pobjuy32  于 2022-12-16  发布在  其他
关注(0)|答案(7)|浏览(134)

锚链接使用alt标记是否正确,例如

<a href="#" class="test" alt="Something" src="sfasfs" ></a>
pftdvrlh

pftdvrlh1#

这些问题最好通过查看官方规范来回答:
1.转到规范:https://www.w3.org/TR/html5/
1.搜索“a元素”:https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element

  • 选中“Content attributes”(内容属性),它列出了a元素的所有允许属性:
  • 全局属性
  • href
  • target
  • download
  • rel
  • hreflang
  • type
  • 检查链接的“全局属性”:https://www.w3.org/TR/html5/dom.html#global-attributes

正如您将看到的,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规范(包括最新标准)。

klh5stk1

klh5stk12#

对于锚点,应该使用 title 代替。alt不是a的有效属性。请参见http://w3schools.com/tags/tag_a.asp

yhqotfr8

yhqotfr83#

“title”在浏览器中广泛应用。

<a href="#" title="hello">asf</a>
w80xi6nr

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

s3fp2yjn

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>
holgip5t

holgip5t6#

不,alt属性(它是一个属性,而不是标签)在任何HTML规范或草案中都不允许用于a元素,而且它似乎也没有被任何浏览器识别为具有任何意义。
人们为什么要使用它有点神秘,但可能的解释是,他们这样做是为了模拟img元素的alt属性,期望在鼠标悬停时看到“工具提示”。这有两个问题。首先,每个元素都有自己的属性,在每个元素的规范中定义。其次,alt属性的“工具提示”呈现在一些古老的浏览器中是一个怪癖甚至是一个bug,而不是预期的东西;当且仅当图像本身由于任何原因而不被呈现时,假定向用户呈现X1 M5 N1 X属性。
要创建一个“工具提示”,可以使用title属性,或者更好的是,使用Google的“CSS工具提示”,并使用您喜欢的基于CSS的工具提示(它们可以被描述为隐藏的“层”,鼠标悬停时可以看到)。

tct7dpnv

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-*属性进行语义使用。

  • 哎呀,这个问题是在2013年提出的。*

相关问题