HTML_QuickForm_Renderer_Tableless は、HTML_QuickForm のデフォルトのレンダラを置き換えるものです。目標は次の二点です。
アクセシビリティ:
table タグを廃止してその代わりに label
タグの for
属性やフォーム要素タグの
id
属性を用いることで、
出力結果はアクセシビリティの高いものになります。
体の不自由な方はスクリーンリーダを使用されることもあるでしょうし、
そうでない人にとっても、ラベルをクリックすることで、
関連するフォーム要素にフォーカスを移動させられるという利点があります。
妥当性: このレンダラが生成する出力は、妥当な XHTML 1.1 形式となります。
このレンダラを使用するには、スタイルシートをコピーし (そして必要に応じて書き換え)、そして次のように書くだけです。
<?php
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/Renderer/Tableless.php';
$form =& new HTML_QuickForm();
$renderer =& new HTML_QuickForm_Renderer_Tableless();
// ここに通常のコードを書きます。
// たとえばフォームのフィールドや規則など……。
$form->accept($renderer);
echo $renderer->toHtml();
?>
完全に妥当な XHTML を生成させるには、次の行をコードに追加する必要があります。
<?php
$form->removeAttribute('name');
?>