I'm suggesting updating some of the method access modifiers to allow for easier subclassing.
Changes: class is public append methods changed to protected
* added 3 new append helper methods to keep the do methods private
As an alternative to this limited update, I'm happy to make some (strictly optional) modification to the main Serializer, by adding public methods to override the default behavior. For example: Add special handler for HtmlAnchor to include the target URL in the output Possibly an alternate handler for HtmlTable (not sure yet)
That said, it seemed starting with this subclass compatible Serializer might be the best first step.