This document discusses attributes in YUI and their advantages over plain object properties. It explains that attributes provide encapsulation of state and configuration through features like getters, setters, default values, and change events. It describes how attributes are implemented using the Y.AttributeCore and Y.AttributeObservable modules to provide this magic functionality. The document addresses some costs of using attributes, like additional processing during object initialization and property access compared to plain properties. It provides guidance on when it may make sense to use attributes versus properties.