public function descriptionList($data, $options = [], $dtOpts = [], $ddOpts = [])
    {
        if (empty($data) || !is_array($data)) {
            return false;
        }
        $out = [];

        $dtOptions = parent::_parseAttributes($dtOpts);
        $ddOptions = parent::_parseAttributes($ddOpts);

        foreach ($data as $descr => $value) {
            $out[] = sprintf($this->_tags['dt'], $dtOptions, $descr);
            $out[] = sprintf($this->_tags['dd'], $ddOptions, $value);
        }
        $dl = sprintf($this->_tags['dl'], parent::_parseAttributes($options), implode("\n", $out));
        return $dl;
    }