如果您正在使用基于组件(也称为Pull-based)的 Web 框架(例如 Tapestry、Wicket 等),您如何确定您的标记通过了 W3C 验证?想到了两种方法:
抓取正在运行的应用程序
临:
- 验证所需的所有标记都存在于页面上。
缺点:
- 击中每一页和每一个案例可能非常复杂。
- 如果出现问题,可能并不明显是哪个组件导致了问题(尤其是在大型应用程序中)。
- 您可能会一遍又一遍地验证同一个组件(重复工作)。
- 如果页面/组件很多,可能需要很长时间。
离线抓取 HTML 模板
优点:
- 您只需验证每个组件一次。
- 如果您发现问题,您将确切知道是哪个组件导致了它。
缺点:
我能想到的大多数缺点都涉及丢失组件的上下文,因为您不会拥有页面的完整标记。
- 您可能不知道给定组件的 DOCTYPE。
- 可能很难知道组件的父级是什么,这可能会导致问题。
<span>
例如,检测包含块标记(例如<form>
或)的内联标记(例如 )的无效情况<p>
。 - 这些类型的框架中的 HTML 模板通常包含无效的属性和特殊符号(通常用于向框架指示某些内容),这些将无法验证。
所以问题是,如果你使用基于组件的架构,你如何验证你的标记?是否有任何推荐的技术,或者更好的工具来做到这一点?
编辑:我有点惊讶没有更多的答案。使用基于组件的框架时验证标记是否不常见?还是只是没有多少人在使用它们?