HTML5定义了用于呈现网页的标准算法,该算法指定了应如何执行错误处理。总而言之,每个浏览器都应该以相同的方式呈现无效标记,或者对于无法处理的标记应该以相同的方式失败。
现在我仍然可以看到验证作为一种方法来确保标记在传统浏览器中的假设是相同的。排除那些(因为希望它们不会永远存在),因为任何类型的标记都应该有一个定义的行为,无论它看起来多么可怕,“有效的HTML”仍然有任何意义吗?在我看来,如果输入具有已定义的输出,则输入有效,在这种情况下,它意味着任何HTML5都是有效的。考虑到它不会影响兼容性,验证标记仍然有用吗?
由于linepogl在评论中重述了它,现在无效的HTML已经标准化,它是否有效?
答案 0 :(得分:2)
我认为验证器仍然是HTML的有用工具,就像lint及其后代仍然是通用编程语言的有用工具一样。也就是说,即使编译器(浏览器)根据语言标准(无论如何都过于乐观)以可预测的方式运行,对代码中的令人讨厌的结构执行更彻底的检查仍然很有用。
答案 1 :(得分:1)
用汽车比喻来说:
在英国,如果我们在开车时打破速度限制,我们通常会知道我们行动的后果。我们将在许可证上获得罚款和3个认可点。但仅仅因为我们知道后果并不意味着它不再是一种冒犯。
同样适用于HTML。错误处理行为已经标准化,因为它是如此常见的情况,但这并不会使非法语法有效。法律语法对于浏览器渲染更有效,并且更容易维护,因此尽管无效标记的结果是可预测的,但如果我们遵守规则,对于所有相关人员来说都会好得多。
......留在学校的孩子们! < /传>
答案 2 :(得分:0)
在无效的HTML中更容易出现意外行为,因此尽可能保持与有效HTML的接近会使其更容易理解。
此外,大多数开发人员工具都会期望有效的HTML或多或少,因为处理边缘情况很困难并且需要很多开发人员时间。当您的网页遵循标准时,您遇到的问题会更少。
由于遗留问题,浏览器被迫实施无效的HTML处理。但开发人员工具并不一定如此,因为这些工具通常可以帮助您创建新页面。
答案 3 :(得分:0)
提供有效的HTML可能是一种可访问性要求。
无效的HTML可能会有问题需要维护。对功能测试但无效的文档进行修改可能会出现意外行为,并且在发现原始错误之前难以理解。
我不认为HTML5规范可以涵盖所有可能的无效场景,以保证强大的跨浏览器兼容性。