As I strive to use semantic class names, my exploration of microdata and SEO raises a question: Is it necessary to use both? Compare these two HTML snippets representing an event:
Using CSS classes:
<div class="event" itemscope itemtype="http://schema.org/Event">
<h3 itemprop="name">Spinal Tap</h3>
<div class="description" itemprop="description">One of the loudest bands ever
reunites for an unforgettable two-day show.</div>
Event date:
<time itemprop="startDate" datetime="2011-05-08T19:30">May 8, 7:30pm</time>
</div>
Without CSS classes:
<div itemscope itemtype="http://schema.org/Event">
<h3 itemprop="name">Spinal Tap</h3>
<div itemprop="description">One of the loudest bands ever
reunites for an unforgettable two-day show.</div>
Event date:
<time itemprop="startDate" datetime="2011-05-08T19:30">May 8, 7:30pm</time>
</div>
Both sections display the same content and can be styled easily. It is feasible to apply styles to the code without classes by using attribute selectors, possibly adding an additional class like "upcoming" or "past."
Considering this, is there still value in using semantic classes when microdata already provides a significant amount of information? The only potential advantage I see is in terms of Javascript selector performance, but I am uncertain about the extent of the impact this may have.