 import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.managers.SystemManager;
+import mx.resources.ResourceManager;
+import mx.resources.IResourceManager;
 
 use namespace mx_internal;
+
+[ResourceBundle("controls")]
 
 /**
  *  The AccImpl class is Flex's base class for implementing accessibility


        return accState;
    }

    /**
     *  @private
     */
    private function getStatusName():String
    {
        var statusName:String = "";
        
        if (master.toolTip)
            statusName += " " + master.toolTip;
        
        if (master is UIComponent && UIComponent(master).errorString)
            statusName += " " + UIComponent(master).errorString;
        
        return statusName;
    }
    
    /**
     *  @private
     */
    protected function createChildIDArray(n:int):Array
    {
        var a:Array = new Array(n);
        
        for (var i:int = 0; i < n; i++)
        {
            a[i] = i + 1;
        }
        
        return a;
    }
    
    //--------------------------------------------------------------------------

                var child:UIComponent = UIComponent(form.getChildAt(i));
                if (child is FormHeading)
                {
                    // Accessible name if it exists, else label text.
                    if (FormHeading(child).accessibilityProperties)
                        formName = 
                        FormHeading(child).accessibilityProperties.name;
                    if (formName == "") 
                        formName = FormHeading(child).label;
                    break;
                }
            }
        }

        // Add in "Required Field" text if we are a required field
        if (formItem.required)
            formName = joinWithSpace(formName,
                resourceManager.getString("controls","requiredField"))

        // Add in the label from the formItem
        // Accessible name if it exists, else label text.
        var f:String = "";
        if (formItem.accessibilityProperties)
            f = formItem.accessibilityProperties.name
        if (f == "")
            f = formItem.label;
            
        formName = joinWithSpace(formName, f);

        /* 
         * Disable form item label accessibility so the form item label and the 
         * text from the form item label are not both seen in the virtual view of       
         * a screen reader.
         * Otherwise, the formItem would appear with a name, followed
         * by the component being labeled, with a duplicate of that name.
         * Setting silent here also causes code above to avoid recalculating the name.
         * FIXME gosmith: If the caching above is removed, remove the above comment also.
         */
        if (accProp && !accProp.silent)
        {
            accProp.silent = true;
