为什么W3验证需要填充图像的alt和src属性?

时间:2013-03-20 22:05:33

标签: javascript image

我不使用这些属性,因为我稍后会动态添加src。我也不需要alt。 我确实希望我的页面能够验证。我可以通过在div中使用CSS背景来绕过这个要求。这是一种有效的方法吗?

澄清:

  • 我不关心搜索引擎。

  • 我的图片总是加载。

  • 我使用JavaScript设置了src属性。

  • 适用于主流现代浏览器。

  • 尚不需要辅助功能。

  • Doctype为HTML 5 - <!DOCTYPE html>

参考

http://validator.w3.org/

3 个答案:

答案 0 :(得分:5)

因为它正在验证规范

Html具有特定的结构,记录在w3.org站点上。 w3验证器验证输入是否符合规范,在这种情况下匹配要求:

img tag

  

src属性必须存在

没有src的img标签具有未定义的行为,例如,根据浏览器的不同,可能会重新请求当前页面而不是有效图像。

alt attribute

  

必须指定alt属性且其值不能为空

从同一参考文献中,对alt属性要求的理由:

  

[alt属性]应该包含可供用户使用的替换文本而不是图像

为什么要提供无效标记

从问题:

  

我不使用这些属性,因为我稍后会动态添加src。我也不需要alt。

如果你动态添加src(这也意味着没有javascript页面,或者至少这个特定的标记位对任何人都没用) - 为什么不动态添加img标签。

答案 1 :(得分:2)

Alt标签坚持至少部分基于各国的联邦法律,因为在某些情况和情况下,被视为对残疾人的非法歧视可能会受到一些非常高额的罚款 - 因此,W3标准明智地坚持如果要将该页面视为符合标准的话。

超越残疾时,alt标签用于各种环境,例如屏幕阅读器,浏览器关闭图像等等。

如果你真的想避免定义alt标签,请使用默认标签,例如alt =“由于'原因'故意留空的Alt标签”或者其他一些标签。

对于source属性,它指的是在运行脚本之前,html页面必须在内部有效,才能被视为符合标准。这是因为脚本运行后检查标准符合性的复杂性和不可靠性,以及标准受“不显眼脚本”概念影响的事实 - 页面可以通过脚本增强,但它不应该在没有严格要求的情况下,坚持为基本功能编写脚本。

现在,如果您有充分的理由认为您的图像必须在运行时定义,那么您有两种选择:

  1. 使用空白或占位符图片,例如至少1x1透明gif / png。
  2. 完全从HTML中删除图像并在运行时添加它们,而不是仅仅更改相关的src属性。
  3. 对于src标签,还必须记住,随着应用程序的增长,加载时间会增加,根据样式和尺寸等,事情可能会开始变得非常奇怪。

    总之,即使您认为不需要Alt标记,也始终使用Alt标记,并使用上述两个解决方案之一来处理src标记。

答案 2 :(得分:2)

alt属性对于基于文本的浏览器,屏幕阅读器和搜索引擎等残疾可访问性非常有用(其中一些在您的问题的评论中有提及)。

你可能也不应该有空的图像标签。这在语义上是错误的(更不用说它没有像你所说的那样验证),并且可能导致你的网站technical issues。相反,可能有空的“图像持有者”(如divfigure),并使用动态图片标记填充其内部HTML内容。

使用JS(甚至是静态)设置src不能保证加载图像。如果网络有一个非常糟糕的打嗝怎么办?您无法保证所有资源都能正确加载。处理负载不当的JS或CSS可能会有点荒谬,并且可能超出您的控制范围,但是图像上的alt标记这么简单可能是一种非常简单的解决方法。

仅仅因为您不需要所有这些功能并不意味着W3C在制定整个世界的通用规范时不应该考虑它们。