Краткий ответ: «Не с верным, стандартным, семантически правильным HTML». (HTML 5 пока не является стандартным и требует хаков, чтобы заставить его работать в различных браузерах)
Этого можно добиться, если прибегнуть к неверным методам или отбросить заголовки, но это не очень хорошая идея.
Разумное количество пользователей просматривает ссылки в документах в поисках полезных. Пользователи программы чтения с экрана - хороший пример. Если текст ссылки огромен (как это было бы в вашем примере), это преимущество теряется.
Использование JavaScript является хорошим решением (но, естественно, только в том случае, если JS недоступен).
Я буду использовать jQuery для этого примера (он делает достаточно разные вещи с DOM, чтобы оправдать это).
<div class="summary">
<h4><a href='#'>Small Heading</a></h4>
<p>Small amount of text</p>
</div>
jQuery('div.summary').click(function () {
jQuery('a', this).click();
});
Я не проверял это, но если click () не делает то, что я ожидаю, вы можете заменить его на:
jQuery('div.summary').click(function () {
document.location = jQuery('a', this).attr('href');
});
Если JavaScript недоступен, заголовок по-прежнему является интерактивной ссылкой. Если это так, то можно щелкнуть всю область.
Вы можете добавить эффекты при наведении:
jQuery('div.summary').addClass('hoverable');
и
div.hoverable:hover { background-color: green; }
(Таким образом, эффект наведения не будет срабатывать, если JS недоступен, а CSS есть)