      */
     override public function get_accName(childID:uint):String
     {
-        var accName:String = getFormName(master);
-
-        if (childID == 0 && 
-            master.accessibilityProperties && 
+        var accName:String;
+
+        // For simple children, do not include anything but the default name.
+        // Examples: combo box items, list items, etc.
+        if (childID)
+        {
+            accName = getName(childID);
+            // Historical: Return null and not "" for empty and null values.
+            return (accName != null && accName != "") ? accName : null;
+        }
+
+        // Start with form header and/or formItem label text.
+        // Also includes "Required Field" where appropriate.
+        accName = getFormName(master);
+
+        // Now the component's name or toolTip.
+        if (master.accessibilityProperties && 
             master.accessibilityProperties.name != null && 
             master.accessibilityProperties.name != "")
         {
-            accName += master.accessibilityProperties.name + " ";
-        }
-
-        accName += getName(childID) + getStatusName();
-        
+			// An accName is set, so use only that.
+            accName = joinWithSpace(accName, master.accessibilityProperties.name);
+        }
+        else
+        {
+			// No accName set; use default name, or toolTip if that is empty.
+            accName = joinWithSpace(accName, getName(0) || master.toolTip);
+        }
+        
+        accName = joinWithSpace(accName, getStatusName());
+        
+        // Historical: Return null and not "" for empty and null values.
         return (accName != null && accName != "") ? accName : null;
     }
-    
+  
     /**
      *  @private
      *  Method to return an array of childIDs.

                var child:UIComponent = UIComponent(form.getChildAt(i));
                if (child is FormHeading)
                {
                    formName = FormHeading(child).label + " ";
                    break;
                }
            }
        }

        // Add in text if we are a required field
        if (formItem.required)
            formName += "Required Field ";

        // Add in the label from the formItem
        if (formItem.label != "")
            formName += formItem.label + " ";

        if (accProp && !accProp.silent)
        {
            accProp.silent = true;

        
        if (!UIComponent(master).enabled)
        {
            accState &= ~AccConst.STATE_SYSTEM_FOCUSABLE;
            accState |= AccConst.STATE_SYSTEM_UNAVAILABLE;
        }
        else
