Based on some of the Solar code I've seen in the wild (ahem), it is not uncommon for Solar_View_Helper_Form use for groups to be started, but not finished.
For example:
<?php echo $this->form()
->beginFieldset($this->getTextRaw('LEGEND_EDIT'))
->auto($this->acl_form)
->beginGroup()
->submit(array('name' => 'process', 'value' => $this->getTextRaw('PROCESS_SAVE')))
->endFieldset()
->fetch();
In that example, pasted from some in-production Solar code, the group containing the form action buttons is opened with beginGroup(), but no endGroup() method is called.
I like that style, and don't have a problem with it. The issue is that the </dd> element is not auto-generated in that example at the end of the group.
Solution:
if ($in_group) {
$form[] = ' </dd>';
}
on/around line 654 in Solar_View_Helper_Form, as part of the fetch() method -- as the first check after looping through $this->_stack.
Without that change, forms with groups done in this manner are not XHTML-compliant.