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

Why does W3 validation require populated alt and src attribute for images?

本文关键字:alt src 属性 填充 图像 验证 W3 为什么      更新时间:2023-09-26

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

澄清:

  • 我才不在乎搜索引擎呢

  • 适用于主流现代浏览器

  • 还不需要无障碍

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

参考

http://validator.w3.org/

因为它符合规范

Html有一个特定的结构,在w3.org网站上有文档。w3验证器验证输入是否与规范匹配,在本例中与需求匹配:

img标记

src属性必须存在

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

alt属性

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

来自同一引用,对alt属性需求的调整:

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

为什么提供无效的标记

从问题:

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

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

Alt标签至少部分是基于不同国家的联邦法律,因为在某些情况下,Alt标签被认为是对残疾人的非法歧视,可能会被处以非常高额的罚款——因此,如果要将页面视为符合标准,W3标准明智地坚持使用Alt标签。

除了残疾之外,alt标签还用于各种上下文中,例如屏幕阅读器,当浏览器关闭图像时,等等。

如果你真的想避免定义alt标签,使用一个默认的,如alt=" alt标签故意留下空白,由于'原因'"或诸如此类的。

至于source属性,它涉及到这样一个事实,即在脚本运行之前,html页面必须在内部有效才能被认为符合标准。这是由于在脚本运行后检查标准遵从性的复杂性和不可靠性,以及标准受到"不引人注目的脚本"思想影响的事实——页面可以通过脚本增强,但在没有严格必要的情况下,它不应该坚持为基本功能编写脚本。

现在,如果你有一个很好的理由,你的图像必须在运行时定义,你有两个选择:

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

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

总而言之,即使你认为你不需要Alt标签,也要使用Alt标签,并使用上述两种解决方案中的一种。

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

你可能也不应该有空的图像标签。这在语义上是错误的(更不用说您所说的验证失败了),并且可能导致站点出现技术问题。相反,也许有空的"图像持有人"(如divfigure)躺在周围,并填充他们的内部HTML内容与您的动态图像标签。

设置src与JS(甚至静态)不能保证加载的图像。如果网络出现了严重的问题怎么办?您不能保证所有资源都能正确加载。处理加载不良的JS或CSS可能会变得有点荒谬,并且可能超出您的控制范围,但是像图像上的alt标签这样简单的东西可以是一个非常简单的解决方案。

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