If you're using a component-based (aka Pull-based) web framework (e.g. Tapestry, Wicket, Struts et al), how do you determine that your markup passes W3C validation? Two approaches come to mind:
Crawl the running app
Pro:
- All the markup required for validation exists on the page.
Cons:
- Can be very complicated to hit every page and every case.
- If something is wrong it may not be obvious which component is causing the problem (especially in large apps).
- You may be validating the same component over and over again (duplicating effort).
- It may take a very long time if there are many pages/components.
Crawl the HTML templates offline
Pros:
- You only need to validate each component once.
- If you find a problem you will know exactly which component is causing it.
Cons:
Most of the cons I can think of involve losing the context of the components because you won't have the full markup of a page.
- You may not know the DOCTYPE for a given component.
- It may be difficult to know what a component's parent is, which could lead to problems. E.g. Detecting the invalid case of an inline tag (e.g.
<span>
) containing a block tag (e.g.<form>
or<p>
). - HTML templates in these types of frameworks often contain invalid attributes and special symbols (usually to indicate something to the framework) that will not validate.
So the question is, if you're using a component-based architecture, how do you validate your markup? Are there any recommended techniques or, better yet, tools to do this?
EDIT: I'm a little surprised that there weren't more answers for this. Is it uncommon to validate your markup when using component-based frameworks? Or are there just not many people using them?