The Rose::HTML::Object::* family of classes represent HTML tags,
or groups of tags. These objects allow HTML to be arbitrarily
manipulated, then serialized to actual HTML (or XHTML). Currently,
the process only works in one direction. Objects cannot be constructed
from their serialized representations. In practice, given the
purpose of these modules, this is not an important limitation.
Any HTML tag can theoretically be represented by a
Rose::HTML::Object-derived class, but this family of modules was
originally motivated by a desire to simplify the use of HTML forms.
The form/field object interfaces have been heavily abstracted to
allow for input and output filtering, inflation/deflation of values,
and compound fields (fields that contain other fields). The classes
are also designed to be subclassed. The creation of custom form
and field subclasses is really the "big win" for these modules.
There is also a simple image tag class which is useful for
auto-populating the width and height attributes of img tags. Future
releases may include object representations of other HTML tags.
Contributions are welcome.