Validation is the first step. Knowledge of what elements and attributes exist and how to markup properly is just the beginning, the most important skill is how to use them. A valid but semantically poor page makes a mockery of modern web standards and it seems that afflictions such as divitis and spanitis are a groing problem. It's good that there are no tables but still poses a problem.
I don't tend to make mistakes with the code itself due to the way I work and the software I use. But I can spend hours deciding whether to use a h1 or just a p and whether or not to wrap element in div, which to me is the more pressing issue. I don't validate my code as such, but I am fully aware that it is valid.
A page full of divs and spans is no use to anyone, it gives no indication of meaning and is only a small step up from table layout, in my opinion anyway. And a machine cannot determine whether you code is good semantically that takes human judgement and even then is up for debate.
Pete.
