Accessible class is strictly tight to nsIContent and nsIFrame to fetch accessibility information for an object. We need to have a way which will allow us to provide this information from any source. Examples where we need this is RSX and AOM, both of them need to create an accessible object having no DOM node underneath. For that we need to make Accessible class abstract one and move all DOM node/frame related object to derived class, for example, DOMNodeAccessible. Accessible class will provide methods to manage children/embedded objects/types and flags. All styles related implementations and boundary ones should be moved to DOMNodeAccessible.