0

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

澄清:

  • 我不关心搜索引擎。

  • 我的图像总是加载。

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

  • 适用于主要的现代浏览器。

  • 还不需要辅助功能。

  • 文档类型是 HTML 5 -<!DOCTYPE html>

参考

http://validator.w3.org/

4

3 回答 3

5

因为它正在验证规范

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

img 标签

src 属性必须存在

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

alt 属性

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

从同一个参考资料中,alt 属性要求的理由:

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

为什么提供无效标记

从问题:

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

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

于 2013-03-20T22:18:13.843 回答
2

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

除了残疾之外,alt 标签还用于各种环境,例如屏幕阅读器、浏览器关闭图像时等。

如果您真的想避免定义 alt 标签,请使用默认标签,例如 alt="Alt tag 由于'原因'而故意留空" 或诸如此类。

至于源属性,它涉及一个事实,即 html 页面必须在运行脚本之前在内部有效,才能被视为符合标准。这是由于在脚本运行后检查标准合规性的复杂性和不可靠性,以及该标准受到“不显眼的脚本”思想的影响 - 页面可以通过脚本增强,但不应该在非绝对必要时坚持为基本功能编写脚本。

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

  1. 使用空白或占位符图像,例如至少 1x1 透明 gif/png。
  2. 从 HTML 中完全删除图像并在运行时添加它们,而不是仅仅更改相关的 src 属性。

至于 src 标签,还必须记住,随着应用程序的增长,加载时间会增加,并且根据样式和尺寸等,事情可能会开始变得很奇怪。

总之,即使您认为不需要它们,也请始终使用 Alt 标签,并使用上述两种关于 src 标签的解决方案之一。

于 2013-03-20T22:18:38.973 回答
2

alt属性对于基于文本的浏览器、屏幕阅读器等残疾人辅助功能和搜索引擎(其中一些在您的问题的评论中提到)很有用。

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

用 JS设置src(甚至静态)不能保证图片的加载。如果网络出现非常严重的故障怎么办?您不能保证所有资源都会正确加载。处理加载不良的 JS 或 CSS 可能会有点荒谬,并且可能超出您的控制范围,但是像alt在图像上添加标签这样简单的事情可能是一个非常简单的解决方法。

仅仅因为您不需要所有这些特性,并不意味着 W3C 在为全世界制定通用规范时不应该考虑它们。

于 2013-03-20T22:18:51.127 回答