В высшей степени семантическим способом была бы модель, используемая на dukevideo.com.
<ol>
<li>
<span id="lia">
<span class="productImage">
<a href="/Bikes/DVD/American-Chopper/American-Chopper-Series-1.aspx" title="American Chopper Complete Series 1">
<img src="/images/imageCache/bddc1cee608a8fb5927d6521ff1f0eb0.jpg" alt="American Chopper Complete Series 1" />
</a>
</span>
<span class="price">
<dl class="prices">
<dt class="hidden strikethru">Price:</dt>
<dd class="price red">£29.36</dd>
<dt class="hidden">Our Price:</dt>
<dd class="price">£25.36</dd>
</dl>
</span>
<span class="title">
<a href="/Bikes/DVD/American-Chopper/American-Chopper-Series-1.aspx" title="American Chopper Complete Series 1">American Chopper Complete Series 1
</a>
</span>
</span>
<span id="lib">
<input type="image" class="buyLink" src="/images/buy.png" alt="Add to Basket" id="AC1" name="buyProduct_AC1" value="buyProductAC1" />
</span>
</li>
(На реальном сайте разметка была переделана - и признана недействительной. Мой преемник использует DIV внутри LI вместо SPAN)
Эта семантическая разметка довольно тяжелая, но супер семантическая. Поисковая система или программа чтения с экрана хорошо бы с этим справились. Это позволило нам выделить части спецификации продукта в виде списка.
Надеемся, что классы дают представление о том, что делает CSS. например.:
* .hidden - скрывает контент с экрана, но не от программ чтения с экрана, поисковых систем
* .red - делает текст красным
* .strikethru - зачеркнутый текст, чтобы проиллюстрировать урезанную цену
* .title - смелая грань