protected function getTextareaTag()
    {
        // textarea tags cannot be self-closing when using HTML parser on XHTML
        $value = $this->value === null ? '' : $this->value;

        // escape value for display because we actually want to show entities
        // for editing
        $value = htmlspecialchars($value);

        $textarea_tag = new SwatHtmlTag('textarea');
        $textarea_tag->name = $this->id;
        $textarea_tag->id = $this->id;
        $textarea_tag->class = $this->getCSSClassString();
        // NOTE: The attributes rows and cols are required in
        //       a textarea for XHTML strict.
        $textarea_tag->rows = $this->rows;
        $textarea_tag->cols = $this->cols;
        $textarea_tag->setContent($value, 'text/xml');
        $textarea_tag->accesskey = $this->access_key;
        $textarea_tag->tabindex = $this->tab_index;

        if ($this->read_only) {
            $textarea_tag->readonly = 'readonly';
        }

        if (!$this->isSensitive()) {
            $textarea_tag->disabled = 'disabled';
        }

        if ($this->placeholder != '') {
            $textarea_tag->placeholder = $this->placeholder;
        }

        return $textarea_tag;
    }